Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
6.3.3.4 Наследники word2vec. Концепция «внимания»
Успехи в обуздании семантики означали неминуемый прогресс в самых разных областях обработки естественного языка: в определении семантической близости слов, обнаружении синонимов, категоризации понятий, создании диалоговых моделей, машинном переводе, сентимент-анализе и интент-анализе (определении смысла высказываний), оценке похожести стилей текстов и так далее [2141], [2142], [2143].
Вслед за word2vec Миколова и его коллег на свет появилось множество альтернативных векторных моделей: GloVe [2144], fastText [2145], ELMo [2146], Indra [2147] и так далее. Аналогичные подходы стали практиковаться в смежных областях, например в биоинформатике, где появились векторные представления для элементов биологических последовательностей, такие как ProtVec [2148], BioVec, GeneVec [2149], Mol2vec [2150], SPVec [2151].
Появление инструментов для построения эффективных словарных эмбеддингов, подобных word2vec, ознаменовало собой начало первой коннекционистской революции в обработке естественного языка и сформировало «лицо» моделей, использовавшихся в этой области в середине 2010-х гг. Типичным инструментом в эти годы стали рекуррентные сети (обычно LSTM), получавшие на вход последовательности векторов, соответствовавших словам текста. Иногда эти векторы обогащались путём добавления дополнительных компонент. Например, если слово содержится в некотором специальном списке (допустим, в перечне фамилий или имён людей, в словаре русского мата и т. д.), то дополнительная компонента вектора может принимать значение, равное 1, а в противном случае — значение 0. Для числительных можно в качестве дополнительной компоненты вектора использовать соответствующее числовое значение; например, для слова «первый» оно будет равно 1, для слова «семидесятый» — 70 и так далее.
Можно также использовать две разные таблицы векторов. Первую — построенную на огромном неспециализированном корпусе текстов, а вторую — построенную на небольшом корпусе текстов, имеющих непосредственное отношение к решаемой задаче (например, на текстах обращений клиентов в компанию и т. д.). Затем эти векторы можно сцеплять и, используя полученную комбинацию для эмбеддинга, создавать нейросеть для конкретной задачи. В мире и по сей день эксплуатируется множество систем, основанных на данном подходе.
Векторные представления слов можно рассматривать как своеобразные «облака» слов в многомерном пространстве, размерность которого равна размерности используемых векторов. Это чрезвычайно удобно, поскольку в арсенале математики в целом и теории алгоритмов в частности существует множество методов обработки данных, представленных в таком виде, начиная от кластеризации и заканчивая быстрым поиском, на базе индексов, основанных на разбиении пространства множеством гиперплоскостей. Векторные представления слов позволяют создавать модели, работающие с мультимодальными данными, например с изображениями, снабжёнными подписями. Такие модели могут, например, изобретать подписи к изображениям или оценивать степень соответствия подписи и изображения. Вслед за векторами для отдельных слов стали появляться модели, способные построить векторные представления предложений (sentence2vec), абзацев (paragraph2vec) и даже целых документов (doc2vec) [2152]. Такие модели оказались весьма полезными в задачах поиска информации, классификации, перефразировки и реферирования текстов.
Обладая некоторой толикой фантазии, можно провести аналогию между векторными представлениями слов или их последовательностей с картами активации нейронов в человеческом мозге. Нейрофизиологические ассоциации нередко посещали исследователей в области глубокого обучения. Важным плодом этих бионических исканий стало появление такого важного механизма в нейросетевых моделях, как «внимание» [attention].
Концепция внимания — одна из идей, оказавших существенное влияние на развитие глубокого обучения во второй половине 2010-х гг. Несмотря на то что этот механизм в настоящее время используется в самых разных задачах, изначально он был разработан в контексте нейросетевого машинного перевода, основанного на seq2seq-моделях.
Модели seq2seq обычно основаны на архитектуре «кодировщик — декодер» [encoder-decoder], в которой часть модели, называемая кодировщиком, обработав входную последовательность, формирует вектор контекста [context vector] (также называемый иногда вектором мысли [thought vector]), имеющий фиксированную длину. Ожидается, что это представление будет своеобразной выжимкой, обобщением для всей входной последовательности. Затем другая часть модели, называемая декодером, получив на вход вектор контекста, начинает генерировать выходную последовательность. Распространён приём использования рекуррентных сетей в качестве кодировщика и декодера, что позволяет модели работать с последовательностями переменной длины. При этом источник потенциальной проблемы заключается в том, что размер вектора контекста — фиксированный, и если он окажется недостаточным, то при работе с длинными последовательностями часть информации будет теряться. Напротив, при слишком большом векторе контекста число параметров модели может оказаться избыточным и она будет склонна к переобучению. К счастью, разброс предложений естественного языка по длине не так уж велик, что делает идею с рекуррентными кодировщиком и декодером жизнеспособной. В 2013 г. свет увидела статья двух исследователей из Оксфорда — Нала Калчбреннера и Фила Блансома — под названием «Рекуррентные непрерывные модели перевода» (Recurrent Continuous Translation Models) [2153]. В ней впервые в задаче машинного перевода была использована архитектура «кодировщик — декодер», однако в качестве кодировщика использовалась свёрточная нейронная сеть над векторами представлений слов, которые, в свою очередь, были продуктами модели RNNLM. Полностью рекуррентный кодировщик был представлен в работе 2014 г., выполненной группой аспирантов под руководством Бенджио. В том же году на ежегодной конференции NIPS (Conference on Neural Information Processing Systems, Конференция по нейросетевым системам обработки информации) команда исследователей из Google, в составе уже знакомого нам Ильи Суцкевера, Ориола Виньялса и Куока Ле, представила систему машинного перевода, основанную на модели seq2seq, в которой роли кодировщика и декодера выполняли упомянутые ранее сети с долгой краткосрочной памятью (LSTM-сети) [2154].
Очевидным недостатком моделей, использующих вектор контекста фиксированной длины, является их неспособность запоминать более длинные последовательности. Часто модель «забывает» ранние части последовательности по мере её обработки. Именно для решения этой проблемы было предложено использовать механизм внимания.
Процессы, основанные на внимании, были неплохо изучены в рамках нейробиологии, в том числе вычислительной. Наиболее глубоко изученным аспектом является зрительное внимание: многие живые существа сосредотачиваются на определённых частях своих визуальных полей восприятия, чтобы среагировать на стимул должным образом. Принцип внимания в моделях машинного обучения сводится к тому, чтобы выбрать из большого набора входных данных лишь те, которые действительно необходимы для вычисления ответа модели.
Похожие книги на "Охота на электроовец. Большая книга искусственного интеллекта", Марков Сергей Николаевич
Марков Сергей Николаевич читать все книги автора по порядку
Марков Сергей Николаевич - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.