Как и при решении любой другой задачи контролируемого обучения, модель пытается как можно лучше сопоставить входные данные (слова-векторы) с выходными (векторами вероятностей). Только в данном случае нас интересует не сама модель, а сгенерированная ею таблица чисел, демонстрирующая то, как каждое из слов в словаре связано со всеми остальными словами. Это и есть векторное представление слов, которое можно рассматривать как числовое представление слова, кодирующее его «смысл». В табл. 11.3 показаны некоторые слова из нашего словаря наряду с их векторным представлением. Слово «корова», например, в данном случае записано в виде трехмерного вектора (1,0, 0,1, 1,0). Раньше оно было записано в виде более длинного и разреженного вектора (0, 1, 0, 0, 0, 0, 0, 0).
Табл. 11.3. Представление слов в виде векторов
Интересная особенность векторного представления слов – измерения содержат их смысл подобно тому, как снижение размерности при анализе главных компонент позволяет отразить темы признаков.
Посмотрите на содержимое столбца «Измерение 1» в табл. 11.3. Видите закономерность? Что бы ни означало данное измерение, Корова и Свинья обладают соответствующим свойством в полной мере, а Салат вообще не имеет к нему отношения. Мы могли бы назвать это измерение Животные. Измерение 2 можно было бы назвать Еда, учитывая высокие значения для слов Говядина, Свинина и Салат, а Измерение 3 мы могли бы назвать Коровьим, потому что в нем выделяются слова, имеющие отношение к коровам. Благодаря этой структуре можно увидеть сходства в том, как используются слова, и даже составить из них простые уравнения (каким бы странным это ни казалось).
В качестве упражнения, используя табл. 11.3, попробуйте убедиться в том, что Говядина – Корова + Свинья ≈ Свинина[112].
Этот способ называется Word2vec[113] (преобразование слов в векторы), а векторы, сгенерированные Google, доступны для бесплатной загрузки[114]. Разумеется, не стоит ждать, что все соотношения будут идеальными. Как вы уже убедились, вариации есть во всем, и в тексте тоже. Вкусными могут называться не только продукты питания, но и совершенно несъедобные вещи. Кроме того, ситуацию усугубляет множество существующих в языке омонимов.
Векторное представление слов с его числовой структурой, позволяющей выполнять вычисления, применяются в поисковых и рекомендательных системах. Однако векторы, созданные на основе текста новостей сервиса Google News, могут не иметь отношения к стоящим перед вами проблемам. Например, торговые названия стирального порошка Tide® (в переводе с англ. «прилив») и крекеров Goldfish® («золотая рыбка») в системе типа Word2vec могут быть семантически близки словам «океан» и «домашнее животное» соответственно. Однако для продуктового магазина эти товары могут оказаться семантически более близкими таким конкурирующим брендам, как стиральный порошок Gain® и крекеры Barnum’s Animals®.
Вы можете применить модель Word2vec к своим текстовым данным и сгенерировать собственные векторы слов. При этом вы можете обнаружить темы и концепции, которые в противном случае даже не пришли бы вам в голову. Однако выявление достаточного количества смысловых взаимосвязей может стать проблемой. Не каждая компания имеет доступ к такому же количеству данных, как Google. Вам может просто не хватить текстовых данных для получения осмысленных векторов.
После превращения текста в осмысленный набор данных можно приступать к его анализу. Инвестиция в преобразование неструктурированных текстовых данных в структурированный набор из строк и столбцов окупается возможностью применения методов анализа, описанных в предыдущих главах (с некоторыми изменениями). Этим методам будут посвящены следующие несколько разделов.
В главе 8 мы говорили о неконтролируемом обучении, суть которого заключается в поиске естественных закономерностей в строках и столбцах набора данных. Применив алгоритм кластеризации вроде метода
1. Министерству обороны следует определиться с официальной политикой в отношении космоса.
2. Договор о нераспространении ядерного оружия важен для национальной обороны.
3. Соединенные Штаты недавно отправили в космос двух астронавтов в рамках своей космической программы.
На наш взгляд, здесь обсуждаются две общие темы – национальная оборона и космос. В первом предложении затрагиваются обе темы, а во втором и третьем – только одна. (Если вы с этим не согласны – а на это у вас, безусловно, есть право, – то вы уже представляете главную проблему кластеризации текстовых данных: четкое разделение тем возможно далеко не всегда. Кроме того, относительно текста люди могут составить разные мнения, чего не скажешь о числах.)