基于上下文信息的垂直领域问答系统的语言生成模型

近年来,语音交互方式的在移动终端的崛起使得问答系统正在受到越来越多的关注。语言生成模型的任务是将答案的逻辑表达式转换为自然语言的形式传达给用户,是问答系统中直接与用户交互的一环,其表现对问答系统的评价有重要的影响。大多数基于规则和模板的传统方法生成的回复单一而又生硬,缺乏自然语言的多变与灵活性,并且设计回复规则和模板需要耗费大量人力。近年来随着人工神经网络的发展与网络上可获取的标注数据的增多,产生了数据驱动的方法:通过标注的数据训练一个神经网络,从而使其可以自动生成符合人类语言习惯的回答语句。而已有的任务导向的数据驱动方法在生成回复时仅利用了答案的逻辑表达式来生成回复,对于不同提问方式和语言习惯的用户,其无法针对性的生成恰当的回复。


清华大学计算机系人工智能实验室朱小燕教授课题组在自然语言处理会议COLING 2016上发表长文《Context-aware Natural Language Generation for Spoken Dialogue Systems》(作者:周昊、黄民烈、朱小燕),提出了一种基于上下文信息的应用于垂直领域问答系统的语言生成模型(CA-LSTM)。相比于传统的基于规则和模板的方法,该模型使用了端到端的 LSTM 循环神经网络可以从训练语料中自动学习出回复句式,省去了人工设计规则和模板的工作量,并且通过对生成词语概率分布的随机采样可以生成出多变的句式,解决了传统方法回复单一的问题。同时,相比于已有的数据驱动的神经网络方法,本文将上下文信息引入到任务驱动的语言生成模型中:使用编码-解码(Encoder-Decoder)框架,可以根据用户不同的提问方式产生不同的回答;引入了注意力机制(Attention Mechanism)针对问题中的关键词语产生不同的回答;学习回复句式向量更精确的生成不同的回复句式。在 BLEU-4评分以及人工评分中取得了显著的性能提升。



图1:CA-LSTM 模型框架

模型的总体框架如图1所示,用户问题输入为(x1,...,xT),通过Encoder 将其编码为隐向量表示 h,然后通过注意力机制,结合 decoder 的状态向量 s 在生成不同的词时,对问题的隐向量表示 h 的不同部分的信息选择性的加强,得到向量 q。decoder 接受经过注意力机制的问题向量 q,回答句式向量 v,以及答案信息向量 d 作为输入,通过循环神经网络生成出回复语句(y1,...,yT)。
        


图2:Encoder 编码神经网络结构

用户问题的编码神经网络Encoder的结构如图2所示。我们使用了双向的长短期记忆网络(LSTM)将问题中每一个词的词向量作为网络输入,输出整个句子的隐向量表示 h,然后再与解码神经网络Decoder的状态向量 s 一起通过注意力机制,得到经过注意力机制的用户问题向量 q。




图3:Decoder 解码神经网络结构

系统回复的解码神经网络Decoder的结构如图3所示。我们使用了双层的 长短期记忆网络(LSTM)将上一个step输出的词向量w,回复句式向量v ,答案信息向量 d 以及经过注意力机制的问题向量 q 作为输入,进行解码,对输出向量进行 softmax 就可以得到预测词的概率分布。



图4:注意力机制的可视化表示

注意力机制的可视化表示如图4所示。可以看到,在模型生成<name>时,问题中的 restaurant,lunch 等词的信息得到了加强,在模型生成<price range>时,问题中的 cheap 的信息得到了加强。从中可以看出,我们的模型可以如预期一样根据问题中的特定词的信息生成回复语句。



图5:句式向量可视化表示

句式向量的可视化表示如图5所示。可以看到,对于句式相近的 inform,inform only match 的句式向量学习出来也基本相似,而对于句式差别很大的 hello 和 goodbye 的句式向量则有很大不同,符合我们的预期。同时,实验表明,引入句式向量对于特定句式生成句子的效果会有显著提升。


数据驱动的语言生成模型具有很大的应用与科研价值。在未来的工作中,我们会试图在更大规模的语料上进行单轮次或多轮次的语言生成模型的研究,以解决更加复杂和开放领域的对话问题。


欢迎关注我们的论文:《Context-aware Natural Language Generation for Spoken Dialogue Systems. COLING 2016. Osaka. Japan.