к предыдущим сообщениям: 01 02 03 04 05 06 07

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

  1. Визуализация человеческих резюме
  2. Улучшение визуализации.

Визуализация человеческих резюме

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

Я кратко объясню, что за этим стоит.

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

Как мы интерпретируем письменные резюме, написанные людьми, то есть их отношение к исходному тексту? Возможно, мы сканируем документ и пытаемся сопоставить абзацы или предложения с предложениями в резюме. Это можно сравнить с «вниманием», которое наш разум использует для составления резюме. Если мы сможем визуализировать это сопоставление, возможно, более тонко и подробно (то есть токен за токеном), тогда мы сможем сравнивать человеческие сводки со сводками, сгенерированными машиной, верно? И тогда можно будет определить, какие сводки есть у людей, а какие нет в сводках машин, или наоборот. Есть надежда, что, если мы сможем провести такое сравнение, исследователи смогут лучше подготовиться к совершенствованию своих моделей с помощью этих выводов.

До сих пор я экспериментировал с двумя методами для генерирования этого «внимания» от человеческого резюме к исходному тексту.

Сходство слов

Первый подход, который пришел в голову, заключался в использовании сходства слов в качестве показателя внимания. Для этого я использовал предварительно обученные вложения GloVe и Gensim API, чтобы вычислить сходство слов между каждой парой входного токена / выходного токена. SpaCy использовался для токенизации последовательностей. Результатом является матрица весов, аналогичная распределению внимания, хотя и не нормализованная по выходным токенам (с учетом внимания, для данного выходного токена совокупность по всем входным токенам равна 1). Как показано в приведенном ниже примере, этот метод не работает, поскольку выходные токены сопоставляются с входными токенами независимо от контекста. Это означает, что сравнивать эти веса с вниманием не имеет смысла.

Модель обобщения

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

Где y-шляпы представляют собой прогнозируемые выходные токены, у нас есть один, который выглядит так:

Где y (без шляпы) представляет собой истинный выходной токен (токен из человеческого резюме). Это процесс, аналогичный тому, который выполняется во время обучения моделей генеративного кодера-декодера.

Захватывая распределения внимания так же, как мы делали это с машинными сводками, мы надеемся получить приблизительное представление о распределениях внимания для человеческих сводок - мы, по сути, даем модели ответ. Однако есть одна загвоздка. Поскольку веса внимания используются для создания вектора контекста, который затем передается в блок декодера next для предсказания следующего слова, мы сталкиваемся с проблемой, когда предсказывается следующее слово. неправильно. Оказывается, это часто происходит в рамках используемой модели (из See et al.). Это действительно имеет смысл, поскольку было показано, что модель производит в основном извлекающие сводки, и поэтому можно было бы ожидать, что модель на каждом временном шаге будет пытаться произвести следующее слово в исходном тексте, которое следует за поданным ему словом. При использовании абстрактных резюме это не всегда оптимальный выбор. Это приводит к тому, что веса внимания не имеют особого смысла, как показано ниже.

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

Так как же еще?

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

Улучшение визуализации

Этот раздел будет коротким. На прошлой неделе я рассмотрел несколько проблем.

  1. Реализуйте объединение разделенных кромок, как это разработано Selassie et al. (2011) . Я кратко описал это в своем предыдущем сообщении в блоге. Препятствие здесь в том, что не существует реализации алгоритма d3. Фактически, единственной доступной реализацией, которую я смог найти, была одна для Matlab, созданная Келли Кирни (Вашингтонский университет). Это может оказаться труднее, чем позволяет оставшееся время в этом квартале, но я все равно начал процесс и посмотрю, к чему он меня приведет.
  2. Выделение экстракции. То есть сделать это очевидным при визуализации, когда модель просто копируется. Я играл с такими вещами, как цвет, чтобы кодировать это, но не остановился ни на чем, что мне нравится.

Впереди еще много работы!

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

  1. См. Abigail et al. «Ближе к делу: обобщение с помощью сетей указателей-генераторов. ACL (2017 г.) ».
  2. Селассие, Дэвид и др. «Объединение разделенных границ для направленных сетевых данных. Транзакции IEEE по визуализации и компьютерной графике 17 (2011): 2354–2363 ».