Латентная семантическая модель

Каким образом латентная семантическая модель улучшает системы машинного перевода? Обучение по слаборазмеченным данным – что это? Обучение по слаборазмеченным данным в контексте Big Data.

Ответы на эти вопросы приведены в видео Дмитрия Ветрова. Ниже мой конспект этого видео.

В 2013 году инженеры корпорации Google опубликовали ряд статей по новой модели для решения достаточно изученной задачи – прогнозирования слова по его контексту в тексте. Задача хорошо изучена, для нее существует ряд стандартных методов, но публикации инженеров Google отличались двумя особенностями:

  • Во-первых, для решения подобной задачи они использовали глубинные нейронные сети;
  • Во-вторых, в качестве обучающей информации они использовали огромный корпус текстов, сопоставимых с объемом англоязычной Википедией.

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

Например:

Допустим, рассмотрим представление слова «Путин» и вычтем из него представление слова «Россия» – вычтем, в данном случае, понимается в простейшем школьном арифметическом смысле, то есть из 250-мерного вектора отвечающего за представление слова «Путин» мы вычитаем такой же 250-мерный вектор, отвечающий за слово «Россия». И к разности добавим 250-мерное представление слова «Америка». Мы получим некоторую новую точку в 250-мерном пространстве. Если мы рассмотрим ближайшую к ней точку, которая отвечает какому-то из слов естественного языка, можно предугадать, что ближайшей окажется точка, отвечающая за слово «Обама». То есть:

Путин – (минус) Россия + Америка = Обама

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

Модель инженеров Google имела один серьезный недостаток: она предполагала, что каждому слову соответствует одна точка в семантическом пространстве. Для задачи прогнозирования слова по контексту этого было достаточно, но если представить, что эта точка в семантическом пространстве отвечает какому-то смыслу, возникает естественная идея: моделировать точками семантического пространства не слова, а их смыслы.

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

Результаты оказались интересными. Например, для английского слова «банк», казалось бы, существуют два ярко выраженных смысла: «банк как побережье» и банк как, собственно, банк. Тем не менее, когда мы запустили нашу латентно-семантическую модель на достаточно большом корпусе текстов в режиме автоопределения количества смыслов для каждого слова, то компьютер, неожиданно для нас, нашел пять смыслов этого слова.

Первое значение значилось «банк как побережье», остальные четыре смысла имели значение слова «банк как банк», но были при этом некоторые различия:

  • Один смысл отвечал значению «банк как здание»;
  • Другой смысл этого слова отвечал «банк, как место работы»;
  • Третий смысл слова банк отвечал «банк как место, которое выдает деньги или которое принимает вклады»;
  • Четвертый смысл слова «банк отвечал финансовому институту, элементу финансовой системы государства».

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

Наша латентно-семантическая модель является примером нового тренда, который появился в машинном обучении, так называемого обучении по слаборазмеченным данным.

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

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

В то же время, на практике для многих задач мы можем набрать достаточно большое количество объектов, для которых мы не знаем точное значение скрытых переменных, но знаем множество возможных значений.

Можем ли мы использовать такую выборку объектов, для которых наблюдаемые компоненты известны, а для скрытых – компоненты известны под множество возможных значений?

Можно ли использовать такую выборку как обучающую, и при этом запустить классический алгоритм машинного обучения?

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

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

Тем самым, скрытая переменная жестко ограничена, но конкретное значение скрытого компонента нам не известно.

Таким образом, эту задачу можно рассматривать как обучение по слаборазмеченным данным, а также применить байесовский подход, который обобщает общие стандарты машинного обучения. Такого рода задачи сейчас актуальны для анализа больших данных – Big Data.