Илья Мельников (Яндекс) "Классификатор коротких...

44

Upload: ainl-conferences

Post on 14-Nov-2014

243 views

Category:

Technology


4 download

DESCRIPTION

В докладе описан подход, решающий задачу классификации коротких текстов на основании семантического сопоставления с обучающими примерами. Раскрыты такие аспекты, как: Максимальный упор на сравнение по смыслу (против известных статистических методов) Устойчивость к разнообразию формулировок, использованию синонимов Построение модели на малом количестве данных Для решения этих задач создан классификатор на основе векторного представления слов. Обучающие тексты отображаются в многомерное пространство в виде наборов точек. Для анализируемого текста класс определяется соотношениями близостей между представлением текста и обучающих примеров. Делается допущение об условной независимости слов в фразе. Подход применим в любых задачах, где необходимо по смыслу классифицировать фразы диалога или короткие тексты. Тестирование проводилось интерактивном стенде для Yac/m. Порядка 70 обучающих примеров, 4 класса. Получена accuracy порядка 250%, проверка методом 5 fold cross validation.

TRANSCRIPT

Page 1: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций
Page 2: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Классификатор коротких текстов с использованием векторных репрезентаций слов

Илья Мельников

Page 3: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Введение

Page 4: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Интерактивные голосовые системы

Голосовое управление мобильными приложениями

Голосовые помощники

Коллцентры

Page 5: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример 1: Голосовое меню

EUR европейская кухняASI азиатская кухняUSA американская кухня

Пункты меню

Page 6: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример 1: Голосовое меню

EUR европейская кухняASI азиатская кухняUSA американская кухня

EUR багет сыр и бокал винаEUR континентальный завтракASI хочу поесть сушиASI въетнамская или тайскаяUSA двойной гамбургер и кока кола без сахараUSA макдональдс бар энд грилл

Пункты меню

Запросы

Page 7: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример 1: Голосовое меню

EUR европейская кухняASI азиатская кухняUSA американская кухня

EUR багет сыр и бокал винаEUR континентальный завтракASI хочу поесть сушиASI въетнамская или тайскаяUSA двойной гамбургер и кока кола без сахараUSA макдональдс бар энд грилл

Пункты меню

Запросы

HOW?

Page 8: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример 2 Коллцентр

1500 звонков в день

4 очереди + общая

Классифицировать звонки общей очереди

Понять по первой фразе, куда направить

Page 9: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример 2 Коллцентр

1500 звонков в день

4 очереди + общая

Классифицировать звонки общей очереди

Понять по первой фразе, куда направить

HOW?

Page 10: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Традиционные подходы:Cтатистические методы

LDA, Байес, Pattern mining

Плюсы:

Учимся на больших объемах

Большое покрытие

Минусы:

Невозможность «холодного старта»

Не учитывают семантику

Page 11: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Традиционные подходы:Cтатистические методы

LDA, Байес, Pattern mining

Плюсы:

Учимся на больших объемах

Большое покрытие

Минусы:

Невозможность «холодного старта»

Не учитывают семантику

Page 12: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Традиционные подходы:Cтатистические методы

LDA, Байес, Pattern mining

Плюсы:

Учимся на больших объемах

Большое покрытие

Минусы:

Невозможность «холодного старта»

Не учитывают семантику

Page 13: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Традиционные подходы:Ключевые слова, rule based

Ключевые слова, правила, Frame Net-like

Плюсы:

Высокая точность

Учитывают смысл

Минусы:

Крайне низкое покрытие

Высокая стоимость реализации

Нет метрики для сравнения

Page 14: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Традиционные подходы:Ключевые слова, rule based

Ключевые слова, правила, Frame Net-like

Плюсы:

Высокая точность (Precision)

Учитывают смысл

Минусы:

Крайне низкое покрытие

Высокая стоимость реализации

Нет метрики для сравнения

Page 15: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Традиционные подходы:Ключевые слова, rule based

Ключевые слова, правила, Frame Net-like

Плюсы:

Высокая точность

Учитывают смысл

Минусы:

Крайне низкое покрытие (Recall)

Высокая стоимость реализации

Нет метрики для сравнения

Page 16: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Потребность

Минимизировать:

Supervised

Cтоимость

Cложность поддержки

Опираться на смысл

Метрика похожести

Холодный старт

Page 17: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Идея

Page 18: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Классификатор на основе векторныхрепрезентаций

Unsupervised pretraining

Открытые данные

Семантическая модель

Маленький обучающий корпус для адаптации

Page 19: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Векторная репрезентация

Mikolov at al., Efficient Estimationof Word Representationsin Vector Space, ICLR 2013

Page 20: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Векторная репрезентацияВходной вектор

А Б Х В Г

[ 1 1 1 1 1] - [100К]

Результат Х = [0.080543, 0.075750, ... -0.109624, 0.038613]

=> Проекция [200]

Page 21: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Векторная репрезентацияБлижайшие словаголос

хрипловатый 0.797113697099

певучий 0.764843965305

звучный 0.751156818403

дискант 0.733722699661

голосок 0.72665754898

Ближайшие словаяндекс

yandex 0.83357081449

гугл 0.828274592652

рамблер 0.788542301545

поисковик 0.765093627596

яндексе 0.750866569063

Page 22: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Классификатор

Модель:

Обучающие фразы

Слова представлены векторами

Размечаем классами

Частотность по классам

Page 23: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Классификатор

cl – классtext – входящая фразаv – слова моделиKNN(w) – К ближайших словM – метрика доверияP(v|cl) – априорная вероятностьcos – косинус, мера семантической близости 23

Page 24: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Мера семантической близости

http://www.codeproject.com/KB/TipsnTricks/788739/barneshutplot.jpg

Page 25: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Метрика доверия

Page 26: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Метрика доверия

Page 27: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Априорная вероятность

https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Bayes%27_Theorem_MMB_01.jpg

Page 28: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Классификатор

Page 29: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример: звонок в коллцентр Я.Директа

- Здравствуйте, по какой теме вы обращаетесь?

- Не показывают объявление

Page 30: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример: звонок в коллцентр Я.Директа

- Здравствуйте, по какой теме вы обращаетесь?

- Не показывают объявление

показывают 0.682 показываетdirect-nodisplay 7.98direct-mod 9.57direct-pay 9.38

0.531 идутdirect-nodisplay 8.89direct-mod 10.87market 10.59

Page 31: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример: звонок в коллцентр Я.Директа

- Здравствуйте, по какой теме вы обращаетесь?

- Не показывают объявление

показывают 0.682 показываетdirect-nodisplay 7.98direct-mod 9.57direct-pay 9.38

0.531 идутdirect-nodisplay 8.89direct-mod 10.87market 10.59

объявление 0.736 объявленияdirect-mod 5.67direct-nodisplay 5.72market 10.20

0.537 сообщениеdirect-nodisplay 8.26direct-mod 8.54market 9.70

Page 32: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример: звонок в коллцентр Я.Директа

- Здравствуйте, по какой теме вы обращаетесь?

- Не показывают объявление

показывают 0.682 показываетdirect-nodisplay 7.98direct-mod 9.57direct-pay 9.38

0.531 идутdirect-nodisplay 8.89direct-mod 10.87market 10.59

объявление 0.736 объявленияdirect-mod 5.67direct-nodisplay 5.72market 10.20

0.537 сообщениеdirect-nodisplay 8.26direct-mod 8.54market 9.70

0.226 Direct-nodisplay WIN!0.244 Direct-mod0.253 Direct-pay 0.275 Market

Page 33: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Пример: звонок в коллцентр Я.Директа

- Здравствуйте, по какой теме вы обращаетесь?

- Не показывают объявление

- Спасибо, переводим Вас на специалиста!

Page 34: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Реализация

Page 35: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Тренировка векторных репрезентаций

Тексты сайтов и Википедии

Continuous bag of words

Окно – 9

Неделя

Page 36: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Трюки

Выбрасываем Stop words

Приводим слова в нормальную форму

Снабжаем весами: априорные вероятности

Распознавание речи: учитываем варианты

Page 37: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Реализация

Python

numpy

Page 38: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Оценка: коллцентр Взаимная

Встречаемость в Top 2 :4412 звонков 10 fold cross validation 700 слов в модели

Эксперимент CosTheshold MetricPower KNearest Accuracy Top2Acc

1 Лучший результат 0.9 3 1 0.701 0.897

2 Без одинаковых слов 0.45 3 2 0.643 0.836

3 С одинаковыми 0.45 3 2 0.695 0.889

0 1 2 3

0 0

1 265 0

2 185 101 0

3 101 62 86 0

Page 39: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Magic

Интерактивный стенд

Обучающая выборка: 4 класса, 70 примеров

Коридорный опрос

Accuracy: 0.68

Page 40: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Magic

"Какой подарок вы предпочтёте на день рождения?"

"виллу на майами окей а ну",

"Какое ваше любимое блюдо на обед?"

"обезжиренный йогурт",

"Как вы проведете неожиданный выходной?"

"шоппинг of war австралии",

"Почему вы совершаете покупки в интернете?"

"но я не знаю на самом деле дансе"

Page 41: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Резюме

Page 42: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Примеры применения

Коллцентр – автосалон, интернет магазин

Диалоговая система – интент для персонального ассистента

Классификация коротких текстов – комментарии, формы обратной связи

Page 43: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

api.yandex.ru/speechkit/

43

Page 44: Илья Мельников (Яндекс) "Классификатор коротких текстов с использованием векторных репрезентаций

Илья Мельников

Отдел голосовых технологий

[email protected]

clubs.ya.ru/speechkit/

api.yandex.ru/speechkit/