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

Post on 14-Nov-2014

243 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

Введение

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

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

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

Коллцентры

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

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

Пункты меню

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

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

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

Пункты меню

Запросы

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

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

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

Пункты меню

Запросы

HOW?

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

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

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

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

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

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

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

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

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

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

HOW?

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

LDA, Байес, Pattern mining

Плюсы:

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

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

Минусы:

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

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

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

LDA, Байес, Pattern mining

Плюсы:

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

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

Минусы:

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

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

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

LDA, Байес, Pattern mining

Плюсы:

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

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

Минусы:

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

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

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

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

Плюсы:

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

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

Минусы:

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

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

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

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

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

Плюсы:

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

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

Минусы:

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

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

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

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

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

Плюсы:

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

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

Минусы:

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

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

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

Потребность

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

Supervised

Cтоимость

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

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

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

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

Идея

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

Unsupervised pretraining

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

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

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

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

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

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

А Б Х В Г

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

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

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

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

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

певучий 0.764843965305

звучный 0.751156818403

дискант 0.733722699661

голосок 0.72665754898

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

yandex 0.83357081449

гугл 0.828274592652

рамблер 0.788542301545

поисковик 0.765093627596

яндексе 0.750866569063

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

Модель:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

показывают 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.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

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

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

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

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

Реализация

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

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

Continuous bag of words

Окно – 9

Неделя

Трюки

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

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

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

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

Реализация

Python

numpy

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

Встречаемость в 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

Magic

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

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

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

Accuracy: 0.68

Magic

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

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

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

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

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

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

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

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

Резюме

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

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

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

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

api.yandex.ru/speechkit/

43

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

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

imeln@yandex-team.ru

clubs.ya.ru/speechkit/

api.yandex.ru/speechkit/

top related