Генерация нейронных ответов - некоторые итоги работы по генерации ответов

искусственный интеллект глубокое обучение продукт Twitter

Предисловие. Благодаря постоянному продвижению концепции искусственного интеллекта многие компании запустили продукты, связанные с чат-ботами, и исследования открытой диалоговой системы, ориентированной на поле, становятся все более и более популярными. В настоящее время существует два основных метода решения диалоговых задач, а именно методы поиска и методы генерации. Метод поиска обычно выбирает наиболее подходящего кандидата из большого набора кандидатов для ответа на вопрос, поставленный пользователем.Хотя он обеспечивает беглость и естественность ответа, он сильно зависит от размера набора кандидатов и эффекта поисковый метод иногда не дает желаемых результатов. Генеративные методы полагаются на рекуррентные нейронные сети (RNN) для генерации новых ответов путем обучения на основе разговоров.Хотя они имеют определенные эффекты, у них также есть много проблем. В этой статье в основном представлена ​​некоторая генеративная работа, в том числе некоторые базовые модели и некоторые улучшенные модели, предложенные в последние годы, чтобы помочь вам быстрее понять связанную работу.

автор:Чжу Ютао, аспирант Пекинской ключевой лаборатории методов управления и анализа больших данных Китайского университета Жэньминь в 2016 г. Текущие направления его исследований — диалоговые системы и глубокое обучение.

Примечание. Эта статья была впервые опубликована в Zhihu [Станция интеллектуальной разведки RUC] и паблик-аккаунта WeChat [Play Big Data PlayBigData], при необходимости перепечатки сообщите об этом автору и укажите адрес данной графы.

1. Предпосылки

1. Два типа методов

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

Генеративный метод отличается тем, что с помощью соответствующих исследований по глубокому обучению модель может сама изучить диалог, чтобы генерировать новые ответы перед лицом пользовательского ввода. Большинство генеративных методов используют структуру модели Seq2seq, которая рассматривает контекст диалога как две последовательности, кодирует приведенную выше последовательность, а затем декодирует следующую. С помощью исследований генеративных моделей, таких как GAN и VAE, некоторые ученые применили их к диалоговым системам и добились хороших результатов.

2. Базовая модель

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

Примечания: Этот раздел ссылается на статью Ли Джуньи «Просмотр модели Seq2Seq из генерации текста» в столбце RUC Intelligent Intelligence Station.Если вы хотите узнать больше о модели Seq2seq, вы можете двигаться дальше.Глядя на модель Seq2Seq из генерации текста.

2.1 Модель Seq2seq

Базовая структура модели выглядит следующим образом:

Рисунок 1: Базовая структура модели Seq2seq

Этот рисунок взят из Google ICML Deep Learning Workshop [1] в 2015 году. Как показано на рисунке, модель Seq2seq в основном разделена на два модуля: модуль кодирования (кодер, контекстная часть на рисунке) и модуль декодирования ( декодер, часть ответа на рисунке). Эти два модуля обычно реализуются с использованием RNN (включая LSTM и GRU). Роль модуля кодирования заключается в кодировании верхней части диалога в вектор фиксированной длины, а роль декодера — в использовании вектора для декодирования нижней части диалога. На рисунке ABC — это три слова в приведенном выше предложении, которые кодируются кодировщиком и отправляются в декодер. Первым входом в декодер обычно является начальный идентификатор (или конечный символ выше, т. е. на рисунке), а затем одно за другим генерируются следующие слова WXYZ.

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

2.2 Механизм внимания

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

Здесь настоятельно рекомендуются две классические статьи о механизме внимания, а именно: Bahdanau Attention[2] и Luong Attention[3]. Здесь мы используем внимание Багданау, чтобы представить основную идею внимания.

Рисунок 2: Богданау Внимание

Нижняя часть рисунка на самом деле является кодировщиком (здесь используется двусторонний RNN), а верхняя часть — декодером (нарисованы только два момента). Видно, что когда декодер генерирует вывод в каждый момент времени, он больше не использует только вывод последнего момента кодировщика, то есть этот метод нарушает ограничение, заключающееся в том, что кодировщик может передавать только вектор фиксированной длины. Декодер может фактически получать информацию от Кодировщика в каждый момент времени и декодировать ее через вектор, полученный взвешенным суммированием информации в каждый момент времени. Большим преимуществом этого является то, что доступная информация различна в каждый момент времени. Это тоже очень интуитивно: в диалоге каждое слово в нашем ответе должно быть связано с каким-то из приведенных выше слов, и внимание является проявлением этой корреляции.

2. Введение в родственные модели

В этой части я представлю некоторые модели генерации диалогов. Автор сосредоточился на проблемах, которые каждая модель хочет решить, и на инновациях модели. На самом деле, каждая модель добилась хороших результатов в экспериментах, но для экспериментальной части не делает никакого описания.Если читатели заинтересованы в эксперименте, они могут перейти к исходному тексту в ссылке, чтобы прочитать. Модели, представленные позже, в основном делятся на три категории в зависимости от решаемых ими проблем: первая категория — решить, как генерировать ответы, вторая категория — решить, как генерировать более качественные ответы, а третья категория — решить диалоги. с контекстом и автоматическим письмом Поэзия и другие связанные модели.

1. Как создать ответ

1.1 NRM (нейронная реагирующая машина) [4]

Эта модель предложена группой Ли Ханга на ACL15. Его модельная структура выглядит следующим образом:

Рисунок 3: Структура модели NRM

Целью этой статьи является введение структуры Encoder-Decoder модели Seq2seq в задачу короткого текстового диалога.Сравниваемые модели представляют собой модель статистического машинного перевода (на основе SMT) и модель поиска. Левая часть рисунка - кодировщик, а правая часть - декодер, Видно, что используются два типа кодировщиков, а именно глобальный кодировщик и локальный кодировщик. В сочетании с введением фоновой части нетрудно обнаружить, что глобальный кодировщик здесь представляет собой обычную модель RNN, использующую свой вывод в последний момент. Локальный кодировщик представляет собой модель RNN, которая вводит внимание. Здесь автор объединяет эти две модели RNN, объединяя глобальную Выход энкодера в последний момент сращивается с выходом локального энкодера, а затем к склеиваемому вектору применяется Attention. Причина этого в том, что глобальный кодировщик использует только вывод последнего момента, а полученный вектор является обобщением всего предложения, о котором можно сказать, что это кодирование, более ориентированное на глобальную информацию. Расшифровать всю информацию только из этой кодировки было бы сложно. Локальный энкодер отлично это компенсирует, благодаря введению механизма Attention также можно использовать локальную информацию. В статье также используются глобальные отдельно Кодер сравнивается с локальным кодировщиком и моделью, использующей сочетание двух кодировщиков, и делается вывод, что использование обоих кодировщиков одновременно даст лучшие результаты. По сравнению с моделью поиска и моделью статистического преобразования генеративная модель дала лучшие результаты.

1.2 DCGM-I и DCGM-II (динамически-контекстная генерирующая модель) [5]

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

Рисунок 4: Набор данных Triplet

Принципиальные схемы двух моделей выглядят следующим образом:

Рисунок 5: Структуры моделей DCGM-I и DCGM-II

На рисунке показана ситуация на стороне декодера.Во время декодирования DCGM-I использует матрицу для умножения вектора, используемого в предыдущий момент, в каждый момент для генерации вектора, используемого в текущий момент. На самом деле это несколько похоже на рекуррентную структуру RNN, но не использует напрямую RNN в качестве кодировщика. В DCGM-I,b_{cm}Представляет вектор 0-1, в котором позиция слова в контексте и сообщении равна 1, а остальные равны 0. В начальный момент используйтеW_f^1иb_{cm}Умножьте, чтобы получить вектор, используемый в начальный момент, и вместе с состоянием скрытого слоя сгенерируйте слово в начальный момент. И в последующие моменты используйтеW_f^iУмножьте сгенерированный вектор, использованный в предыдущий момент, чтобы получить вектор, использованный в i-й момент, а затем сгенерируйте слово в этот момент вместе с состоянием скрытого слоя. Однако DCGM-II немного изменился и с самого начала не объединял информацию о контексте и сообщении в одно целое.b_{cm}вектор вместо двух векторов соответственно сW_f^1Умножьте, а затем выполните операцию сплайсинга и используйте вектор, полученный сплайсингом, для циркуляции и отправки в следующий момент для генерации слов. Основная особенность этой модели заключается в том, что RNN не используется в качестве кодировщика, то есть указанное выше не кодируется как вектор фиксированной длины, а указанная выше информация (включая контекст и сообщение) непрерывно пересчитывается, когда декодер генерируется в момент времени. каждый момент Вход в этот момент выполняет работу генерации. Преимущество этого заключается в том, что входная информация, используемая для генерации каждого момента, отличается, но она тесно связана с вышеуказанной информацией.

2. Как генерировать более качественные ответы

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

2.1 ММИ-антиЛМ и ММИ-биди[6]

Эта модель была предложена г-ном Ли Цзивеем на HLT-NAACL16. В отличие от других моделей, он считает, что решение проблемы чрезмерного обобщения ответов должно быть сосредоточено на целевой функции. Судя по целевой функции стандартной модели Seq2seq, она фактически ищет контекст с максимальной вероятностью при условии вышеизложенного, что в математической форме записывается как

Где S представляет собой указанную выше последовательность, T представляет собой следующую последовательность. Из самой этой формулы видно, что она не может фильтровать некоторые высокие частоты, следующие за Т. Поэтому здесь вводится информация о максимальном взаимодействии (MMI), а именно:

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

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

Приведенную выше формулу можно преобразовать в:

Модель, использующая эту формулу в качестве целевой функции, обозначается как MMI-bidi.

Здесь мы впервые рассмотрим первую модель, MMI-antiLM. Название потому, что формула кажется штрафом за языковую модель, которая немного обратна - смысл языковой модели. Эта формула выглядит очень хорошо, но введение второго члена сохраняет как маловероятные ответы, так и ложные (неграмматические) ответы. Теоретически, если введенное значение параметра меньше 1, неправильный ответ должен наказываться первым пунктом, но на практике оказывается, что все же есть неправильные ответы, которые избегают наказания. В ответ на эту проблему автор предлагает внести некоторые изменения во второй пункт,

настроить на:

из которых

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

Далее мы рассмотрим модель MMI-bidi. Вот небольшой обзор его целевой функции:

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

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

2.2 ta-seq2 порно (тема известна S EQ2 порно) [7]

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

Рисунок 6: Структура модели TA-Seq2seq

По сравнению с ранее упомянутым Seq2seq+Attention, автор вводит новое внимание к теме, чтобы усилить роль темы. Как видно из рисунка, это Внимание воздействует на Тематические Слова. Эти тематические слова обучаются с помощью Twitter-LDA [8]. Путем предварительной подготовки тематической модели можно получить информацию о теме, соответствующую каждому из вышеперечисленных, а также определенное количество включенных слов темы. При формировании ответов одновременно учитывается функция тематических слов, чтобы генерируемые ответы были интереснее и богаче по содержанию. Кроме того, как видно в правой части, автор скорректировал вероятность генерации слов на стороне декодера, Идея здесь в том, что мы, естественно, считаем, что вероятность этих подлежащих слов в сгенерированном предложении должна быть выше, так как показано на рисунке. , вышесказанное говорит о проблеме моей сухой кожи. Тематические слова - это некоторые родственные слова, такие как кожа, сухость, лицо и т. д. Когда эти слова появляются в ответе, они не только тесно связаны с выше, но и увеличить количество информации в ответ, так что для этих слов Вероятность добавления слов будет достигать определенного эффекта. Экспериментальные результаты показывают, что этот метод, учитывающий тематические слова как на стороне кодировщика, так и на стороне декодера, может генерировать более интересные и содержательные ответы.

2.3 Seq2BF (от последовательности к обратной и прямой последовательностям) [9]

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

Рисунок 7: Структура модели Seq2BF

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

3. Генерация древних стихов и несколько раундов диалога

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

3.1 PPG (Генерация поэзии с помощью нейронной сети на основе планирования) [10]

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

Рисунок 8: Структура модели PPG

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

Рисунок 9: PPG генерирует часть структуры модели

Если вы игнорируете часть намерения слева, левая сторона представляет собой модель Seq2seq+Attention, а левая сторона оказывается модулем, представленным намерением, который использует отдельную последовательность RNN для кодирования намерения, и результат получается вместе с предыдущим предложением. Стихотворение проходит через механизм внимания для генерации. Конечно, при генерации первого куплета используется кодирование только левой части намерения. Стихи, созданные таким образом, имеют определенные гарантии с точки зрения ритма, беглости и семантики и достигают хороших результатов.

3.2 HRED (иерархический кодер-декодер) [11] и VHRED (иерархический кодер-декодер со скрытой переменной) [12]

Эти две модели были предложены группой Бенджио на AAAI два года назад. Последняя совершенствуется на основе первой. Вот первое введение в HRED:

Рисунок 10: Структура модели HRED

Когда это необходимо объяснить здесь, эта модель решает проблему нескольких раундов диалога.Для трех раундов диалога, используемых в HRED, вы можете видеть на рисунке, что нижний левый — это первое предложение, верхний левый — второе предложение, а вверху справа — третье предложение. При прогнозировании модель получает первые два предложения для генерации третьего предложения. На первый взгляд, модель также является структурой Seq2seq, так как ее можно расширить до нескольких раундов диалога. Здесь необходимо ввести понятие иерархии (Hierarchical), упомянутое автором. Как видно из рисунка, два нейрона посередине на самом деле представляют собой отдельную структуру RNN, а каждое предложение представляет собой структуру RNN, то есть когда Кодировщик кодирует предложение и отправляет его Декодеру, он сначала отправляет его в отдельная структура RNN.RNN, мы можем думать об этом как о контекстной RNN, RNN вычисляет входную кодировку и отправляет вывод в декодер для декодирования. Когда это предложение вводится как следующее предложение (внизу справа), код, полученный RNN, снова передается в контекст RNN, и результат используется для декодирования третьего предложения. Можно видеть, что контекстная RNN в середине на самом деле является RNN более высокого уровня, которая используется для хранения информации о контекстной согласованности, тем самым реализуя генерацию нескольких раундов диалога. Эта модель хорошо описывает характеристики непрерывного диалога, и на этой основе автор предлагает модель VHRED:

Рисунок 11: Структура модели VHRED

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

3.3 HRAN (иерархическая сеть рекуррентного внимания) [13]

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

Рисунок 12: Структура модели HRAN

Структура модели HRAN хорошо представлена ​​в названии. Если только один модуль в кодировщике уровня слов напрямую подключен к декодеру верхнего уровня, это структура Seq2seq+Attention. На самом деле несколько фиолетовых модулей ниже — это несколько предложений, соответствующих нескольким раундам диалога. Синяя часть посередине — это внимание на уровне предложения. Автор предполагает, что по сравнению с HRED и VHRED, которые используют информацию только на уровне слов, модель не может фиксировать ключевое содержание предложений, а информация между несколькими предложениями не подчеркивает отношения их важности. Поэтому вводится двухуровневый механизм внимания, чтобы модель могла автоматически запоминать информацию о важности на уровне слов и предложений, чтобы лучше генерировать новый раунд диалога. Если внимательно понаблюдать, то можно обнаружить, что автор усваивает информацию на уровне предложения задом наперед, то есть он считает, что информация следующего предложения может содержать информацию предыдущего предложения содержания диалога. Экспериментальные результаты показывают, что эта модель позволяет достичь лучших результатов, чем HRED и VHRED.

3. Резюме

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

4. Ссылки

[1] Vinyals O, Le Q. A neural conversational model[J]. arXiv preprint arXiv:1506.05869,2015.

[2] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learningto align and translate[J]. arXiv preprint arXiv:1409.0473, 2014.

[3] Luong M T, Pham H, Manning C D. Effective approaches to attention-basedneural machine translation[J]. arXiv preprint arXiv:1508.04025, 2015.

[4] Shang L, Lu Z, Li H. Neural responding machine for short-textconversation[J]. arXiv preprint arXiv:1503.02364, 2015.

[5] Sordoni A, Galley M, Auli M, et al. A neural network approach to
context-sensitive generation of conversational responses[J]. arXiv preprint
arXiv:1506.06714, 2015.

[6] Li J, Galley M, Brockett C, et al. A diversity-promoting objective functionfor neural conversation models[J]. arXiv preprint arXiv:1510.03055, 2015.

[7] Xing C, Wu W, Wu Y, et al. Topic Aware Neural Response Generation[C]//AAAI.2017: 3351-3357.

[8] Zhao W X, Jiang J, Weng J, et al. Comparing twitter and traditional media
using topic models[C]//European Conference on Information Retrieval. Springer,
Berlin, Heidelberg, 2011: 338-349.

[9] Mou L, Song Y, Yan R, et al. Sequence to backward and forward sequences: A
content-introducing approach to generative short-text conversation[J]. arXiv
preprint arXiv:1607.00970, 2016.

[10] Wang Z, He W, Wu H, et al. Chinese poetry generation with planning basedneural network[J]. arXiv preprint arXiv:1610.09889, 2016.

[11] Serban I V, Sordoni A, Bengio Y, et al. Building End-To-End Dialogue
Systems Using Generative Hierarchical Neural Network Models[C]//AAAI. 2016:
3776-3784.

[12] Serban I V, Sordoni A, Lowe R, et al. A Hierarchical Latent VariableEncoder-Decoder Model for Generating Dialogues[C]//AAAI. 2017: 3295-3301.

[13] Xing C, Wu W, Wu Y, et al. Hierarchical Recurrent Attention Network forResponse Generation[J]. arXiv preprint arXiv:1701.07149, 2017.