Подход к универсальному пониманию языка

Я изучаю вложения слов и предложений уже больше года и недавно написал также свою магистерскую диссертацию [1] в этой области. Результаты, которые я представляю сейчас, также были опубликованы здесь и стали результатом сотрудничества с SAP и Университетом Лихтенштейна. В следующем сообщении блога я не буду подробно объяснять встраивание. Эта статья носит скорее концептуальный характер и резюмирует мои выводы.

Фонд

Вектор слова - это позиция в многомерном пространстве, которая семантически представляет соответствующее слово. В этом пространстве слова, имеющие похожие значения, расположены ближе друг к другу. Следовательно, синонимы имеют почти одинаковый вектор и расположены близко друг к другу.

Та же концепция может быть применена к предложениям, тогда как похожие предложения лежат близко друг к другу в многомерном пространстве.

Для создания векторов слов существует несколько методов. Два очень распространенных алгоритма - это Word2Vec [2] и GloVe [3]. Оба кодируют слова в произвольную размерность на основе контекстов, в которых эти слова встречаются. Для Word2Vec контекст - это окно окружающих слов. Для GloVe это целое предложение или документ.

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

Программа внедрения одного предложения от Facebook Research, которая называется InferSent [2], использует GloVe и, следовательно, также игнорирует омографы. Использование этого невежественного метода также привносит неправильные знания в векторы предложений. Поэтому мы создали новый подход к решению этой проблемы.

Предложение

Вместо использования невежественных и уже обученных векторов GloVe мы предлагаем использовать тематические векторы слов, которые могут различать омографы. Мы ориентировали нашу работу на статью «Актуальные вложения слов» [3], но немного изменили их подход.

Векторы слов с учетом темы создаются с помощью Word2Vec. Но перед тем, как Word2Vec запускает обучающий корпус, мы модифицировали его, используя программу моделирования тем LDA [4] с выборкой Гиббса.

LDA используется для кластеризации документов по заданному количеству тем на основе слов, встречающихся в документах. Приятным побочным эффектом является то, что LDA назначает темы не только целым документам, но и всем отдельным словам, которые затем используются для различения тем документов. В следующем примере показано, как будет выглядеть корпус после того, как LDA пробежится по нему.

Таким образом, у нас больше не обычные слова, а новые псевдослова, включающие также тему, например яблоко: 1 с идентификатором 1 для темы «фрукты». Эти новые слова затем действуют как наши данные, из которых мы создаем векторы слов. Следовательно, для каждой версии apple - apple: 1, apple: 2,… - у нас есть собственный вектор вместо одного.

У нас было два разных способа создания векторов слов из вышеупомянутых псевдословов ...

Целостные вложения слов

Этот способ создания векторов тематических слов просто рассматривает псевдослова как целые слова, которые не относятся к другим псевдословам с тем же словом, например Яблоко: 1 и яблоко: 2 не имеют ничего общего. Это самый простой и самый быстрый способ реализовать, поскольку большинство библиотек Word2Vec просто берут этот преобразованный текст и изучают векторы слов для каждого слова (здесь для каждого псевдослова).

Конкатенированные вложения слов

Другой способ - объединение двух векторов, слова и вектора темы, для создания векторов тематических слов. Векторы слов изучаются через Word2Vec в исходном недифференцированном наборе данных. Тем не менее, тематические векторы требуют более сложной процедуры. Все предлагаемые нами способы описаны в [1]. Наиболее многообещающим было использование взвешенного среднего (также называемого подходом Phi).

Подход взвешенного среднего берет векторы всех слов в словаре и усредняет их, чтобы сгенерировать векторы темы (добавленная часть векторов). Перед усреднением каждый вектор слов взвешивается с числом, касающимся важности этого слова для соответствующей темы. Это число представляет собой значение от 0 до 1. Для одной темы все суммированные числа важности равны приблизительно 1. Эти числа на самом деле являются вероятностями p (w | t), показывающими, насколько вероятно слово упоминается в тема. Они рассчитываются при обучении LDA.

Пример. Представьте себе корпус со словарем {«яблоко», «пирог», «компьютер»}, темами {«фрукты», «технология»}, векторами обученных слов {«яблоко»: [1, 0, 0] , «Пирог»: [0, 1, 0], «компьютер»: [0, 0, 1]} и вероятности {«фрукты»: [0,5, 0,5, 0,0], «технология»: [0,5, 0,0, 0,5]}. Векторы тем рассчитываются следующим образом. v («фрукты») = v («яблоко») * 0,5 + v («пирог») * 0,5 + v («компьютер») * 0,0 = [0,5, 0,5, 0,0]. v («технология») = v («яблоко») * 0,5 + v («пирог») * 0,0 + v («компьютер») * 0,5 = [0,5, 0,0, 0,5]. Таким образом, вектор для слова «яблоко» в теме «фрукты» равен [1,0, 0,0, 0,0, 0,5, 0,5, 0,0], а в теме «технологии» - [1,0, 0,0, 0,0, 0,5, 0,0, 0,5. ], тогда как базовый вектор для яблока объединен с тематическими векторами для «фруктов» и «технологий» соответственно.

Эксперименты

Чтобы иметь справедливое сравнение актуальных и неактуальных версий метода InferSent, мы создали базовую модель, которая представляет собой модель InferSent, которая использует вложения слов Word2Vec, созданные нами на тех же данных, что и вложения тематических слов. Затем актуальная версия InferSent, которая использует эти тематические векторы слов в качестве основы, сравнивалась с базовой моделью. Это гарантирует, что многие другие неопределенности будут устранены до начала экспериментов.

Следующие результаты были получены как для базовой, так и для актуальной модели:

Как видно из первой таблицы, базовая модель явно лучше при наличии задач корреляции (синий фон). Но для задач классификации тематически дифференцированные версии показывают преимущество. В 7 из 9 классификационных задач наши актуальные версии превысили базовый уровень. Это убедительно свидетельствует о том, что тематическая дифференциация действительно улучшает выполнение задач классификации.

Кроме того, мы расширили модель GloVe из оригинального InferSent, добавив тематическую часть к его векторам слов, и даже смогли превзойти современные результаты:

Несмотря на то, что расширенные модели (1hot и Phi) берут тематические векторы, обученные с меньшими наборами данных из первой таблицы, в сочетании с предварительно обученными векторами GloVe, они могут достичь лучших результатов, чем исходная модель InferSent от Facebook для некоторых задач.

Заключение

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

Во время работы над этим проектом было опубликовано несколько технологий, таких как ELMo [5] и BERT [6], которые могут создавать контекстные представления слов. Это также свидетельствует о необходимости контекста для правильного понимания текста.

использованная литература

[1] Вениг, П. (2018). Создание вложений предложений на основе представлений актуальных слов. Https://doi.org/10.13140/rg.2.2.10288.00007

[2] Миколов, Т., Чен, К., Коррадо, Г., и Дин, Дж. (2013). Эффективное оценивание представлений слов в векторном пространстве. ArXiv: 1301.3781 [Cs]. Получено с http://arxiv.org/abs/1301.3781

[3] Пеннингтон, Дж., Сочер, Р., и Мэннинг, К. Д. (2014). GloVe: глобальные векторы для представления слов. В Эмпирических методах обработки естественного языка (EMNLP) (стр. 1532–1543). Взято с http://www.aclweb.org/anthology/D14-1162.

[4] Conneau, A., Kiela, D., Schwenk, H., Barrault, L., & Bordes, A. (2017). Обучение с учителем универсальных представлений предложений на основе данных логического вывода на естественном языке. Препринт arXiv arXiv: 1705.02364. Источник https://arxiv.org/abs/1705.02364

[5] Лю Ю., Лю З., Чуа Т.-С. и Сунь М. (2015). Актуальные вложения слов. В AAAI (стр. 2418–2424). Получено с http://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/download/9314/9535

[6] Блей, Д. М., Нг, А. Ю., и Джордан, М. И. (2003). Скрытое размещение Дирихле.

[7] Питерс, М. Э., Нойман, М., Айер, М., Гарднер, М., Кларк, К., Ли, К., и Зеттлемойер, Л. (2018). Глубокие контекстные представления слов. ArXiv: 1802.05365 [Cs]. Получено с http://arxiv.org/abs/1802.05365

[8] Девлин, Дж., Чанг, М.-В., Ли, К., и Тутанова, К. (2018). BERT: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка. ArXiv: 1810.04805 [Cs]. Получено с http://arxiv.org/abs/1810.04805