1 Введение 4
2 Постановка задачи 6
3 Обзор литературы 7
3.1 Нейронные сети прямого распространения 7
3.2 Рекуррентные нейронные сети 9
3.3 Проблема уменьшающихся/взрывающихся градиентов 10
3.4 Long short-term memory 10
3.5 Свёрточные сети 12
3.6 Dropout 14
3.7 word2vec 14
3.8 char2vec 16
3.9 Sequence-to-sequence модели 17
4 Основная часть 19
4.1 Общее описание модели 19
4.2 Функция потерь 20
4.3 Метрики качества 21
4.4 Входные данные 23
4.5 Базовая архитектура 24
4.6 Механизм внимания 26
4.6.1 Индивидуальные карты внимания 28
4.6.2 Общие карты внимания 28
4.7 Многослойная рекуррентная архитектура 30
4.8 Расширение представления слова информацией о символах 32
5 Экспериментальная часть 35
5.1 Подготовка данных 35
5.2 Сравнение различных архитектур 36
5.3 Тестирование sequence-to-sequence модели 38
5.4 Визуализации для архитектур с картами внимания 39
5.5 Применение к задаче распознавания именованных сущностей 41
6 Заключение 44
Список литературы 45
В 2013 году Томашем Миколовым была представлена статья “Efficient Estimation of Word Representations in Vector Space” [1] в которой были описаны две модели для обучения так называемых распределённых представлений слов: continuous bag-of-words и continuous skip-gram, программная реализация которых широко известна как word2vec. Распределённое представление слова — это вектор из Rn (при n значимо меньшем, чем размер словаря обучающей выборки). Основная идея распределённых представлений заключается в том, что семантически близкие слова будут иметь схожие представления.
После публикации этой статьи word2vec стал крайне популярным в задачах автоматической обработки естественного языка и остаётся таким по сей день. Но идея, используемая в статье, не была совершенно новой, ещё в 2003 году в статье “A neural probabilistic language model” [2] была представлена похожая модель, однако она уступала как в качестве обучаемых представлений, так и в плане вычислительной эффективности. Так же стоит отметить модели тематического моделирования, например, latent dirichlet allocation [3], главной отличительной чертой которых являлось то, что при обучении в качестве контекста для слова эти модели используют весь документ целиком, а не только небольшое число ближайших соседей.
Большинство популярных методов для обучения представлений слов рассматривают слова атомарно, то есть никак не учитывают информацию ни о символах, образующих слово, ни о морфологии. Например, два слова, различающиеся только окончаниями, будут восприняты моделью как разные слова. Такой подход эффективен с вычислительной точки зрения. Однако в случае с морфологически богатыми языками (к которым, например, относятся многие славянские и романские языки) могут появляться трудности: некоторые формы слов могут ни разу не встретиться даже в очень большой обучающей выборке. Ещё одной, но уже меньшей проблемой такого подхода является неустойчивость к опечаткам.
Самым простым способом решения проблемы с морфологией является приведение всех слов к начальной форме. С таким подходом имеется две проблемы: во-первых, потребуется использовать морфологический анализатор для нормирования слов, во-вторых, в некоторых задачах приведение к начальной форме недопустимо.
Другой подход, набирающий популярность в последние годы — нейронные сети, принимающие в качестве входа слова как последовательность букв. Недостатком такого подхода является необходимость в большем размере обучающей выборки (как правило, размеченной), а так же в больших вычислительных ресурсах.
Отдельно стоит отметить char2vec [4], являющийся обобщением word2vec и тесно связанный с моделями, предложенными в этой работе, но так же имеющий недостатки, описанные в параграфе выше.
В этой работе был представлен ряд моделей, позволяющих восстанавливать распределённые представления слов из их посимвольного представления. Была проведена их оценка и сравнение, а так же продемонстрировано успешное применение на прикладной задаче.
Планируется продолжить работу над этим проектом, а именно исследовать интерпретируемость прогнозов модели и протестировать её на других морфологически богатых языках.
[1] Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781.
[2] Bengio, Y., Ducharme, R., Vincent, P., & Jauvin, C. (2003). A neural probabilistic language model. Journal of machine learning research, 3(Feb), 1137-1155.
[3] Blei, D. M., Ng, A. Y., & Jordan, M. I. (2002). Latent dirichlet allocation. Advances in neural information processing systems, 1, 601-608.
[4] Cao, K., & Rei, M. (2016). A Joint Model for Word Embedding and Word Morphology. arXiv preprint arXiv:1606.02601.
[5] Elman, J. L. (1990). Finding structure in time. Cognitive science, 14(2), 179-211.
[6] Yu, D., & Deng, L. (2014). Automatic speech recognition: A deep learning approach. Springer.
[7] Tieleman, T., & Hinton, G. (2012). RMSProp. COURSERA: Neural Networks.
[8] Kingma, D., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.
[9] Pascanu, R., Mikolov, T., & Bengio, Y. (2013). On the difficulty of training recurrent neural networks. ICML (3), 28, 1310-1318.
[10] Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural computation, 9(8), 1735-1780.
[11] Graves, A. (2012). Supervised sequence labelling. In Supervised Sequence Labelling with Recurrent Neural Networks (pp. 5-13). Springer Berlin Heidelberg.
[12] Arjovsky, M., Shah, A., & Bengio, Y. (2016, June). Unitary evolution recurrent neural networks. In International Conference on Machine Learning (pp. 1120-1128).
[13] LeCun, Y., Boser, B., Denker, J. S., Henderson, D., Howard, R. E., Hubbard, W., & Jackel, L. D. (1989). Backpropagation applied to handwritten zip code recognition. Neural computation, 1(4), 541-551.
[14] Zhang, X., & LeCun, Y. (2015). Text understanding from scratch. arXiv preprint arXiv:1502.01710.
[15] Srivastava, N., Hinton, G. E., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: a simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(1), 1929-1958.
...