Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

腾讯AI Lab深度解读文本生成技术相关论文

随着近年来端到端的深度神经网络的流行,文本生成逐渐成为自然语言处理中一个热点研究领域。文本生成技术具有广阔的应用前景,包括用于智能对话系统,实现更为智能的人机交互;我们还可以通过自动生成新闻、财报及其它类型的文本,提高撰文者的工作效率。

根据不同的输入类型,文本生成可以大致划分为三大类:文本到文本的生成,数据到文本的生成以及图像到文本的生成。每一类的文本生成技术都极具挑战性,在近年来的自然语言处理人工智能领域的顶级会议中均有相当多的研究工作。

本次将介绍腾讯AI Lab在文本到文本生成研究领域中关于文本风格转化及对话生成的两篇论文。其中,文本风格的论文中,我们提出了一个新的序列编辑模型旨在解决如何生成与给定数值相匹配的句子的研究问题。而关于对话生成的论文中,我们提出了一个新的对话模型用于抑制对话生成模型中通用回复的生成。

以下我们将分别介绍两篇论文。

论文:QuaSE: Sequence Editing under Quantifiable Guidance

https://arxiv.org/abs/1804.07007

论文:Towards Less Generic Responses in Neural Conversation Models: A Statistical Re-weighting Method

https://ai.tencent.com/ailab/nlp/papers/emnlp2018_conversation.pdf

 QuaSE: Sequence Editing under Quantifiable Guidance解读

在这篇由腾讯 AI Lab 主导,与香港中文大学(The Chinese University of Hong Kong)合作完成的论文中,作者提出一种新的量化指标引导下的序列编辑模型,可以编辑生成与给定的量化指标相匹配的句子,未来可以扩展到诸如CTR引导下的新闻标题和摘要生成、广告描述生成等业务场景中。

研究问题

论文的主要任务是给定一个句子以及其对应的分数,例如Yelp平台上的用户评价“The food is terrible”以及其评分1,然后我们设置一个目标分数,让模型能够生成与目标分数相匹配的句子,并且原句的主要内容在新的句子中必须得以保持。例如,给定数值3,生成“The food is OK”。给定数值5,生成“The food is extremely delicious”。任务的挑战和特点主要有以下几方面:(1) 给定的数值可以是连续的,例如2.5, 3.7, 4.1等,意味着很难像机器翻译一样能够有人工标注的成对出现的训练样本。(2) 模型需要具有甄别句子中与数值相关的语义单元的能力。(3) 根据数值进行句子编写时,必须保持原句的主要内容。

模型框架

图1:QuaSE模型框架

图1为我们提出的模型QuaSE的框架。包含单句建模以及序列编辑两个部分的建模。左半部分为单句建模。其中X和R是观测值,分别表示句子(例如用户对餐厅的评价)以及其对应的数值(例如用户评分)。Z和Y是隐变量,是对句子内容以及句子数值相关属性的建模表示。受Variational Auto-Encoders(VAE)模型的启发,对于隐变量Z和Y的建模是通过生成模型的方式实现。我们设计了两个Encoder(E1和E2)和一个Decoder (D). X以Z和Y为条件进行生成。模型的优化目标是使得生成的句子X’能够最大限度的重建输入句子X。同时,由于优化目标积分计算困难等原因,我们采用变分的方法探寻优化目标的下界。单句建模的优化目标为:

此外,我们还设计了一个回归函数F来学习隐变量Y和数值R的映射关系。

对于序列编辑过程的建模,我们首先构建了一个伪平行句对数据集。例如,对于句子x=“I will never come back to the restaurant.” 我们找到其伪平行句子为x’=“I will definitely come back to the restaurant, recommend!”其中x和x’对应的数值分别是1和5。

对于句子编辑的建模主要包含三个部分:

(1) 建立句子x到句子x’的内容变化与数值变化之间的关系。原句x到目标句x’的变化肯定是增加或者减少了某些词,从而使得在数值这个属性上产生变化,即y到y’的差别。对于这个变化映射我们设计了第一个目标函数L_diff。

(2) 我们提到x和x’必须在主要内容方面继续保持一致,例如必须都是在描述“restaurant”。所以我们引入第二个目标函数L_sim来使得z和z’尽量的相似。

(3) 我们知道生成过程是给定z和y来生成x (p(x|z,y)), 那么改写的过程可以是给定z和y’来生成x’ (p(x’|z,y’)),也可以同时是给定z’和y来生成x (p(x|z’,y)),这是个双向过程。所以对于这两个生成过程我们引入了第三个损失函数L_d-rec。

最后,单句建模和编辑建模可以融合成一个统一的优化问题通过端到端的方法进行训练。

实验分析

我们使用Yelp上的用户评论和打分数据进行实验。实验分为两个部分。

第一个实验主要是为了验证给定任意数值的句子编辑能力。我们通过MAE和Edit Distance两个指标来衡量句子编辑的性能。实验结果如表1所示:

表 1:Yelp数据集上的任意数值指导下的句子改写

从表1中可以看出我们的模型编辑的句子质量更高,编辑后的句子的预测数值与给定的目标数值更接近。而且能够保持原句的主要内容。

为了更加形象的说明句子编辑的效果,我们抽样了一些样本进行展示,如表2:

表 2:序列编辑的示例展示

另外,我们注意到有相关做文本风格转换的研究工作可以进行句子双向生成,即给定负向情感句子生成正向情感句子,或反之。所以,为了与该类模型比较句子编辑的效果,我们设计了第二个实验与之对应,即从数值1的句子生成数值5的句子,或相反。我们用准确率来评价改写的好坏。实验结果如表3所示:

表 3 :双向文本风格转换效果

实验结果说明我们的模型在双向文本风格转换实验中可以获得更高的准确率

此外,生成的句子质量很难以进行客观评测,所以我们引入了人工评测的结果来衡量句子内容保持度以及句子质量的高低。人工评测结果如表4所示:

表 4 :人工评测结果

可以看出我们的模型可以最大程度的保持原句的内容,并且句子依然保持很好的流畅度。

Towards Less Generic Responses in Neural Conversation Models: A Statistical Re-weighting Method解读

在这篇由腾讯 AI Lab 主导,与武汉大学、苏州大学合作完成的论文中,作者提出一种适用于开放领域对话系统的新型神经对话模型(Neural Conversation Model),旨在解决生成模型中容易产生通用回复(如“我不知道”,“我也是”)的问题。

神经生成模型机器翻译中的成功应用,即神经机器翻译Neural Machine Translation, NMT),激发了研究人员对于神经对话模型的热情。目前,最常用的神经对话模型为序列到序列(Sequence-to-sequence, Seq2seq)模型: 给定一个输入序列及输出序列,模型的参数用于优化negative log likelihood:。然而在开放领域的对话中,我们经常发现对于一个输入x,如“你吃饭了吗?”,若干意思完全不一致的回复都是可以被接受的,如“刚吃完。”,“还没呢,还不饿。”,“不急。你呢?”等等,因此从x到y是一对多的映射关系。甚至,同一个回复经常可以适用于多个输入,因此是从x到y是多对多的映射关系(如图1所示)。然而,Seq2seq模型的目标函数学习的是一个从x到y的一对一的映射关系,并且优化的目标函数由大量的预测高频词/短语的损失项所组成,导致最终收敛的模型易于生成高频词及他们的组合,生成通用回复。

因此,本文在损失函数项中引入权重,使得Seq2seq模型能优化更为多样化的损失项。其中,我们发现若输出为(包含)高频序列,以及输出序列长度过短或过长,此输出序列的损失项优化都容易导致通用回复,因此我们设计了有效的方法对这些损失项乘以一个较小的权重。有兴趣的读者可以阅读我们的论文及具体的权重计算方式。

图1:机器翻译及对话语料中从输入x到输出y的映射关系对比

我们从各大中文社交网站(如微博等)中爬取并筛选了700万高质量的对话句对进行实验。其中,我们保留了500个输入作为测试集,并且聘请了3个评测人员对各种对话生成模型的生成回复进行了包括句子通顺度(Fluency)、与输入句子的相关性等方面的评测。

同时,我们也对比了多种权重设计方式的有效性,包括只使用句子频次(Ours-RWE)、只使用句子长度(Ours-RWF)以及句子频次、长度均使用(Ours-RWEF)。结果如表1所示。从中,我们可以看到,我们的方法在保持较高的句子通顺度的时候,有效地提高了回复的相关性。

表1:人工标注结果

我们还另外保留了10万个输入作为另一个较大的测试集。在这个测试集上,我们统计了各种对比模型中产出几个常见的通用回复的频次。结果见表2。由此表可见,我们提出的方法极大程度地减少了生成的通用回复。

 表2:通用回复生成频次对比

最后,我们在表3中给出一些具体的生成回复。由此我们可以更为直观地感受到所提出的方法确实能够生成质量较高的回复。

表3:生成结果对比

腾讯AI实验室
腾讯AI实验室

理论EMNLP2018文本生成机器翻译生成模型NLP人机交互深度神经网络
2
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

序列到序列技术

人机交互技术

人机交互,是一门研究系统与用户之间的交互关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。人机交互界面通常是指用户可见的部分。用户通过人机交互界面与系统交流,并进行操作。小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~