Опубликован: 30.05.2023 | Доступ: свободный | Студентов: 861 / 273 | Длительность: 16:08:00
Лекция 3:

Эволюция ИИ в процессе решения практических задач

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

Работы по созданию машинного перевода велись и в СССР. В 1956 г. в Институте точной механики и вычислительной техники был представлен первый советский компьютерный переводчик, включавший словарь из 2300 слов. В 1972 году специалисты института "Информэлектро" начали разработку системы машинного перевода - ЭТАП (Электротехнический автоматический перевод). В 1991 году бывшие сотрудники лаборатории ЛГПИ им. Герцена основали компанию PROMT.

Примерно в 80-х годах (см. рис. 2.20) появился машинный перевод на основе примеров (Example Based Machine Translation EBMT) - это метод машинного перевода, в котором в качестве основы используются параллельные тексты (двуязычные корпуса), составленные по принципу "фраза к фразе". Метод повысил доступность машинного перевода, позволяя применять в переводе сложные языковые правила, которые уже встроены в используемые фразы.

Следующий важный шаг в развитии машинного перевода - это статистический машинный перевод (SMT - Statistical Machine Translation). Появление статистических методов в NLP произошло именно в области машинного перевода за счет появления к тому времени больших корпусов двуязычных текстов.

В 1990 году компания IBM впервые осуществила статистический машинный перевод. В отличие от своих предшественников - систем перевода на основе правил, статистические системы машинного перевода самостоятельно извлекают эти правила из большого количества примеров перевода - из так называемых параллельных текстов (текст на исходном языке и его перевод на целевой язык). К этому времени (начало 90-х) как раз стали доступны большие корпуса двуязычных текстов. Машине потребовались миллионы предложений на двух языках, чтобы набрать статистику по каждому слову. Просмотрев большое количество текстов, машина составляет словарь вероятностей перевода, основываясь на обучающей коллекции текстов. В самом общем плане суть статистического перевода состоит в том, что машина выбирает наиболее вероятные переводы каждого отдельного слова с учетом контекста и строит из них предложения. Предположим, необходимо перевести предложение "в комнате стоит красный стул", а в статистической базе уже есть переведенная фраза "в комнате стоит зеленый стол" - решение элементарно: берется существующий шаблон перевода и нужные слова просто заменяются по словарю.

Статистический машинный перевод26Для обозначения термина часто используется аббревиатура SMT (Statistical machine translation) часто противопоставляют алгоритмам перевода, основанным на правилах. В случае статистического машинного перевода система ничего не знает о лингвистических правилах - перевод генерируется на основе статистических моделей, параметры которых являются производными от анализа двуязычных корпусов текста.

Статистический машинный перевод, так же как и RBMT, прошел три стадии: перевод "на словах", на основе фраз и так называемый синтаксический перевод.

Создание статистического машинного перевода совпало с развитием Интернета, и ряд компаний, включая разработчика Systran, начали предлагать бесплатный машинный перевод онлайн. В 2006 году компания Google запустила Google Translate, который, несмотря на ограниченную в то время точность перевода, стал пользоваться большой популярностью.

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

Они также одними из первых предложили технологию эмбеддингов слов. Технологию, о которой следует сказать чуть подробнее.

Эмбеддинги слов

Для решения многих задач NLP нейронная сеть должна понимать сходство между словами. Cлова, находящиеся в похожих контекстах, обычно обозначают близкие по значению понятия27Заметим, что эмбеддинги можно строить не только по словам. Например, можно по символам. Тогда они будут отражать частоты употребления разных сочетаний символов друг с другом, но здесь уже нельзя будет просматривать аналогию с характеристиками объектов (живой, королевский, вкусный, цветной и т. д.). - Примечание научного редактора..

С каждым словом у людей возникают близкие ассоциации. Например, говоря об облаке, каждый может продолжить "облако - грозовое" или "облако кучевое". То есть мы можем предположить, какое слово может соседствовать со словом "облако". Вероятно, можно численно закодировать это наше знание - сопоставить словам числа так, чтобы близкие слова имели близость на числовой прямой. Очевидно, что пространство смыслов многомерно, и мы можем взять несколько признаков и сравнить по ним слова. Например, по "принадлежности к живому" слова "котенок" и "кошка" должны быть ближе, чем "кошка" и "дом". Покажем, как можно сравнить слова, выбрав несколько параметров, по которым они сравниваются (рис. 2.22).

 Схема, поясняющая термин "Эмбеддинги слов". Источник: [81]

Рис. 2.22. Схема, поясняющая термин "Эмбеддинги слов". Источник: [81]

Как видно из рисунка, семантическое значение слова можно представить набором параметров или вектором. Слову сопоставляются векторы, отображающие его значение в "пространстве смыслов". Векторы, которые позволяют представить семантическую близость слов, назвали эмбеддингами. Если каждому слову предоставить в соответствие вектор (набор из N чисел), то расстояние между точками, на которые указывают эти векторы в N-мерном пространстве, и будет мерой близости этих слов. Значения компонент векторов определяют в процессе обучения. Процесс обучения приводит к объединению векторов в N-мерном пространстве в кластеры по семантической близости слов.

Математически задача определения такого вектора формулируется как максимизация косинусной близости между векторами слов, которые появляются в близких контекстах, и минимизация косинусной близости между векторами слов, которые не появляются друг рядом с другом. Рядом друг с другом в данном случае, значит, в близких контекстах. Если угол между двумя векторами равен 0, то они сонаправлены и значение cos(0)=1, если векторы ортогональны, то косинусная близость нулевая (cos(pi/2) = 0), а если противоположно направлены, то cos(pi) = -1.