Разберись в Data Science. Как освоить науку о данных и научиться думать как эксперт - Алекс Дж. Гатман
Шрифт:
Интервал:
Закладка:
Как и при решении любой другой задачи контролируемого обучения, модель пытается как можно лучше сопоставить входные данные (слова-векторы) с выходными (векторами вероятностей). Только в данном случае нас интересует не сама модель, а сгенерированная ею таблица чисел, демонстрирующая то, как каждое из слов в словаре связано со всеми остальными словами. Это и есть векторное представление слов, которое можно рассматривать как числовое представление слова, кодирующее его «смысл». В табл. 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 мы говорили о неконтролируемом обучении, суть которого заключается в поиске естественных закономерностей в строках и столбцах набора данных. Применив алгоритм кластеризации вроде метода k-средних к матрице «документ-термин» наподобие табл. 11.1 и 11.2, мы получим набор из k различных, но в чем-то похожих групп текстовых данных. В некоторых случаях это может оказаться полезным. Однако выполнять кластеризацию текстовых данных методом k-средних довольно сложно. Рассмотрим, к примеру, следующие три предложения:
1. Министерству обороны следует определиться с официальной политикой в отношении космоса.
2. Договор о нераспространении ядерного оружия важен для национальной обороны.
3. Соединенные Штаты недавно отправили в космос двух астронавтов в рамках своей космической программы.
На наш взгляд, здесь обсуждаются две общие темы – национальная оборона и космос. В первом предложении затрагиваются обе темы, а во втором и третьем – только одна. (Если вы с этим не согласны – а на это у вас, безусловно, есть право, – то вы уже представляете главную проблему кластеризации текстовых данных: четкое разделение тем возможно далеко не всегда. Кроме того, относительно текста люди могут составить разные мнения, чего не скажешь о числах.)
Тематическое моделирование[115] похоже на метод k-средних в том смысле, что это алгоритм неконтролируемого обучения, который пытается сгруппировать похожие наблюдения, но при этом не требует, чтобы каждый документ был явно отнесен к одному кластеру. Вместо этого он выдает значения вероятности, говорящие о том, как один документ связан с несколькими темами. Предложение 1, например, может получить оценку 60 % по теме национальной обороны и 40 % по теме космоса.
Чтобы лучше в этом разобраться, рассмотрим еще один пример. На рис. 11.3 представлена перевернутая набок матрица «документ-термин»[116]. Слева вы видите термины, которые встречаются в 20 документах d0–d19. Каждая ячейка отражает частоту встречаемости слова в документе: более темные ячейки соответствуют более высокой частоте. Причем термины и документы были упорядочены с помощью метода тематического моделирования.
Рис. 11.3. Кластеризация документов и терминов путем тематического моделирования. Можете ли вы выделить пять основных тем на этом изображении? Как бы вы их назвали?
Глядя на это изображение, вы можете заметить слова, часто встречающиеся в документах и вместе образующих возможные темы, а также документы, содержащие термины, связанные с несколькими темами (в частности, обратите внимание на d13, третий столбец справа). Однако имейте в виду: данный метод не гарантирует получения точных результатов, как и другие методы неконтролируемого обучения.
С практической точки зрения тематическое моделирование работает лучше всего, когда в наборе документов представлены различные темы. Это может показаться очевидным, однако нам известны случаи, когда тематическое моделирование применялось к подмножествам текстов, которые перед анализом были отфильтрованы по конкретной интересующей аналитиков теме. Это все равно что взять группу новостных статей, отобрать только те, которые содержат слова «баскетбол» и «Леброн Джеймс», а затем ожидать значимых результатов от применения тематического моделирования к отобранным статьям. Результаты вас разочаруют. Отфильтровывая тексты, вы, по сути,