ЖАНРЫ

Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:

Во-вторых, с увеличением n быстро растут требования к объёму используемой памяти. Действительно, в какой-то момент размер оперативной памяти для хранения статистики n– грамм становится недостаточным. Конечно, эту статистику можно пересчитывать на лету, но для этого потребуется в момент расчёта вероятностей заново анализировать весь обучающий корпус, что чаще всего неприемлемо из-за ограничений по времени. Поэтому в начале 2000-х гг. обычно использовались модели, в которых самыми длинными были триграммы.

В-третьих, n– граммные модели ничего не знают о похожести слов и вообще об их семантике. Например, если в обучающем корпусе встречается фраза «Петя щёлкнул Васю по», продолжением которой является слово «лбу», то это никак не поможет модели понять, что последовательность «Вася щёлкнул Петю по» также с большой вероятностью будет продолжена тем же самым словом. Для модели «Вася» и «Петя» — это не имена мальчиков, а просто два разных слова. Несложно заметить, что трудности n– граммных моделей аналогичны трудностям моделей, использующих в качестве текстовых представлений мешки слов и one-hot-векторы.

Эти недостатки n– граммных моделей не нашли удовлетворительного решения.

Требовался новый подход, и в 2003 г. свет увидела важная работа Йошуа Бенджио и его коллег под названием «Нейронная вероятностная языковая модель» (A Neural Probabilistic Language Model) [2109] . Изложенная в ней идея заключалась в том, чтобы вместо one-hot-векторов использовать векторы признаков [feature vectors], обладающие меньшей размерностью и представляющие собой наборы вещественных параметров (своих для каждого слова), значения которых можно было бы получить в процессе обучения модели. Бенджио экспериментировал с векторами размерностью 30, 60 и 100 при размере словаря около 16 000–18 000 слов (в зависимости от корпуса). В зависимости от настроек сеть Бенджио принимала на вход соединение (конкатенацию) векторов, соответствующих трём, четырём или пяти предыдущим словам (т. е. при размерности вектора признаков, равной 100, и длине контекста, равной 4, на вход сети подавалось 4 x 100 = 400 вещественных чисел), и представляла собой полносвязный перцептрон — в большинстве экспериментов с одним промежуточным слоем, в котором могло быть 50 или 100 нейронов.

2109

Bengio Y., Ducharme R., Vincent P., Jauvin C. (2003). A Neural Probabilistic Language Model / Journal of Machine Learning Research, Vol. 3 (2003), pp. 1137—1155 // http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf

Реализацию идеи Бенджио можно представить как добавление ко входу сети нескольких идентичных нейронных сетей (по одной для каждого из слов контекста). Каждая из этих сетей состоит из двух слоёв нейронов и преобразовывает one-hot-векторы, соответствующие словам, в векторы признаков. Все нейроны её первого слоя (получающего на вход one-hot-векторы) связаны со всеми нейронами второго слоя (выходы которого и составляют векторы признаков). Такое соединение часто называют проекцией [projection].

Число параметров такой сети равно произведению числа слов в словаре и размерности вектора признаков. Таким образом, при 16 000 слов в словаре и размерности вектора признаков 100 число параметров будет равно 16 000 x 100 = 1 600 000. Поскольку сети, применяемые к каждому из слов, идентичны (т. е. содержат копии одного и того же набора весов), увеличение длины контекста никак не влияет на число параметров модели. Если бы вместо такого набора сетей мы использовали полносвязный слой, то число параметров в нём было бы при длине контекста 4 равно (4 x 16 000) x (4 x 100), то есть в 16 раз больше, чем в модели Бенджио.

Слой, образуемый описанными выше сетями, добавленными ко входу сети Бенджио, в наши дни носит название «слой словарного вложения» [word embedding layer], впрочем, специалисты по машинному обучению называют его обычно «словарным эмбеддингом» или попросту «эмбеддингом» (также термином «эмбеддинг» или «векторы эмбеддинга» часто обозначаются и сами встраиваемые векторы).

Несложно углядеть здесь аналогию со слоем свёртки в свёрточных нейронных сетях — в нём каждая из операций свёртки также осуществляется при помощи одного и того же набора весов.

Бенджио не был первым исследователем, предложившим использовать векторные представления слов естественного языка. Почти за полвека до него этот подход начал применяться для решения задач в области поиска информации и тематического моделирования, например в рамках так называемого латентно-семантического анализа (Latent semantic analysis, LSA) — метода обработки информации на естественном языке, анализирующего взаимосвязь между библиотекой документов и встречающимися в них терминами. Различные идеи по решению задач в области обработки текстов на естественном языке, в том числе для построения языковых моделей, выдвигались в 1980-е и 1990-е гг. многими ведущими коннекционистскими исследователями, в том числе Шмидхубером, Элманом и Хинтоном. Но в работе Бенджио и его коллег идея словарных эмбеддингов приобрела именно ту форму, в которой она стала основой первой революции в NLP в начале 2010-х гг. Интересно, что разработанная авторами исследования модель стала также одним из первых примеров сетей с перепрыгивающими связями: в одном из рассмотренных вариантов была архитектура с набором связей, напрямую соединяющих слой векторов признаков с выходом сети.

Впрочем, для осуществления решительного прорыва понадобилось ещё десятилетие исследований. Дело в том, что в модели Бенджио векторы признаков выучивались моделью одновременно с остальными слоями сети, из-за чего само обучение модели было связано со значительными вычислительными затратами (потом исследователи использовали общедоступные библиотеки векторов признаков, построенные на базе анализа больших объёмов текстов, но в 2003 г. такой возможности не существовало). В 2003 г. Бенджио и его коллегам пришлось создать специальную параллельную архитектуру для того, чтобы провести эксперименты с такими сравнительно небольшими текстовыми корпусами, как корпус Брауна (Brown Corpus) [2110] из более миллиона слов и корпус APNews, состоявший из новостей агентства Associated Press за 1995 и 1996 гг. (почти 14 млн слов). Для сравнения: на 2 августа 2021 г. суммарный объём текстов англоязычной «Википедии» составлял свыше 3,9 млрд слов [2111] , то есть как минимум в 270 раз больше, чем самый большой корпус в экспериментах Бенджио и его коллег. При этом авторы исследования обучали модель на корпусе APNews в течение всего пяти эпох (эпохой обучения обычно называют последовательность шагов обучения, в ходе которой модели будут однократно предъявлены все прецеденты обучающей выборки), что потребовало более трёх недель обучения при использовании 40 CPU. На момент окончания эксперимента модель не демонстрировала никаких признаков переобучения, то есть Бенджио и его коллеги прервали обучение модели, так и не достигнув пределов её возможностей. Кроме того, авторы исследования использовали нейросетевую модель в составе ансамбля с классической n– граммной моделью, то есть фактически учили модель не строить самостоятельный прогноз, а корректировать ошибки n– граммной модели. В итоге авторам удалось на корпусе APNews улучшить результаты лучшей n– граммной модели примерно на 8%. В то же время модель, обучавшаяся в течение двух десятков эпох на корпусе Брауна, смогла показать куда более солидное преимущество — примерно в 24%. Конечно, даже по меркам начала 2000-х гг. корпус Брауна вследствие своего скромного объёма изрядно устарел, в то время среди исследователей наибольшей популярностью пользовались ставшие классическими The Penn Treebank [2112] и British National Corpus [2113] , [2114] , [2115] , [2116] . Возможно, это было одной из причин, по которым работа Бенджио в 2003 г. не стала заметным событием в научном мире.

2110

Francis W. N., Kucera H. (1979). Brown corpus manual. Manual of information to accompany a standard corpus of present-day edited American English, for use with digital computers // http://korpus.uib.no/icame/brown/bcm.html

2111

Wikipedia contributors. (2021, August 2). Size of Wikipedia. In Wikipedia, The Free Encyclopedia. Retrieved 08:00, August 2, 2021, from https://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia

2112

Marcus M. P., Santorini B., Marcinkiewicz M. A. (1993). Building a Large Annotated Corpus of English: The Penn Treebank / Computational Linguistics, Vol. 19, Iss. 2 // https://aclanthology.org/J93-2004/

2113

BNC Consortium (2007). The British National Corpus, XML Edition. Oxford Text Archive // http://hdl.handle.net/20.500.12024/2554

2114

Burnard L. (2007). Reference Guide for the British National Corpus (XML Edition) // http://www.natcorp.ox.ac.uk/XMLedition/URG/

2115

BNC Consortium (2001). The British National Corpus, version 2 (BNC World) // http://www.natcorp.ox.ac.uk/

2116

Burnard L. (2000). The British National Corpus Users Reference Guide // http://www.natcorp.ox.ac.uk/docs/userManual/

Интересно, что команда Бенджио использовала случайную инициализацию векторов признаков на старте обучения сети. Авторы работы предположили, что инициализация, основанная на некоторых априорных знаниях о языке, может улучшить результаты. Эта мысль несколько раз повторяется в тексте статьи, причём приводятся даже конкретные идеи по поводу возможных источников такой информации (например, данные из базы WordNet, грамматические признаки и т. д.). Однако авторы работы не пробовали использовать значения векторов, полученные в эксперименте с корпусом Брауна, как стартовые значения для эксперимента с корпусом APNews, то есть идея создания универсальных словарных эмбеддингов для решения широкого спектра задач в области обработки естественного языка на тот момент ещё не овладела умами исследователей.

6.3.3.3 Революция word2vec

Во второй половине 2000-х — начале 2010-х гг. под влиянием работ Бенджио и его коллег был опубликован ряд работ, в которых авторы предлагали различные системы построения универсальных словарных эмбеддингов для решения задач машинного обучения с частичным привлечением учителя [semi-supervised learning] в области обработки естественного языка.

Идея о том, что семантическую информацию о слове можно получить без привлечения учителя, на основе анализа больших неразмеченных наборов текстов, берёт своё начало ещё в XX в. На заре 1950-х гг. благодаря усилиям американского лингвиста Зеллига Харриса, уже упоминавшегося нами в качестве одного из учителей Хомского, приобрела популярность так называемая дистрибутивная гипотеза, которая сегодня обычно формулируется следующим образом: лингвистические единицы, встречающиеся в сходных контекстах, имеют близкие значения. Проще говоря, слова, которые используются и встречаются в одинаковых контекстах, как правило, имеют близкие значения [2117] . В общем, Харрис, как можно заметить, вовсе не был активным противником корпусной лингвистики [2118] , в отличие от Хомского, который считал её пустой тратой времени [2119] . Фактически гипотеза Харриса стала развитием идеи, высказанной в афористичной форме другим лингвистом — англичанином Джоном Фёрсом: «Слово характеризуется компанией, в которой оно встречается» [a word is characterized by the company it keeps] [2120] . В общем, в отношении слов, как и в отношении людей, в какой-то мере верна поговорка: «Скажи мне, кто твои друзья, и я скажу, кто ты». Возможно, Фёрс и не был первым мыслителем, высказавшим эту идею. Ещё в 1930-е гг. сходные суждения высказывал австрийский философ и логик Людвиг Витгенштейн [2121] . Задолго до появления нейронных сетей лингвисты применяли метод дистрибутивного анализа, изучая распределения слов и символов в текстах, и даже (с середины XX в.) описывали семантику слов в виде контекстных векторов, в которых тому или иному смысловому признаку приписывались некоторые численные оценки. Возникла и развивалась целая область лингвистики, получившая название «дистрибутивная семантика». Её предметом стал анализ семантики элементов языка на основании их распределения в больших массивах лингвистических данных. Появление вычислительной техники, а затем и больших корпусов оцифрованных текстов вывело дистрибутивную семантику на новый уровень — позволило производить эксперименты и проверять гипотезы без использования трудоёмких ручных операций. Исследователями дистрибутивной семантики был разработан ряд инструментов, предназначенных для анализа больших корпусов текстов. Наиболее популярным из них стал Sketch Engine. Эта система была разработана компанией Lexical Computing Limited, созданной в результате сотрудничества лингвиста Адама Килгарриффа и Павла Рыхлого — специалиста в области информатики из Центра обработки естественного языка в Университете Масарика (Masaryk University). Sketch Engine позволяет среди прочего автоматически находить слова со сходной статистикой контекстов (формировать так называемый дистрибутивный тезаурус) [2122] . Корпусными лингвистами были разработаны различные метрики для оценки близости значений слов и математические модели, предназначенные для получения нового знания о языке, позволявшие подтверждать или опровергать различные гипотезы при помощи статистических методов. Появление таких инструментов, как Sketch Engine, позволило лингвистам осуществлять массовую проверку различных гипотез, анализировать происходящие в языке диахронические [2123] изменения, предоставило лексикографам возможность быстрой проверки соответствия словарных определений реальной практике употребления слов.

2117

Harris Z. (1954). Distributional structure / Word, Vol. 10, Iss. 23, pp. 146—162 // https://doi.org/10.1080/00437956.1954.11659520

2118

* Корпусная лингвистика — раздел языкознания, занимающийся разработкой, созданием и использованием текстовых корпусов.

2119

Wallis S. (2016). Why Chomsky was Wrong About Corpus Linguistics / corp.ling.stats: statistics for corpus linguists, November 2, 2016 // https://corplingstats.wordpress.com/2016/11/02/why-chomsky-was-wrong/

2120

Firth J. R. (1957). A synopsis of linguistic theory 1930-1955 // https://books.google.ru/books?id=T8LDtgAACAAJ

2121

Maruyama Y. (2019). Quantum Physics and Cognitive Science from a Wittgensteinian Perspective: Bohr’s Classicism, Chomsky’s Universalism, and Bell’s Contextualism / Wuppuluri S., da Costa N. (2019). WITTGENSTEINIAN (adj.). The Frontiers Collection. Springer, Cham // https://doi.org/10.1007/978-3-030-27569-3_20

2122

Kilgarriff A., Baisa V., Busta J., Jakubicek M., Kovar V., Michelfeit J., Rychly P., Suchomel V. (2014). The Sketch Engine: ten years on / Lexicography, Vol. 1, Iss. 1, pp. 7–36 // https://doi.org/10.1007/s40607-014-0009-9

2123

* Диахрония (от греч. ??? — через, сквозь и ?????? — время) — рассмотрение исторического развития языковых явлений и языковой системы как предмета лингвистического исследования. Противопоставляется синхронии (от греч. ??? — совместно и ?????? — время) — рассмотрение состояния языка как установившейся системы в определённый момент времени.

Дело оставалось за малым — придумать такой алгоритм, который мог бы проанализировать контексты, в которых каждое слово встречается в огромном текстовом корпусе, и построить для каждого слова некий семантический вектор, который содержал бы в себе всю необходимую смысловую информацию. Опираясь на такое представление, модели машинного обучения (например, нейронные сети) могли бы эффективно решать различные задачи, требующие понимания естественного языка.

В начале XXI в. был опубликован ряд работ, посвящённых попыткам создания подобного алгоритма.

Поделиться с друзьями: