Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун

После обучения векторы 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
Модуль кодирования разрабатывает представление значения предложения. На входе в кодер каждое слово представляется вектором. Вектор, ассоциированный с каждым словом, «выучивается» машиной. Кодирование объединяет