Илья Мельников (Яндекс) "Классификатор коротких...
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
Илья Мельников
Отдел голосовых технологий
clubs.ya.ru/speechkit/
api.yandex.ru/speechkit/