mysql的sql生成一个唯一值作为一列_文本生成2:Data-to-text Generation with Entity Modeling...

585dbb8b-2e22-eb11-8da9-e4434bdf6706.png

代码已经实现了开源:

ratishsp/data2text-entity-py​github.com
5a5dbb8b-2e22-eb11-8da9-e4434bdf6706.png

论文地址:

Data-to-text Generation with Entity Modeling​arxiv.org

欢迎随时私信或评论探讨~我会尽量做到秒回的。

导语:

前面我们讲了一些基于VAE或者GAN的生成模型用以文本生成,今天想要讲一篇data to text的paper。paper来自19年的ACL,而且代码也已经实现了开源。

摘要:

大多数的文本生成工作都要感谢大数据和end-to-end的NN架构。这些模型都依靠学习一个良好的表示使得文本生成能够选择合适的context、将文本逻辑清晰的组合、以及合乎语法的表述出来。

在这项工作中,我们提出了一个以实体为中心的神经结构的数据到文本生成。这里的实体表示是dynamically updated.文本生成是在每个时间戳中,利用了hierarchical attention根据data input 和实体表示entity memory representations得到的。

最后是实验部分:

We present experiments on the ROTOWIRE benchmark and a (five times larger) new dataset on the baseball domain which we create. Our results show that the proposed model outperforms competitive baselines in automatic and human evaluation.

1 介绍:

本文最大的特点是提出了一个以实体为中心的神经结构的数据到文本生成。例如下图,一个baseball的比赛会产生很多数据,右边的text是描述

5d5dbb8b-2e22-eb11-8da9-e4434bdf6706.png

3 Background: Encoder-Decoder with Conditional Copy

这个seq2seq模型的输入是figure1的那些数据记录表格,每条记录都被表示为

,其中L是
记录j中特征的数量。 特征是什么东西?例如,
: e.g., 8.0, Baltimore)或者
实体
:e.g., Orioles, C. Mullins)都可以被认为是特征。模型输出y是一个包含了单词
的文档,其中|y|表示单词的数量。跟以往工作一样,我们构建了特征的embedding,然后通过RELU和一个W得到每个record(记录)的向量表示:

645dbb8b-2e22-eb11-8da9-e4434bdf6706.png

其中,

(这里的n原文没有给详细解释但我想应该是embedding的维度)。“;”表示拼接的意思。

这个就是encoder的model。输入table r,输出record的向量表示。

现在看看decoder的构造。

记为encoder的output。给定过去的hidden state和
,我们是利用LSTM来计算每个target word 的概率。然后第一个decoder 的 hidden state就是record vectors的平均,也就是

这里多嘴一句,在作者的第二个任务MLB中(也就是图一的比赛数据文本生成),考虑到比赛的主要事件都是按时间顺序记录,所以作者用了bi-LSTM作为编码器。

让我们再看看decoder是如何利用过去的hidden state和

得到target word的呢?这里用到了attention。直观理解就是我先看看当前的状态下,我应该关注table中哪个record,进而生成什么逼话。公式如下:

665dbb8b-2e22-eb11-8da9-e4434bdf6706.png

什么意思呢?我们计算在time step t,先计算encoder的每个输出

(key)和当前状态
(query)的attention得分
,再和
(value)相乘相加得到
(文中叫dynamic

context vector) ,最后再和hidden state

做一个简单的拼接,权重矩阵和tanh得到
。随后利用下式得到
的分布:

685dbb8b-2e22-eb11-8da9-e4434bdf6706.png

695dbb8b-2e22-eb11-8da9-e4434bdf6706.png

此外,模型还采用了copy mechanism。他可以让某些时候t,某些记录r,直接copy到output(

)显然这样有助于一些实体信息的保留,生成更高质量的文本。简单来说就是利用attention计算一个关于size为input的shape的vector。每一维都代表r被直接copy的概率。最后还有一个gate用来控制output是来自
copy mechanism or not。(具体可以看看参考中的copy mechanism)

4 Entity Memory and Hierarchical Attention

作者用上面这2个方法改进我们前面提到的model。首先是实体记忆(Entity Memory),为每个唯一的实体k计算记录表示(record representation,例如下式为

计算的结果)的平均

6e5dbb8b-2e22-eb11-8da9-e4434bdf6706.png

这里我个人的理解是

对照着record的某一列(比如说第二列)对查询,如果存在实体k则进行累加后求平均,最后就得到了关于实体k的平均表示

更进一步的,为了让这些实体在decoder的时候有更好的表示(直接用

求平均肯定不是什么好的特征)我们都过下面的式子获得

6f5dbb8b-2e22-eb11-8da9-e4434bdf6706.png

那么为什么是存在

这个下标呢?作者紧接着解释,为了更好地描述“
一篇描述性文本时常从一个实体说到另一个实体”这个特征(例如Brad Kelly在文本前面有描述,而Dozier却只出现在后面,还有一些实体从头到尾都出现的像球队的名称),我们需要given timestep t的情况下不断更新
来适应这个变化。显然
就是
的初始状态。

搞清楚这个变量以后我们结合下面的Entity Memory model讲解。这个model的目的就是在timestep t的时候,不断的更新

。其中,
是第三节提到的decoder的LSTM的hidden state。这里一共有
个实体。

715dbb8b-2e22-eb11-8da9-e4434bdf6706.png

上面说了在每个timestep t都会尝试更新

,那么我们还可以加一个gate
来决定entity representation在时间t需不需要更新:

745dbb8b-2e22-eb11-8da9-e4434bdf6706.png

我们还可以计算

来控制entity representation需要改变的程度,以及新的候选实体

765dbb8b-2e22-eb11-8da9-e4434bdf6706.png
element-wise multiply是每个矩阵元素对应相乘的意思。我个人觉得候选的utk计算不是很对

如果需要更新实体k,则gate

会产生一个接近1的值;如果
也接近1,那么
对应的值就会被更新。显然,这一块的机制
像极了LSTM的遗忘门机制。最后的
从下式得到:

795dbb8b-2e22-eb11-8da9-e4434bdf6706.png

说完了Entity Memory ,再看看Hierarchical Attention,简单来说就是我们有一个假设,确定实体分布是有助于提高文本生成的精度的,因为实体分布(the entity distribution)确定下来以后是能够约束每个实体相关联的记录分布的似然的(the probability distribution of records)。所以作者用多层的概念构建attention。那么他是如何实现?模型如B块所示:

7b5dbb8b-2e22-eb11-8da9-e4434bdf6706.png

为了方便说明我们把encoder output

记为2维张量
,其中
K是实体的表示 Z代表关于该实体K的记录表示。并且在生成位置j,存在与(k,z)的一一映射(即我能知道任意一个实体K的记录Z相对于位置J的value是多少),那么现在开始计算关于
的第一层attention:

7d5dbb8b-2e22-eb11-8da9-e4434bdf6706.png

得到了

之后,我们再想想之前的
Entity Memory model是不是也得到了一个关于时间t的实体表示
?在第二层的attention计算中,
为query,
为key,
为value,即:

805dbb8b-2e22-eb11-8da9-e4434bdf6706.png

825dbb8b-2e22-eb11-8da9-e4434bdf6706.png

最终得到

(文中叫dynamic context vector),这里和第三节
background提到的公式2的
是一摸一样的,也就是作者第四节实际上是改进了
的构造。最后和公式三一样得到了生成的文本

685dbb8b-2e22-eb11-8da9-e4434bdf6706.png

第四节整个model如图:

865dbb8b-2e22-eb11-8da9-e4434bdf6706.png

5 Training and Inference

很常见的训练方法最大似然,inference的时候就选取概率最大的作为output game summarizes。

875dbb8b-2e22-eb11-8da9-e4434bdf6706.png

6 Experimental Setup

data:

采用了 ROTOWIRE(Wiseman et al., 2017,包含了NBA篮球比赛数据和人工的比赛报道;以及MLB(a new dataset which contains baseball statistics and corresponding human-authored summaries obtained from the ESPN website.[1]

更具体的实验可以参考一下原文。

参考文献:

Sam Wiseman, Stuart Shieber, and Alexander Rush. 2017. Challenges in data-to-document generation. In Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, pages 2253–2263. Association for Computational Linguistics.​aclweb.org Ratish Puduppully, Li Dong, and Mirella Lapata. 2019. Data-to-text generation with content selection and planning. In Proceedings of the 33rd AAAI Conference on Artificial Intelligence, Honolulu, Hawaii.​arxiv.org

关于copy mechanism、pointernet可以看看下面

阮智昊:NLP硬核入门-PointerNet和CopyNet​zhuanlan.zhihu.com
885dbb8b-2e22-eb11-8da9-e4434bdf6706.png

本文作者采用的方法是参考下面这个paper:

Caglar Gulcehre, Sungjin Ahn, Ramesh Nallapati, Bowen Zhou, and Yoshua Bengio. 2016. Pointing the unknown words. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 140–149.​doi.org

参考

  1. ^http://www.espn.com/mlb/recap?gameId={gameid}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值