мы получаем ряд чисел от 0 до 1, сумма которых составляет 1: это и есть распределение вероятностей. Модуль softmax используется практически во всех классификационных приложениях.
После обучения векторы LUT используются для представления слов. Они содержат всю информацию, позволяющую системе предсказать следующее слово, как согласно его значению, так и с точки зрения его синтаксической роли. Система обучена множеству фраз, даже таких как «молоко на столе», но в нем никогда не будет словосочетаний типа «машина на столе». Во фразах «он видел собаку в саду» и «кошка в саду» слова «собака» и «кошка» встречаются в аналогичных контекстах. Система самопроизвольно назначает одинаковые векторы эмбеддинга «кошке» и «собаке», но разные векторы «молоку» и «машине». Точно так же она поступает с названиями мест, месяцев и т. д. В более общем смысле, когда слова играют аналогичную роль в предложении, их векторы эмбеддинга похожи.
В период с 2008 по 2011 г. бретонец Ронан Коллобер и британец Джейсон Уэстон, работавшие в лаборатории японской компании NEC в Принстоне, заметно усовершенствовали идею встраивания. Они доказали, что со сверточной сетевой архитектурой система может не только предсказывать следующее слово, но также выполнять задачи понимания и анализа текста. Их работа встретила ожесточенное сопротивление со стороны сообщества исследователей, занимавшихся обработкой естественного языка. Статья Коллобера и Уэстона даже стала предметом насмешек. Это несправедливо, потому что они указали правильный путь. В 2018 г. они получили награду ICML Test of Time, которая присуждается за самую выдающуюся статью, опубликованную десятью годами ранее на Международной конференции по машинному обучению (ICML)[83]. Джейсон и Ронан теперь работают исследователями в Facebook.
В 2013 г. Томаш Миколов, молодой чешский исследователь, работающий в Google, еще раз поднял идею обучения языковой модели. Он предложил очень простую архитектуру, которую он назвал Word2vec и которая оказалась настолько эффективна при представлении текстов, содержащих слова, что распространяется со скоростью лесного пожара[84]. Все используют ее для представления текста, чтобы понять его значение или стиль. Вскоре после этого Томаш также перешел в Facebook. После своего появления там он сотрудничал с французскими исследователями Петром Бояновски, Эдуардом Гравом и Арманом Жуленом в проекте FastText, который значительно улучшил производительность Word2vec[85], расширил область его приложения и добился охвата 157 языков. Система FastText, распространяемая с открытым исходным кодом, используется тысячами инженеров по всему миру[86].
Мир искусственного интеллекта взбудоражился. В конце 2014 г. Илья Суцкевер (бывший ученик Джеффа Хинтона) опубликовал на съезде NIPS статью, которая произвела эффект разорвавшейся бомбы[87]. Он построил большую нейронную сеть для перевода с одного языка на другой, возможности которой заметно превзошли методы, использовавшиеся до того.
В «классических» методах перевода использовалась статистика, рассчитанная на параллельных текстах. Сколько раз фраза «увидимся позже» переводится с французского как «à plus tard»? Сколько раз слово «banque» переводится как «банк»? Выявляя эту статистику и переупорядочивая слова на целевом языке с учетом синтаксиса, мы получаем приблизительные переводы. Но эти классические системы плохо работают для неродственных языков (например, французского и китайского) или для языков, в которых порядок слов сильно несхож (как в английским и немецким: в последнем глагол часто находится в самом конце предложения).
В 1997 г. немецкими исследователями из Швейцарии Зеппом Хохрайтером и Юргеном Шмидхубером[88] была предложена архитектура рекуррентной сети, называемая LSTM (Long Short-Term Memory, долгая краткосрочная память). Они предложили использовать многослойную LSTM для кодирования значения предложения в вектор, а затем использовать другую сеть LSTM для пословного перевода на целевой язык. Этот тип задачи назывется «seq2seq»: преобразование последовательности символов в другую последовательность символов (совокупность подходов в машинном обучении для обработки естественных языков). Такая система хорошо работает только с относительно короткими предложениями: когда LSTM достигают конца предложения, они «забывают» его начало! Кроме того, эта система требует больших вычислительных ресурсов и не может быть развернута в больших масштабах.
Однако в следующем (2015) г. у Кенхена Чо, молодого корейского исследователя с докторской степенью из лаборатории Йошуа Бенджио в Монреале, и Дмитрия Богданау, молодого стажера из Германии, возникла блестящая идея. Вместо того чтобы кодировать все предложение в вектор фиксированного размера, почему бы не позволить сети сосредоточить свое «внимание» на той части предложения исходного языка, которую она переводит? Например, системе необходимо перевести английский текст: «В этом доме две ванные комнаты. У жены есть своя, а у мужа – своя». (англ., согласно автору: «In this house, there are two bathrooms. The wife has her own and the husband his own.»; франц. «Dans cette maison, il y a deux salles de bains. La femme a la sienne et le mari la sienne.») В английском языке местоимение связано с субъектом, а во французском с объектом. Чтобы закончить предложение («а муж…»), система должна решить, переводить ли «его собственная» на «его» или «свою». Но чтобы определить правильную форму, он должен обратиться к объекту «ванная комната», который стоит в предыдущем предложении.
Первые результаты были многообещающими: система оказалась эффективнее и намного дешевле в требованиях к процессору и памяти, чем у Суцкевера[89]. Несколько месяцев спустя лаборатория Криса Мэннинга в Стэнфордском университете приняла участие в международном конкурсе машинного перевода WMT[90], используя идеи группы из Монреаля – и победила! Началась новая золотая лихорадка: идею подхватили все группы, работающие над переводом, включая группу Майкла Аули, немецкого исследователя из FAIR в Калифорнии, создавшего отличную систему перевода, архитектура которой была основана на сверточных сетях, дополненных механизмом внимания (техника, используемая для поисков взаимосвязи между частями входных и выходных данных). Его система выиграла соревнование WMT 2019[91].
Архитектура BERT (в середине) учится представлять тексты, предвосхищая слова входного предложения, которые ранее были скрыты от сети. Многоязычная версия внизу учится одновременно представлять предложение и его перевод и развивает внутреннее представление независимо от языка (источник: «Guillaume Lample et Alexis Conneau)[92].
В конце 2017 г. уже группа ученых из Google использует для своей системы перевода масштабные «схемы внимания». Их статья называется «Внимание – это все, что вам нужно». Они окрестили свою архитектуру «Трансформером». Спустя несколько месяцев сообщество потрясло еще одно изобретение, родившееся в лаборатории Google. Свою новую переводческую систему они назвали BERT (Bidirectional Encoder Representations from Transformers, «двунаправленный кодировщик на основе искусственного интеллекта»).
Рис. 7.4. Архитектура «seq2seq» (перевод последовательности в последовательность), используемая в автоматическом переводе, BERT/трансформере и многоязычном BERT
Модуль кодирования разрабатывает представление значения предложения. На входе в кодер каждое слово представляется вектором. Вектор, ассоциированный с каждым словом, «выучивается» машиной. Кодирование объединяет