?

Log in

No account? Create an account

Компьютерная лингвистика

Новостная лента www.solarix.ru

Entries by tag: перефразировки

Альтернативный подход к генерации фраз для чатбота из classic.sberbank.ai
kelijah
Вообще я планировал, что в каком-то виде алгоритм, или его части, созданный для https://classic.sberbank.ai, будет использоваться в чатботе при генерации ответа. У него среди прочего есть такая интересная особенность, что он рандомизирован, и может выдавать разные ответы на каждую попытку - то, чего не хватает сейчас чат-боту.

Например:
Read more...Collapse )

Нейросетевые модели для определения перефразировок вопросов (Quora Question Pairs на kaggle.com)
kelijah
Содержание

Краткое вступление по поводу задачи
Используемый софт & хард
Исходные тексты моделей
Siamese network
Удвоение датасета
Использование word2vec встраиваний и обучаемость слоя Embedding
Оценки качества моделей, усреднение

Часть 1 char-level deep neural networks
1.1 Простейший multilayer perceptron
1.2 Рекуррентная нейросеть
1.3 Сверточная нейросеть
1.4 Гибридная нейросеть, соединяющая сверточную и рекуррентную архитектуру

Часть 2 word-level deep neural networks
2.1 Рекуррентная сетка на базе bidirectional LSTM
2.2 Сверточная сеть
2.3 Гибридная рекуррентно-сверточная архитектура

...

Сеточная модель для детектирования перефразировок leaderboard=>0.17264
kelijah
Потюнил параметры (величину дропаута, кол-во слоев), logloss на паблике упал на соточку до 0.17264.
Соточка - это оказывается целых 44 позиции вверх на данный момент:Read more...Collapse )

Когда фичи неожиданно провзаимодействовали с leaks на Quora Question Pair
kelijah
Соревнование по определению похожих вопросов (перефразировок) Quora Question Pair на Kaggle через 2 недели закончится. У меня в запасе осталась одна неиспытанная NLP фича. Но под нее надо писать прожку на C# из-за большого количества циклов, не сводимых к numpy-функционалу. Поэтому могу и не успеть.

А тут неожиданно очередной опубликованный leak провзаимодействовал с остальными моими фичами и в итоге модель на xbgoost с кучей фич от посимвольной похожести в разных видах до забавных NLP фич part-of-speech tagger+salient words или n-gram language model резко улучшилась. Текущий logloss на паблике упал до 0.16:
Read more...Collapse )
Забавно и немного поучительно.
Сейчас запустил новый расчет для гибридной сеточной модели (char-level + word-level + доп.фичи). Раньше эта сетка давала точность лучше, чем xgboost, посмотрим на результаты.

LSI+xgboost в задаче Quora question pairs
kelijah
Сама задача тут https://www.kaggle.com/c/quora-question-pairs
TF-IDF для лемматизированных предложений, работает по словам и 2-граммам.
LSI для снижения размерности до 200 (использую gensim).

В качестве фич для xgboost также берется выдача с репрезентационного (предпоследнего) слоя двух сеточных моделей определения перефразировок - по символам и по токенам. Эти модели тренируются отдельно, дают качество намного хуже, но эксперимент показывает, что их данные могут поднять качество бустинга на пару сотых в логлоссе.

Далее xgboost с автоподбором числа итераций, кросс-валидацией на 9 фолдов.

Пока лучшая попытка с этой связкой инструментов пока дала 0.29394 на leaderboard:
Read more...Collapse )

Самое интересное в этой связке, что bagging xboost'ов в данной задаче стабильно дает log loss намного хуже (пессимистичнее), чем потом получается при сабмите на leaderboard. Разница существенная, например в данной попытке валидация дала 0.333765, то есть реальное качество сабмита оказалось на 0.04 лучше. Как-то я привык, что локальная оценка всегда оптимистичнее, чем получается в итоге.

Текучка - детектирование перефразировок, определение полярности
kelijah
1. Перефразировки.

Read more...Collapse )2. Полярность предложений в отзывах.

Read more...Collapse )

3. Появилась задумка "сеточного стеммера" для уменьшения энтропии текста. Научимся сводить слова к "базовым" корням, устраняя приставки, суффиксы и окончания.