五分钟学会ai算法(摘要和生成算法专场)

AIS (ACL、IJCAI、SIGIR) 2018

Session9: Summarization and Generation

五分钟学会ai算法(摘要和生成算法专场)(1)

五分钟学会ai算法(摘要和生成算法专场)(2)

1 叶亚杰 北京大学

Language Generation via DAG Transduction

五分钟学会ai算法(摘要和生成算法专场)(3)

第一部分首先介绍我们的任务。我们的任务就是把语义图还原成原始的句子。论文中使用的语义图叫做 Elementary Dependency Structure。它是一种 type-logical semantics的语义图,它的特点是非常平坦的并且是多根的,和具有层次结构的语法树也有很大区别。用传统的基于 DAG 自动机的方法去处理EDS 这样语义图会遇到一些困难。为了解决这些问题,我们在传统的基于有向无环图 (DAG) 的自动机方法基础上提出了一种新的 DAG Transducer。

EDS 这样的语义图一般都是边上有标记,但是实际使用过程中,需要边上没有标记,我们简单的把一个边上的 label 变成一个特殊节点,这样做在解决问题的同时也不损失原来的信息。我们使用的 DAG Transducer 基于DAG 的自动机。DAG 自动机中的一条规则: 当一个结点入边集合有 M 个状态时, 就可以在出边集合上放 N 个状态,这就完成了一个从入边到出边转换的过程。整个 DAG 自动机的目的就是:对一个没有边标记的 DAG 图的边上加上状态标记,然后根据规则集合给整个图打一个分,我们的目标就是要选一个得分最高的标记方法。

第二部分介绍我们设计的 DAG Transducer 的基本思想。传统的 Transducer 基本上是基于改写的,即把一个节点改写成一个子图或者一个子树,在不断改写过程中,把整个结构变成了另外一个结构。但是我们使用一种比较新的方法,即我们并不基于改写,而是基于副作用。在识别语义图的每一个节点的同时写下跟这个节点有关的信息。这些信息就是识别过程产生的副作用,它们可以是任意表达式或者约束。在论文中,我们将语义图转变为一组等式,这些等式描述了句子是怎样由每个词拼接成的。我们去解这些等式,就可以把一个语义图变成了它所代表的句子。解这些式子的过程,其实可以写成一棵树。

我们的 NLG 系统基本框架分为两部分:第一部分就是用我们的 DAG Transducer 把一个语义图变成词原形的序列;第二部分是用 sequence-to-sequence 的方法给每一个词原形加上词形变化。

第三部分介绍怎么提取 DAG Transducer 使用规则。规则都是从训练数据集中提取出来的。为了取得更好效果,我们使用了 fine-to-coarse 策略,即整个系统会有三种级别的规则:第一种是 induced-rules,即归纳推导出来的规则。这个规则是最直接的,最合理的规则。我们使用这种规则来提高系统的准确性;第二种是 extended-rules,它通过稍微修改induced-rules 得到;最后一种是 dynamic-rules 在完成语义图到句子的转变过程中,当规则不够的时候,我们会动态生成这种规则。我们使用这种规则来提高系统的鲁棒性。

提取 induced-rules 的具体方法是:首先从一个语意图的 TOP 节点出发, 用一些启发式的规则做一次特殊的深度优先搜索。接着我们就沿着搜索树自底向上合并节点的区间, 合并完成后,图中一些边会关联一个区间列表。然后我们会把这个语义图边上的区间列表和训练数据集中给的语法树做一个对齐, 最后我们使用对齐后得到的语法树节点的 label 作为每个边上的状态的 label。根据边上区间的关系,不难写出规则。

第四部分介绍实验结果。与这个任务在 AMR 数据集上结果以及我们设计的 baseline 对比,我们的 Transducer 在 EDS 数据集上取得更好的效果。

五分钟学会ai算法(摘要和生成算法专场)(4)

2 邱锡鹏 复旦大学

Toward Diverse Text Generation with Inverse Reinforcement Learning

五分钟学会ai算法(摘要和生成算法专场)(5)

(备注:本次AIS论文预讲会由施展代替邱锡鹏作口头报告)

文本生成是一个非常重要的任务,它是广泛用在机器翻译、看图说话、文本摘要和对话系统方面。

我们的目标是生成更加真实的句子。深度生成模型几个通用的做法:第一种是直接用MLE做其他矢量估计的做法;第二种是跟GAN相关的做法;第三个是这篇文章使用的逆向强化学习的一种做法。

为了让GAN能应用于文本领域,有两种方法:一种是用SeqGAN、RankGAN的做法,把强化学习的方法引入进来。第二种方法是用Gumbel-softmax的方法,用连续的方式来逼近one-hot向量,使梯度能够传回去。这种做法的好处是,生成的句子更加真实,缺点是训练不是很稳定,训练也比较困难。

我们的方法使用逆向强化学习的方法进行文本生成。从生成器和训练集中生成一个反馈,再通过反馈更新生成器,能够生成出更好的文本。通过不断地交叉训练,最后能生成很好的文本。

一个基本假设:一个文本t概率分布跟t得到的反馈能量函数的形式成正比。

第二个假设,我这个t可以分解到每一步的决策过程,这样的话每个决策的时候都能够得到一个反馈,这样最后我的反馈就不会太稀疏,不会全部生成完了才会有反馈。

怎样去优化反馈参数呢?最大化训练集中那些数据,公式中有log z,最大化的时候,就要减掉那个log z,这就是和直接MLE有本质区别的地方。然后你对它进行梯度求导之后可以得到一个式子。它的物理意义在于,我从真实数据中采样得到一个反馈,拉大从真实数据中采样的反馈,跟我从生成器中反馈的差距。也就是说要获得这样一个反馈参数,使得真实数据的反馈,包括生成器生成的假数据得到的反馈要低。

我在改进生成器过程中使用的是policy gradient加entropy-based,这两个做的是等效的,它们展开是一样的表达。

实验频次跟实验数据主要有两种方式:第一种是用Oracle Dataset,测试likelihood。第二种是在真实文本上做实验,我们用Backward Bleu。跟MLE、SeqGAN、RankGAN、LeakGAN做了比较,我们的结果要优于他们。

最后解释一下我们的方法能够减轻模型塌缩的原因。第一个是因为Max-entropy RL会寻找多峰的策略分布,而不是一个单峰的策略分布。第二步是一个软数据分布假设。

五分钟学会ai算法(摘要和生成算法专场)(6)

3 冯骁骋 哈尔滨工业大学

Topic-to-Essay Generation with Neural Networks

五分钟学会ai算法(摘要和生成算法专场)(7)

在这个任务中,我们定义了一个面向主题词到作文的工作,我们希望输入一些不同的主题词,由这些主题词生成一个围绕这些词的段落,这个段落相对较长,并且要求自然语言表达相对流畅的文本。这里提了两个额外的挑战,一个是主题的完整性,我们希望生成整个段落中包含所有输入的主题词的语义信息。其次是主题相关性,我们希望生成每一句话都可能对我的作文主题有所帮助,并不是说一些白文。

还有我们依旧要应对生成任务中连贯性和逻辑的表示。我们在传统的Sequence-to-Sequence的框架下进行了两个点改进,一个是基于topic的注意力机制,另一个是多主题覆盖机制。

首先看一看最基本的模型,基于主题平均的模型,我们将所有输入的主题词进行一个平均,把这个当成我们的主题向量,然后用一个LSTM进行解码。这个方法有一个问题,我们这个输入的五个词,它的平均可能也是被其他5个词所平均,导致一个主题不明确的问题。所以我们加入了一个注意力的机制。

在此基础上,我们提出了Multi-Topic-Aware LSTM,这和传统的方法有什么区别?我们希望这5个话题词,都能够在生成的段落中被包含。但是,这个和之前的模型还有一些不同。因为写作文需要一个真正的主题,并不是说每段、每句话都分别围绕一个主题,这样整个论文会写得很散,所以我们会在原来的覆盖机制基础上加入了一个衰减的系数,我们希望控制每个主题不同的减缓速度,保证有一个主题会更加突出。

我们整个模型的训练过程是采用了最大化似然估计的方法,在解码阶段采用了不同的方法,就是一种Beam-search Sample的方法,我们从中选择十个最好之后,随机选择一个,并不是像以前Beam-search一样直接选择最好的方法,我们发现它能有效增加作文生成的多样性。

同时我们构建了两个相关的语料库。我们爬取了一些得分比较高的、有评论信息的文章,对它进行分段处理。之后抽取了一些关键词,将这些关键词作为作文的话题词,作为一个输入。此外,我们发现在知乎语料上有很多人问一些问题,并且会人工给一些话题词,我们就把这个也爬取下来了,构建了第二个语料库,就是基于知乎的文本生成语料。

在评价方面,我们采用了人工和自动相结合的方式。在人工评价上采用1到5分进行打分排序。在主题完整性和主题相关性可以看到,我们的方法获得了很好的效果。我们还发现随着模型的复杂程度的增加,文章的生成长度也是在逐渐变长的。

这里对比了两个生成方法,一个是基于诗歌生成的PNN,一个是基于覆盖注意力的SC-LSTM。为了验证人工评价的有效性,我们还进行了BLEU的自动评价,它的结果也是符合人工评价的趋势,我们所提的多主题感知的模型,获得了最好的效果。

五分钟学会ai算法(摘要和生成算法专场)(8)

4 马树铭 北京大学

Autoencoder as Assistant Supervisor: Improving Text Representation for Chinese Social Media Text Summarization

五分钟学会ai算法(摘要和生成算法专场)(9)

这篇工作是关于中文社交媒体文本的摘要,先跟大家简单介绍一下任务。这是一个例子,左边是一则微博,内容是关于一篇新闻。右边是这个新闻对应的摘要,航班多人吸烟,机组人员与乘客冲突。可以看到这个任务的目的是在保留原文本含义的基础上,对社交媒体的文本进行一些总结和概括。

做摘要一般有两种方法:一个是抽取式的摘要,一个是生成式的摘要。我们这篇文章是采用的生成式摘要的方法。生成式摘要一般用Seq2Seq Model,它大体的框架就是,先把一个文本用一个encode编码成文本的表示,再用decode生成出对应的摘要。我们用这个模型进行一些尝试的时候发现了一些问题,因为社交媒体文本中,一般会有一些非正式的表达,甚至有时候会出现一些错别字。这种情况下,encoder会把文本编码成一个有偏差的文本表示,最后会生成一个错误的摘要。

要解决这个问题,我们能想到一些解决的方法,第一种方法是基于规则的方法,对这些噪音进行纠错。我们知道社交媒体文本的噪音是各式各样的,我们很难说找到一套规则能够覆盖大部分的噪音。第二个方法,我们有一个模型让它自动纠错,但是我们的数据集中没有这些标注信息的,要专门做标注,也是非常耗费人力和时间的。

所以最后一个比较现实的方法,就是让我们的摘要模型自己去学会生成一个无偏的文本表示。针对这个问题,我们提出了一个方法,就是用一个summary的Autoencoder去监督这个Seq2Seq模型,让它能够生成一个无偏的文本表示。Summary encoder能够生成一个summary的文本表示。摘要一般比较短,而且没有噪音,并且更重要的是,它跟原文本之间的语义信息含义是一致的,所以我们可以把摘要的文本表示当成一个原始文本表示的近似无偏的估计。

具体的方法。我们先构建了一个attentionbased Seq2Seq model和一个Autoencoder,然后我们用训练数据集中的摘要,对这两个模型进行监督训练。最后最小化这两个模型之间文本表示它们的距离,达到监督训练的目的。这是训练阶段。

在测试阶段,并不需要Autoencoder,我们只需要用Seq2Seq进行进行编码解码生成摘要。

训练阶段,我们还加入了对抗训练的方法。我们引入了一个判别器,让它去区分原始文本的文本表示和摘要的文本表示。

实验部分。我们的数据集是一个大规模的微博的摘要数据集,包含了240万的文本摘要对。我们选取了文本摘要的标准评价方法ROUGE,来评价我们的模型。我们把我们的模型和之前一系列相关做文本摘要的模型进行了对比。可以看到,我们的模型是能够超过所有模型,达到比较好的效果。

根据进一步的实验表明,我们提出的方法能够大幅度地提高Seq2Seq encoder在情感分类上的准确率,这说明我们的方法确实能够训练出更好的encoder,它能够得到更好的文本表示。

我们的代码已经开源了,欢迎大家下载使用。

五分钟学会ai算法(摘要和生成算法专场)(10)

5 李浩然 中科院自动化所

Multi-modal Sentence Summarization with Modality Attention and Image Filteringe

五分钟学会ai算法(摘要和生成算法专场)(11)

首先,第一个模块是层次化的编码。我们利用双向RNN对文本进行编码,利用CNN对图片进行编码。接下来我们还需要对图片以及文本进行加权分别生成图片和文本上下文向量,也就是所谓的Attention机制。在此之上,我们引入了基于模态的Attention,我们认为有些词文本提供信息比较多,有些词图片信息提供的比较多,所以说需要平衡一下两个模态之间的注意力。

第二个是图片过滤器,我们综合分析该图片对于文本主题以及当前解码状态的相关性,提出基于图片注意力和基于图片上下文向量的图片过滤器,希望进一步平衡模态之间的权重,或逐元素滤除图片带来的噪音。

第三个对于解码器的初始化。传统基于文本的解码器,初始化时只用了源端文本特征。在多模态里,我们希望利用图片信息对这个解码器进行初始化。我们使用了基于图片CNN全连接层和卷积层的特征。

最后一个策略就是多模态的覆盖度机制。受文本覆盖度机制启发,我们设计了基于视觉信号的覆盖度机制,当我们解码的时候,可能对图片的某些区域已经给了很大注意力了,后续解码过程中,对这些区域就不要重复地赋予很高的注意力了。我们希望借此减少重复词的生成。

最后是我们的一些实验结果。对于多模态的模型,但是不使用图片的过滤器,相对于只用文本信息,它的提升是非常少的。使用图片过滤器后,我们的模型得到了显著提升。对于不同解码器的初始化,基于卷积层的模态初始化是最有效的。另外我们发现多模态覆盖度机制对我们的任务有所帮助的。

五分钟学会ai算法(摘要和生成算法专场)(12)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页