网络知识 娱乐 腾讯刘天宇:可控、可靠的数据到文本生成技术

腾讯刘天宇:可控、可靠的数据到文本生成技术

导读:本次分享主题为数据到文本生成,主要聚焦在可控性和可靠性方面。全文将从以下几部分展开:

  • 数据到文本生成-任务背景
  • 数据到文本生成-常用数据集
  • 数据到文本生成-结构化数据的表示
  • 数据到文本生成-融入规划的数据描述
  • 数据到文本生成-显式规划
  • 数据到文本生成-隐式规划
  • 数据到文本生成-隐式规划vs显式规划
  • 数据到文本生成-数据描述评价

01

数据到文本生成-任务背景

腾讯刘天宇:可控、可靠的数据到文本生成技术

首先来看一下数据到文本生成的任务定义。它是对结构化数据产生自然语言描述,可以应用在很多方面,比如自动赛事播报、自动电商产品描述等,也可以去赋能一些其它相关业务,比如对话回复生成、电子病历。

在对结构化数据进行描述的时候,我们会遇到一些挑战:

首先,结构化数据的专业性比较强,它是多领域的,比如金融、体育、医疗、政务等,由于含有比较多的专业用语和专用知识,因此比较难解读。

另外,互联网上结构化数据覆盖范围广,在对这种大规模数据,或者是开放域百科、知识图谱进行描述的时候,会面临跨领域的挑战。有时候我们不需要把数据当中的每一个数字都去介绍清楚,因此,如何聚焦最重要的信息,也是一个挑战。

--

02

数据到文本生成-常用数据集

腾讯刘天宇:可控、可靠的数据到文本生成技术

上图中列出了一些常见的数据集,我们做的工作是文本生成,也就是把它建模成一个条件概率的分布P(y|x)。y是一个数据描述文本,x是各种各样不同形式的数据,可以是统计数据、键值表格,也可以是三元组(多见于知识图谱),或是逻辑表达。

比如上图左边是一个NBA比赛赛事的描述,包括两个队的得分,以及球员的一些技术统计,基于这些数据产生的赛事播报,这是一个常见的应用。

中间是一个键值对表格,取的是维基百科里对人物介绍的一个数据集,在学术界用得比较多,工业界也会尝试去应用。

右边是一个比较新的数据集,提供了数据结构化数据,并规定了逻辑表达式。我们根据给定的逻辑表达式产生对应的描述。

--

03

数据到文本生成-结构化数据的表示

腾讯刘天宇:可控、可靠的数据到文本生成技术

文本到文本生成,已经有很成熟的方式,可以用编码器解码器方式去做,如RNN、Transformer、Pretrained Model。但结构化数据的挑战,首先是怎么把结构化数据建模成序列形式,或者说如何把它塞到编码器中去。主要有两种方式:

  • 第一种方式是把表内信息对应的键值信息当作一个词语,跟表内信息融合成一个句子,序列化的输入Encoder当中。
  • 第二种方式是把attribute键值信息拼接在表内信息之后。

这两种方法都适用于RNN、Transformer、Pretrained Model。

--

04

数据到文本生成-融入规划的数据描述

腾讯刘天宇:可控、可靠的数据到文本生成技术

接下来介绍如何去融入规划。

上图是一个比较经典的NLP流水线,我们的NLG应用会经历一个从“说什么”到“怎么说”的过程。从规划的角度看可能会进行Document Planning、Sentence Planning。

今天介绍的内容,使用z去代表数据描述的规划。建模就是要对z进行求和,把它marginalize掉,才可以优化P(y|x)。

接下来介绍两种规划:显式规划和隐式规划。

--

05

数据到文本生成-显式规划

腾讯刘天宇:可控、可靠的数据到文本生成技术

首先来看显示规划。

训练的目标是希望有一个规划生成的网络P(z|x),输入结构化的信息,输出序列化规划,再把指定的规划信息和结构化数据输入描述网络中,最终生成描述。

推理的时候,可以用规划生成网络产生的规划,或者自行规定的规划,由此产生与这个规划对应的描述内容。

下面看具体的显示规划的形式。

腾讯刘天宇:可控、可靠的数据到文本生成技术

首先介绍的这个工作,是做内容的选择,相对来说控制程度较低、粒度较粗。上图中,左侧是一个维基百科人物介绍的数据集,上面是表格的内容,表格下面是描述。描述中并没有去涵盖表格当中的所有信息,只说到这个人的姓名、出生日期、国家信息和职业信息。我们可以先做Content selection,把收到的内容筛选出来,之后再做生成。

上图右侧可以看到两个网络,Pθ 规划生成网络和 Pφ 描述生成网络。Pθ 建模成Bi-LSTM 0-1 序列标注;Pφ 可以用RNN Seq2seq或者PretrainedMT。

腾讯刘天宇:可控、可靠的数据到文本生成技术

刚才的例子是一个粗粒度的工作,上图中的例子则是一个更加具体的工作,不仅要确定“说什么”,还要确定“怎么说”。要生成一个片段,还要确定句内的描述顺序和段落句子的描述顺序。也是同样的数据集,左边是输入的表格,右边是对这个表格的一些描述。我们可以用匹配的一些模型,把表格和文本进行关联,比如先看到这个人的名字,然后再说出生日期,接下来是国籍、职业等。我们可以把这些叙述顺序对应的attribute序列化,产生一个句内的规划。这个句子有两句话,可以用一个special token(如上图中为SEP token)把第一句和第二句分隔开。这样,规划生成网络和描述生成网络都可以用一个sequence模型,训练起来会特别方便。

腾讯刘天宇:可控、可靠的数据到文本生成技术

我们指定规划的目的是希望模型产生的描述,忠实于指定的规划,并且给定不同的规划,模型可以产生不一样的描述,达到多样化的效果。上图中的例子,前两个case给定的plan里有两个SEP符号,所以生成三句话;第三个case中只有一个SEP,所以生成两句话。可以看到,生成的内容是与我们设定的句子数量相匹配的。前两个case,我们把第二句话和第三句话在规划中交换了一下顺序,也就是⑥和⑦的位置互换了一下,可以看到生成的句子与我们的规划是一致的,并且在词的选择上有一些小的变化,也是符合人类语言习惯的,是通顺易理解的。

腾讯刘天宇:可控、可靠的数据到文本生成技术

上图是另外一个工作——赛事播报的表格。它的特点是数据比较多、有很多数字,另外不能cover所有比赛细节,而是要从中选取关键的信息。蓝色框是赛事描述,橘色框是给定的一些结构化的统计数据。

腾讯刘天宇:可控、可靠的数据到文本生成技术

与前面类似,我们还是要看应该描述哪些内容,应该以怎样的顺序描述,最终产生的规划还是一个序列。但这里我们面临的一个挑战是——赛事数据里的数字很多,很难像之前键值对例子中那样去把重点提炼出来。这里首先要从赛事数据中用一些实体规则,产生一个规划库,如红框中的内容。规划库中会含有一些重点的实体信息,比如球员的名字、球队的名字,还包含一些事件信息,比如棒球比赛中的跑位信息,把这些都放在规划库中。接下来,规划库与蓝红框中的描述进行匹配,产生规划的描述。由此就可以用与之前一样的序列到序列的模型来建模。

腾讯刘天宇:可控、可靠的数据到文本生成技术

下面介绍显示规划中的第三块内容,除了对描述顺序进行规划,还对句子结构进行更细粒度的规划。这里定义了三种操作符,Chain、Sibling和Combination。首先是Chain,比如给定三元组信息<John, residence, London>(John住在伦敦),<England, capital, London>(英国的首都是伦敦),规定Chain的描述顺序,那么整个句式就是序列化的描述方式,中间不会有and或者or去连接。另外一个结构Sibling,两个信息是并列的,会有一个and去做连接。第三个操作Combination,就是把前面两种结构连在一起,最终产生一个描述的句子。

腾讯刘天宇:可控、可靠的数据到文本生成技术

整体工作流程如上图所示,输入一些RDF三元组,然后人为去规定text plan,或者用网络 Pθ 和 Pφ,有了这个plan图之后,把它线性化成一个线性化的text plan,最终再用描述网络生成一个句子。

腾讯刘天宇:可控、可靠的数据到文本生成技术

上图是上述工作的一个实例,模型的输入是图中的表格(不包含表格左边的图片),是关于墨西哥的一个甜品。它采用了并列的句式,蓝色字是对成分的描述,红色字是说它来自墨西哥的一个地方。但我们发现在实际情况中它给定的reference不一定都是对的。我们就可以对这个句子描述的顺序和结构进行控制,比如如果想强调产地信息,就可以把产地信息放在前面,当作一个重点去讲。

--

06

数据到文本生成-隐式规划

腾讯刘天宇:可控、可靠的数据到文本生成技术

下面来讲一下隐式规划。

符号系统还是和显示规划中一样,y是一个text,x是输入的一个结构化数据,z还是规划。但是这里z是一个隐变量,可能是一个离散隐变量,也可能是一个连续隐变量。训练的时候,我们要用到采样信息,我们需要从P(z|x)即z的后验概率中采样一个z出来,然后去进行训练。推理的时候,我们可以采样一个z,也可以指定一个z,来进行推理。

隐式规划的重点是首先要确定这个隐变量的结构,要确定它是一个离散的变量,还是一个连续的变量,它的结构是单变量,还是一个链式变量,或者是一个层次的变量。这样的结构信息决定了我们用什么样的算法去优化它,比如EM、VAE或是HMM。

步骤与之前相同,还是先生成一个规划,然后再用描述网络去产生最终的描述。

腾讯刘天宇:可控、可靠的数据到文本生成技术

上图是一个比较简单的隐式规划。这是一个有很多专家的系统,z是从一个多项式的分布中去采样的,还规定了number of experts数量,训练过程采用EM算法。

规定了几个专家系统就有几套参数,如上图右下角所示,一共三套参数对应三个系统,第一套参数对应的就是第一个系统,以此类推。在训练的时候,有三条通路,E步取对应得分最高的那条通路;M步实际上对一个训练样本,只更新一个专家系统对应的一个参数,也就是梯度只在这一条路径传递。

这样,一个输入,有三个专家,每一个专家都产生一个不一样的的文本,我们输入的一个结构化数据就可以产生三个描述。

腾讯刘天宇:可控、可靠的数据到文本生成技术

这是一个稍微复杂一些的隐式规划,还是单变量。刚才的例子中,是离散的变量,现在是用连续的变量去控制生成的模板。这里有两个输入源:一个有监督的训练集,既有输入的data又有对应的描述;还有单文本语料,但单文本语料没有给定的data,只有对应的描述。整个带有隐变量的概率图建模成了上图中左下角显示的样子, x和y是observed variable,就是可以看到的变量。而z和c都是看不到的, z代表规划,c则代表内容。c是由x决定的,用一个网络去建模x就可以得到c。在给定c的情况下,用不同的规划就能产生不一样的y。

具体来看,有两部分的loss。第一部分是有监督的样本的loss,因为c是给定的,只需要对z进行积分操作。第二部分,无监督语料,因为z和c都是看不到的,所以需要对z和c同时进行积分。

腾讯刘天宇:可控、可靠的数据到文本生成技术

对于有监督样本的优化就是一个标准的VAE。因为c虽然是一个变量,但在这里是一个确定变量,通过 fenc 就能算出来。我们只需要对z进行积分就可以了。可以用一个最标准的VAE的方式去解,即ELBO。

我们最终的优化目标是 Pθ(y|x),但是由于这里有一个积分符号,所以是很难优化的,后验概率也比较难算。我们就提出了变分网络,希望解决这个难以优化的部分。变分网络会产生一个变分后验,我们的目标是让它逼近真实后验。

腾讯刘天宇:可控、可靠的数据到文本生成技术

对于有监督样本,就是标准的VAE框架。对于无监督语料,z和c都需要积分掉,对应的ELBO是不同的形式。这里的一个难点是 qФ(z,c|y),为了简化这个生成步骤,这里做了一个假设,假设z和c是关于y条件独立的,简化后就得到了无监督语料对应的ELBO形式,如上图中下半部分所示。这样做的好处是可以把网络的数量理清楚了,推理起来也比较方便。整个过程就可以分为图中不同颜色框出的五块,这样只要采用标准的VAE训练流程就可以把网络训练好了。


腾讯刘天宇:可控、可靠的数据到文本生成技术

除了刚才说的 ELBOp 和 ELBOr 之外,它还定义了一个总的函数,如上图所示。

这样,我们就可以根据三步走的步骤去完成整个训练流程。

腾讯刘天宇:可控、可靠的数据到文本生成技术

上图是它的效果,VTM是这个工作提出来的模型。可以看到,通过对隐式规划z去采样,一个不同的采样点就可以对应一个不同的生成结果,这样生成的结果就是多样的,并且与其它模板相比,它的正式度要更高一些。

腾讯刘天宇:可控、可靠的数据到文本生成技术

下面再来看一个离散变量,这里不再是一个单变量了,而是一个隐变量序列,我们用这个序列去建模生成顺序。上图左侧是一个餐馆领域的数据集。我们可以根据同一个数据集产生五个对应的描述,并且描述的每个部分,可以是短语或者单字,也可以是一个标点,它们下边都有一个小的数字,这就是它所对应的隐变量的编号。我们可以给定不同的隐变量的编号生成不一样的描述。

腾讯刘天宇:可控、可靠的数据到文本生成技术

上图中是用半马尔可夫的方式进行建模。它会规定片段的最大长度是多少。用x作为一个输入,隐变量z1、z4,有一个转移矩阵(Transition Matrix)去建模隐变量z1至z4的转换,根据不同的隐变量z1和z4还有一个生成模型,可以产生多个单词,比如z1是55,生成的就是Travellers Rest Beefeater。

腾讯刘天宇:可控、可靠的数据到文本生成技术

建模这个半马尔可夫结构,在训练时用的是sum_produc进行训练。在推断的时候,需要指定一个最大路径,用Vitebi算法,它是一个贪心算法,每一步就是选择当前最大的那个Probability对应的隐变量,不断往前推,就可以把它对应的隐变量的模板序列导出来,之后再放到生成器里边就可以生成一个描述了。

腾讯刘天宇:可控、可靠的数据到文本生成技术

上图中展示了不同的五个模板。

--

07

数据到文本生成-隐式规划vs显式规划

下面对显示规划和隐式规划进行一下总结。

首先,显式规划包括:内容选择规划,描述顺序规划和描述句式规划。它的优缺点如下:

  • 【优点】细粒度控制段落结构、描述顺序、句式结构。
  • 【优点】规划可解释性较强,因为我们可以看到它的规划是什么。
  • 【优点】在明确规划定义情况下,训练容易。
  • 【缺点】规划依赖数据和文本之间的对齐,必须有一个清晰的对齐才能产生一个可解释的规划。

显示规划多应用于赛事播报、商品描述、智能写作辅助等领域,在生成长文本的场景下的优势更加明显。

隐式规划,包括:MoE离散隐变量规划,变分连续隐变量规划,以及链式离散隐变量规划。它的优缺点包括:

  • 【优点】只需定义隐变量结构,无须明确知晓数据-文本对齐。
  • 【优点】比较成熟的隐变量推断方法,较容易融入统计约束。
  • 【优点】方便多次采样,可以产生多样的文本描述。
  • 【缺点】训练可能不稳定,调参比较困难,且训练步骤偏多。

隐式规划更擅长短/中文本生成,适合应用于广告标语生成、营销文案生成、评论生成等领域。

--

08

数据到文本生成-数据描述评价

本章节在此不做讲解,可以参考以下PPT内容了解。

腾讯刘天宇:可控、可靠的数据到文本生成技术

腾讯刘天宇:可控、可靠的数据到文本生成技术

腾讯刘天宇:可控、可靠的数据到文本生成技术

腾讯刘天宇:可控、可靠的数据到文本生成技术

腾讯刘天宇:可控、可靠的数据到文本生成技术

腾讯刘天宇:可控、可靠的数据到文本生成技术

腾讯刘天宇:可控、可靠的数据到文本生成技术

--

09

答问环节

Q:变分和端到端的生成哪个生成质量更好?

A:变分的训练比较困难,有条件做端到端的训练,效果会更好一些。变分训练的时候不太稳定,有时甚至要调一下学习种子才能生成比较稳定的文案。

Q:隐式规划训练过程中可能会不稳定,能否分享一些如何让这个训练更加稳定的经验?

A:大家用的比较多的是VAE,训练里有一些技巧。比如后验坍缩的情况,变分网络很快就跟先验分布完全一致了,无法起到变分的效果,再去从z里面高斯采样,经过后验网络产生真实z的分布,其实都无效化。所以可以给KL损失函数乘上一个权重,训练的时候权重逐渐增大,达到模拟退火(KL annealing)的效果。

Q:隐式模型训练之前会有一些对冷启动的处理吗?

A:冷启动的处理是可以的,比如预训一个数据描述的网络,输入还是有x的,输入还有一个z,z是隐变量,如果p(y)从一个很好的预训练语言模型开始,整个表现会更好。


今天的分享就到这里,谢谢大家。

阅读更多技术干货文章、下载讲师PPT,请关注微信公众号“DataFunTalk”


分享嘉宾:刘天宇博士 腾讯

编辑整理:蔡丽萍/李瑶 TRS/DataFun

出品平台:DataFunTalk


01/分享嘉宾

腾讯刘天宇:可控、可靠的数据到文本生成技术


02/报名看直播 免费领PPT

腾讯刘天宇:可控、可靠的数据到文本生成技术


03/关于我们

DataFun:专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章700+,百万+阅读,14万+精准粉丝。


欢迎转载分享评论,转载请私信。