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

Все написанное здесь - основа и абсолютная истина, закрытая пониманием автора.

Почему мы хотим это сделать?

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

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

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

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

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

Почему это сложно?

Что ж, это сложно, потому что мы хотим связать два представления одной точки данных, которые принадлежат очень разным пространствам.

Человеческий мозг очень хорошо умеет говорить, что эту картину можно описать фразой «плюшевый мишка в раковине с водой и мылом и резиновая утка».

Но для компьютера эта задача сводится к тому, чтобы сказать, что большая таблица чисел, лежащая в

как-то «близко» к последовательности целых чисел, индексирующей слова в словаре.

Как связать изображения с их описанием

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

  • Flickr8K: 8000 изображений, каждое из которых сопровождается 5 предложениями, описывающими содержание изображения,
  • Flickr30K: 31 783 изображения, каждое из которых сопровождается 5 предложениями, описывающими содержание изображения,
  • MS-COCO: 82 783 обучающих изображения и 40 504 проверочных изображения, каждое из которых сопровождается 5 предложениями.

Поиск информации

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

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

Линейное отображение между предварительно изученными вложениями

Предположим, вы научились представлять предложения в «низкоразмерном» пространстве, например, положение предложения в этом пространстве кодирует некоторую высокоуровневую информацию. Это пространство обеспечивает встраивание предложений фиксированного размера. Есть несколько способов встроить предложение:

  • Огромный вектор размером со словарный запас, содержащий количество слов,
  • Еще один огромный вектор размером со словарный запас, содержащий коэффициент TF-ID,
  • Если мы объединим каждое слово в пару с вложением (например, Word2Vec), сумма всех вложений в предложении,
  • Выученная комбинация вложений слов.

Мы сосредотачиваемся на последнем пункте. Векторы пропуска мыслей (STV) [Kiros et al., векторы пропуска мыслей] - эффективный способ научиться эффективному способу комбинирования слов в предложении. В отличие от трех основных пунктов, алгоритм STV не делает предположение о сумке слов: порядок слов имеет значение. Интуитивно понятно, что предложения, имеющие одинаковое значение, имеют очень похожее представление.

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

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

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

Обратите внимание, что до сих пор мы не использовали какой-либо выровненный корпус для изучения отношений между изображениями и текстами. Мы используем огромное количество изображений, чтобы изучить представление изображения, и огромное количество предложений, чтобы изучить представление предложения, без каких-либо кросс-модальных знаний. При этом мы используем следующую идею: если и наши изображения, и предложения являются сильными и действительно способны кодировать высокоуровневую информацию, нетрудно отобразить эти два пространства в третье, мультимодальное. Именно это и сделали авторы [Kiros et al., Skip-Think Vector]:

  • Каждое изображение из набора данных MS-COCO представляется на входе предварительно обученной ConvNet, что дает вектор

  • Каждое предложение из набора данных MS-COCO представляется на входе предварительно обученного кодировщика пропуска мыслей, в результате чего получается вектор

  • Затем мы изучаем два простых линейных отображения, следуя этой целевой функции:

где U и V - единственные параметры нашего мультимодального сопоставления, которые просто узнаются путем обратного распространения ошибки. Ux и Vy - представления изображения и текста в мультимодальном пространстве. Оценка сходства между изображением и текстом рассчитывается с помощью скалярного произведения.

Благодаря тому, что у нас есть очень высококачественные отдельные вложения x и y для изображения и текста, можно получить впечатляющие полученные результаты. Вот таблица из оригинальной статьи Skip-think vectors, авторы которой представляют свои результаты поиска информации на MS-COCO.

R @ K: доля случаев, когда правильная полученная точка зрения попадает в топ K по шкале схожести системы.

Представления с пропуском мыслей - это три основные строки (uni-skip, bi-skip и comb-skip - три варианта модели STV). Хотя оценка STV не самая лучшая, следует иметь в виду, что мультимодальная информация используется только для обучения двух линейных отображений. Другие алгоритмы, которые превосходят STV, намного сложнее, и взаимодействие между модальностями изображения и текста моделируется. Давайте рассмотрим одну из этих моделей, которая является более сложной и лучше работает при поиске информации (поскольку, в отличие от модели с пропуском мыслей, она была разработана для этой задачи).

Мультимодальный CNN

Модель представлена ​​в [Ma, L. et al., Мультимодальные сверточные нейронные сети для сопоставления изображения и предложения].

Идея, лежащая в основе этой модели, заключается в следующем: мы хотим сопоставить глобальное представление изображения (обычно заданное выходными данными CNN) с локальными фрагментами предложения, связанного с ним. Архитектура трехступенчатая:

  • Image-CNN: берет необработанные пиксели входного изображения и обеспечивает высококачественное встраивание.
  • Соответствие CNN: принимает вложение изображения и объединяет его с представлением предложения. Это слияние может осуществляться на уровне слова, на уровне фразы, на уровне предложения и дает вектор, содержащий информацию об объединенном изображении / предложении.
  • Счетчик: многослойный перцептрон, дающий совпадающий счет.

Затем мы обучаем нашу модель так, чтобы она увеличивала количество совпадающих пар и сводила к минимуму количество несовпадающих.

Включение представления изображения в текстовое через сопоставление CNN выполняется посредством самой операции свертки, как показано здесь.

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

  1. Изображение объединено на первом слое (на уровне слов)

2. Изображение слито на втором слое (уровень коротких фраз).

3. Изображение объединено на третьем уровне (уровень длинных фраз).

4. Изображение объединено на уровне вывода (уровень предложения).

CNN изображений предварительно обучается в ImageNet, а вложения слов инициализируются с помощью Word2Vec. Все веса настраиваются во время тренировки.

Насколько нам известно, эта модель в настоящее время демонстрирует самые современные характеристики на Flickr30K и MS-COCO. Конечно, он не очень хорошо работает на Flickr8K, потому что этот набор данных слишком мал для адекватной настройки параметров m-CNN.

Чтобы завершить эту задачу по поиску информации:

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

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

Автоматические субтитры

Задача выборки предложения

учитывая изображение

может вписаться в рамки условных языковых моделей. Мы изучаем параметрическую модель распределения вероятностей:

из которого мы делаем выборку при выводе.

Мы представляем модель, предложенную в [Виньялс и др., Покажи и расскажи: генератор заголовков нейронных изображений], который пытается отобрать предложение на основе представления изображения.

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

Как мы видим здесь, мы вычисляем представление изображения с предварительно обученной CNN и используем это представление в качестве первого входа LSTM. Затем мы вычисляем распределение вероятностей Pt на каждом временном шаге, которое можно рассматривать как вектор, содержащий

размеры, а каждая координата j представляет вероятность наличия слова

в этой позиции t предложения.

Во время обучения мы минимизируем следующую функцию стоимости

с использованием стохастического градиентного спуска на весах LSTM.

Во время тестирования мы представляем представление изображения на первом временном шаге LSTM. Оттуда мы можем либо выбрать из дистрибутива

или ищите максимум этой условной вероятности.

  • Выборка: на каждом временном шаге LSTM выводит распределение, из которого мы можем выполнить выборку. Слово, выбранное на временном шаге t, используется в качестве входных данных для временного шага t + 1, пока мы не выберем специальный ‹end_of_sequence› токен, либо достигнет максимальной разрешенной длины.
  • Максимальный поиск: поиск с помощью луча можно использовать для получения приблизительного значения предложения S *, которое максимизирует

Если для обучения и тестирования моделей с автоматическими субтитрами можно использовать те же наборы данных, что и для мультимодального поиска информации, метрики для оценки модели должны быть разными. Широко используемым критерием для оценки моделей автоматических субтитров является оценка BLEU [Папинени и др. , BLEU: метод автоматической оценки машинного перевода].

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

Вот несколько заголовков, созданных моделью после обучения на наборе данных MS-COCO.

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

  • является правильным предложением на английском языке (поскольку мы изучаем языковую модель),
  • и это правильное английское предложение не ЛЮБОЕ предложение, а предложение, описывающее изображение.

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

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

Эти два момента представляют собой проблему, потому что мы можем захотеть изучить модель, которая может фокусироваться на определенной зоне изображения при выборке определенных слов. Например, если мы хотим пробовать предложение

«Группа молодых людей, играющих во фрисби»

Было бы полезно иметь модель, которая каким-то образом обращает внимание на область изображения, содержащую фрисби, когда она пытается пробовать слово «фрисби». Это осуществляется с помощью механизмов внимания и представлено в контексте автоматической подписи в [Xu et al., Show, Attend and Tell: Neural Image Caption Generation with Visual Attention]. В следующих примерах мы можем увидеть, на что модель обратила внимание при попытке взять образец подчеркнутого слова.

Заключение

Наконец, есть некоторые вещи, о которых нам нужно помнить при работе с мультимодальными данными. Мы можем «легко» представить изображения и предложения в общем мультимодальном пространстве, если у нас уже есть хорошие унимодальные вложения. Это дает довольно хорошие результаты, и это мультимодальное встраивание можно использовать для многих задач. Но такого рода вложения не позволят нам выбрать описание для изображения.

Кроме того, с использованием двух глобальных унимодальных встраиваний

а также

не явно позволяет нам объединять или выравнивать разные фрагменты изображения с разными фрагментами предложения. Этот более сложный вид моделирования может улучшить результаты поиска информации.

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

Первоначально опубликовано на https://lab.heuritech.com.