2. Дистрибутивная семантика
(Word2Vec)
• Обучается без учителя на любых текстах;
• Ставит каждому токену в соответствие вектор
действительных чисел, такой, что:
– Для любых двух токенов можно определить
метрику* расстояния между ними (косинусная
мера);
– Для семантически связанных токенов расстояние
оказывается положительным и стремится к 1:
• Взаимозаменяемые слова (модель Skipgram);
• Ассоциированные слова (модель Bag of Words).
* На самом деле - нет
3. Взаимозаменяемые слова
Enter word or sentence (EXIT to break): кофе
коффе 0.734483
чая 0.690234
чай 0.688656
капучино 0.666638
кофн 0.636362
какао 0.619801
эспрессо 0.599390
4. Ассоциированные слова
Enter word or sentence (EXIT to break): кофе
зернах 0.757635
растворимый 0.709936
чая 0.709579
коффе 0.704036
mellanrost 0.694822
сублемированный 0.694553
молотый 0.690066
кофейные 0.680409
5. Обобщение нескольких слов (A+B)
Enter word or sentence (EXIT to break):
мобильный телефон
сотовый 0.811114
телефона 0.776416
смартфон 0.730191
телфон 0.719766
мобильного 0.717972
мобильник 0.706131
6. Проецирование отношений (A-B+С)
Найти такое слово, которое относится к украине так-же, как доллар относится к
сша (то есть – что является валютой украины?):
Enter three words (EXIT to break): сша доллар украина
гривне 0.622719
долар 0.607078
гривны 0.597969
рубля 0.596636
Найти такое слово, которое относится к germany так-же, как франция относится к
france (то есть – перевод слова germany):
Enter three words (EXIT to break): france франция germany
германия 0.748171
англия 0.692712
нидерланды 0.665715
великобритания 0.651329
7. Преимущества и недостатки
• Учится быстро на неподготовленных текстах:
– 1.5 месяца на 100 Гб обучающий файл, модели BagOfWords и
Skipgram, на 24-х ядрах;
• Снижает размерность:
– 2.5 млн. токенов словарь ужимается до 256 элементов вектора
действительных чисел;
• Векторные операции быстро деградируют:
– Результат сложения 3-5 слов уже практически бесполезен =>
неприменимо для обработки текстов;
• Элементы вектора смысла не имеют, имеют смысл только
расстояния между векторами => метрика между токенами
одномерна.
8. Семантический вектор
• Пример с кофе показывает, что токены
группируются по смыслу (напитки);
• Необходимо сформировать достаточное число
кластеров;
• Размечать кластеры нет необходимости.
Тогда, получим набор кластеров, в которых
токены сгруппированы по смыслу, и, при
необходимости, каждому кластеру можно
присвоить метку => каждый кластер имеет
независимый от других смысл.
9. Сигнатура текста
• Текст состоит из токенов, каждый из которых привязан к своему кластеру;
• Можно подсчитать количество вхождений токена в текст и перевести в
количество вхождений кластера в текст (сумма всех токенов, входящих в
кластер);
• В отличии от размеров словаря (2.5 млн. токенов), количество кластеров
много меньше (2048) => работает эффект снижения размерности;
• Перейдём от общего количества подсчитанных в тексте токенов к их
относительному количеству (доле). Тогда:
– Доля не зависит от длины текста, а зависит только от частоты появления токенов в тексте
=> появляется возможность сравнивать тексты разной длины;
– Доля характеризует тематику текста => тематика текста определяется теми словами,
которые используются;
• Отнормируем доли конкретных текстов мат. ожиданием и дисперсией,
вычисленными по всей базе:
– Это повысит значимость редких кластеров (встречающихся не во всех текстах –
например, названия) по сравнению с частыми кластерами (например – местоимения,
глаголы и прочие связующие слова);
• Текст определяется своей сигнатурой – вектором 2048 действительных чисел,
имеющих смысл как нормированные доли токенов тематических кластеров,
из которых составлен текст.
10. Сигнатурный классификатор
• Каждому текстовому документу ставится в
соответствие сигнатура;
• Размеченная обучающая выборка текстов
превращается в размеченную базу сигнатур;
• Для исследуемого текста формируется его
сигнатура, которая последовательно
сравнивается с сигнатурами каждого файла из
обучающей выборки;
• Решение по классификации принимается на
основе kNN (k ближайших соседей), где k=3.
11. Преимущества и недостатки
• Преимущества:
– Нет потерь информации от обобщения (сравнение идёт с каждым
оригинальным файлом из обучающей выборки);
– Приемлемая скорость работы – порядка 0.3 секунды на прогон базы
сигнатур в 1.7 млн. документов в 24 потока;
– Возможность выделять нечёткие дубликаты:
• Бесплатно (сравнение сигнатур и так происходит на этапе классификации);
• Высокая избирательность (анализируются только потенциальные дубли,
составленные преимущественно из тех-же самых токенов, т.е. – имеющих высокую
меру близости сигнатур);
• Настраиваемость (можно занизить порог срабатывания и получать не просто дубли,
а тематически и стилистически близкие тексты);
– Нормированность оценок (0;1]
– Лёгкость пополнения обучающей выборки новыми документами (и
лёгкость исключения документов из неё);
• Недостатки:
– Никак не учитывается взаимное расположение токенов (словосочетания);
– Большие неснижаемые требования к оперативной памяти (35+ Гб);
– Плохо (никак) не работает, когда на класс приходится малое количество
образцов (единицы).
13. Тонкая настройка сигнатурного
классификатора
Как видно из графика “точность и полнота” рабочая область
классификатора достаточно узкая. Решение – разметить оригинальный
текстовый обучающий файл, по которому учится Word2Vec. Для этого в
текст документа внедряются метки, определяющие класс документа:
• Как результат, кластеры располагаются в векторном пространстве не
случайным образом, а разводятся так, что бы кластеры одного класса
тяготели друг к другу и отстояли на максимальное расстояние от
кластеров противоположного класса. Кластеры, характерные для
обоих классов располагаются посередине.
Требования к памяти снижаются путём сокращения размеров базы
сигнатур:
• Сигнатуры обучающей выборки, содержащие излишнее количество
образцов (более миллиона), последовательно кластеризуются на
большое число кластеров и из каждого кластера используется одна
сигнатура. Тем самым:
– Сохраняется относительно равномерное покрытие векторного
пространства сигнатурами образцов;
– Удаляются сигнатуры образцов, излишне близких друг другу, и,
соответственно, мало полезных для классификации.
14. Точность многоклассовой
классификации
Выделенных классов
Доля выделенных классов %%в общем
числе классов
Точность
классификации %%
1 0.273224 6.80059
2 0.546448 27.6964
3 0.819672 42.8124
5 1.36612 60.7113
7 1.91257 70.0642
9 2.45902 76.305
13 3.55191 83.2867
17 4.64481 87.1892
22 6.01093 90.4495
160 43.7158 99.012
• При большом числе классов трудно дать
правильный ответ в первом же классе. Поэтому
правильным срабатыванием классификатора
считается наличие правильного класса в первых
нескольких выделенных классах.
15. Сигнатурный классификатор,
резюме
• Быстрый;
• Легко дополняемый;
• Позволяет также обнаруживать дубликаты;
• Не учитывает взаимное расположение
токенов;
• Не работает, когда в обучающей выборке
мало примеров.
16. Шаблонный классификатор
• Основан на граммах длиной до 16-ти элементов:
– Часть целевых текстов оформлена по стандартам (STANAG, ISO).
Есть много типовых элементов:
• Заголовки;
• Подписи;
• Листы согласования и архивные метки;
– Часть целевых документов содержат в себе информацию по
оформлению:
• Xml (включая все современные офисные стандарты);
• Html;
– Практически все содержат устойчивые словосочетания, например:
• “с уважением, майор Пронин”;
• “доположено в ГШ и СНБО”;
• Является упрощённой реализацией Наивного Баессового
классификатора (без нормировки);
• Генерит до 60-ти млн. классифицирующих грамм;
• Работает быстро (конечный автомат).
17. Построение классификатора
• Из текстов выделяются граммы;
• Вычисляется относительная частота грамм на класс;
• Если для разных классов относительная частота
сильно отличается (в разы) грамма является
классифицирующим признаком;
• Редкие граммы, встреченные 1 раз, отбрасываются;
• Обучающая выборка классифицируется, и по тем
документам, по которым классификация была
ошибочна, формируются дополнительные граммы,
и добавляются в общую базу грамм.
18. Использование классификатора
• Из текста выделяются граммы;
• Суммируются веса всех грамм для каждого класса, к которому они
относятся;
• Побеждает класс, набравший наибольшую сумму весов;
• При этом:
– Класс, в котором было больше обучающих текстов, формирует обычно
больше классифицирующих грамм;
– Редкий класс (мало обучающих текстов) генерит мало грамм, но их
средний вес выше (из-за преобладания длинных уникальных для данного
класса грамм);
– Текст, в котором нет явного преобладания редких длинных грамм, будет
отнесён к классу с большим числом обучающих примеров
(апостериорное распределение стремится к априорному);
– Текст, имеющий длинные уникальные граммы редкого класса, будет
отнесён скорее к данному редкому классу (намеренно внесённое
искажение в апостериорное распределение с целью повысить
избирательность на редких классах).
19. Преимущества и недостатки
Преимущества:
• Относительно быстрый и компактный;
• Неплохо параллелится;
• Способен обучаться по единственному документу в
обучающей выборке на класс;
Недостатки:
• Оценки ненормированы и в оригинальном виде не
обеспечивают критерий pairwize (нельзя гарантировать,
что оценка с большим весом более вероятна);
• Генерится огромное количество грамм с околонулевой
вероятностью встретить их в реальных документах (не
дублях);
• Огромные требования к памяти на этапе обучения.
20. Ненормированность оценок
Почему:
• Нет необходимости делать нормировку – сильное
упрощение кода;
• Ненормированные оценки содержат больше
потенциально доступной для классификации
информации.
Как использовать:
• Оценки классификатора являются хорошими
признаками для использования в универсальных
классификаторах (xgboost, SVM, ANN);
• При этом, универсальные классификаторы сами
определяют оптимальную величину нормировки.
21. Итоговый обобщённый
классификатор (мультикласс)
Ответы сигнатурного и шаблонного классификаторов
объединяются в единый вектор признаков, который
подвергается дополнительной обработке:
• Нормировка оценок к единице, для получения их
относительной доли на класс;
• Группировка редких классов для получения
достаточного числа обучающих примеров на группу;
• Взятие разности групповых оценок для получения более
пологой поверхности для градиентного спуска.
По результирующему вектору признаков строится модель
xgboost, дающая прирост точности в пределах 3% к
точности оригинальных классификаторов.
23. Бинарный обобщённый
классификатор
Суть регрессия от:
• Сигнатурного классификатора:
– 2 + 59 классов;
• Шаблонного классификатора:
– 2 + 59 классов;
• XgBoost на выходах сигнатурного и шаблонного классификатора.
Критерий оптимизации – максимум площади под произведением полноты на
точность на отрезке [0;1] при этом, выдача классификатора не попадающая в
отрезок считается ложным срабатыванием.
Что даёт:
• Максимизирует рабочую область классификатора;
• Отбрасывает часть примеров в область ниже нуля => является сигналом, что
классификатор не в состоянии отработать данные примеры => классификатор
даёт отказ.
25. Бинарный обобщённый
классификатор, 1:20, Анализ
• Полнота начинается с 73% => 27% всех положительных
примеров не могут быть эффективно отработаны
классификатором;
• Наличествует завал точности от 96% до 0% => в выборке есть
порядка 4% примеров, размеченных как негативные, хотя на
самом деле они позитивные (проблема полноты разметки);
• Явно видны пять областей:
– Область отказа классификатора (менее нуля);
– две квазилинейные области;
– Область насыщения (максимальная эффективность);
– Область завала (проблема полноты разметки).
• Деление на области даёт возможность разработать
дополнительные средства классификации для каждой из
областей, особенно для 1-й и 5-й.
27. Бинарный обобщённый
классификатор, 1:182, Анализ
• Полнота начинается с 76% => 24% всех
положительных примеров не могут быть
эффективно отработаны классификатором;
• 12% всех положительных примеров однозначно
узнаются классификатором (100% точность);
• Явно видны четыре области:
– Область отказа классификатора (менее нуля);
– две квазилинейные области;
– Область 100% точности.
• График полноты вогнут без точек перегиба =>
классификатор обладает высокой
избирательностью.
28. Построение классификатора для
классов, у которых нет обучающих
примеров
Реальность такова, что существует достаточно
большое количество классов, к которым не
размечено ни одного документа, и единственная
доступная информация – это сообщение
Заказчика, какие именно документы он желает
классифицировать в данный класс.
Построение обучающей выборки вручную
невозможно, поскольку на 1.7 млн. имеющихся в
базе документов можно ожидать только
несколько документов, подпадающих под
данный класс, а возможно – и не одного.
29. Класс “Маркетинговые
исследования косметики”
Из анализа названия класса мы видим, что Заказчику интересны
документы, имеющие отношение к “Маркетинговые
исследования” и “Косметика”. Для обнаружения таких документов
необходимо:
• Сформировать семантическое ядро из текстов по заданным
тематикам, при этом, на всех представляющих интерес языках;
• Найти те тематики, которые не имеют отношения к заданному
классу – их использовать в качестве негативных примеров
(например – политика);
• Найти в базе документов несколько образцов документов,
которые имеют частичное либо точное отношение к заданному
классу;
• Разметить найденные документы силами ассесоров Заказчика;
• Построить классификатор.
33. Использование семантических ядер
У нас есть три тематики:
• Маркетинговые исследования;
• Косметика;
• Политика.
Используем шаблонный классификатор на данные три класса. Обработаем все документы в базе
документов и получим:
• Маркетинговые исследования 20%;
• Косметика 6%;
• Политика 74%.
Данные доли не показывают фактическое распределение документов по тематикам, они
показывают только средние веса признаков каждого класса, выделенных шаблонным
классификатором.
Однако, если исследуется документ, имеющий распределение долей 30%, 20%, 50% о таком
документе можно утверждать, что он содержит больше признаков текста с заданными
тематиками против негативной тематики (политика), соответственно – данный текст потенциально
интересен:
30%
50%
20%
74%
= 2.22 ∶
маркетинг
политика
20%
50%
6%
74%
= 4.93:
косметика
политика
34. Результаты поиска документов
В результате обработки всей базы документов было
выделено ~80 документов, из которых:
• Два оказались имеющими полное соответствие классу:
– не были найдены ранее при обработке документов
вручную;
– На разных языках, отличных от языка точки входа в
семантическое ядро (русского);
• ~36 % всех найденных документов имеют частичное
отношение к классу;
• Остальные не имеют отношения к классу вообще.
Важно, что в результате оценки получена размеченная
выборка ~80 документов, содержащих как позитивные, так
и негативные примеры.
35. Построение классификатора
Более 60% ложных срабатываний сигнализируют
о том, что одной политики в качестве
негативного примера недостаточно.
Решение:
• Найти автоматическим способом другие
тематики текстов, которые могут
использоваться в качестве негативных и,
потенциально, позитивных примеров. Для
этого:
– Сформировать автоматически наборы текстов на
большое количество тематик и выделить те из них,
что коррелируют (негативно или положительно) с
размеченной выборкой ~80 документов.
37. Онтология DBPedia. Формат RDF
<http://ru.dbpedia.org/resource/Столыпинская
_аграрная_реформа>
<http://www.w3.org/2000/01/rdf-
schema#comment> "Столыпинская аграрная
реформа — обобщённое название широкого
комплекса мероприятий в области сельского
хозяйства, проводившихся правительством
России под руководством П. А. Столыпина,
начиная с 1906 года."@ru .
Триплет “Объект” – “Свойство” – “Значение”
38. Онтология DBPedia. Представляют
интерес:
• Short Abstracts – краткая аннотация статьи;
• Long Abstracts – длинная аннотация статьи;
• Homepages – ссылки на внешние ресурсы,
домашние страницы;
• Article Categories – категория страницы;
• Category labels – читаемые названия
категорий;
• External links – ссылки на внешние ресурсы по
теме;
• Interlanguage links – Эта же статья на других
языках.
39. [Ожидаемые] результаты поиска
коррелированных тематик в DBPEdia
Результатом поиска коррелированных тематик будут являться:
• Наборы текстов на всех языках по заданным тематикам;
• Оценка степени коррелированности текстов по отношению к
классу;
• Человекочитаемое (словестное) описание тематик.
При этом, коррелированные тематики зависят не только от класса
“Маркетинговые исследования косметики”, но и от тематик
документов, содержащихся в базе (для тематик с отрицательной
корреляцией). Что позволяет использовать найденные тематики:
• для ручного построения классификаторов на другие темы;
• как дополнительные признаки для текстов, классифицируемых
итоговым обобщённым классификатором;
• Для создания дополнительных измерений метрик подобия
текстов в векторном пространстве сигнатурного
классификатора:
– Тут я отсылаю к своей статье в сборнике Диалога 2015 года по
обучению по аналогии в смешанных онтологических сетях.