Auto Byte

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

微信扫一扫获取更多资讯

Science AI

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

微信扫一扫获取更多资讯

冯骁骋作者

IJCAI 2018 基于主题信息的神经网络作文生成模型

本文介绍哈尔滨工业大学社会计算与信息检索研究中心(SCIR)录用于IJCAI 2018的论文《Topic-to-Essay Generation with Neural Networks》,在本文中,我们提出了段落级作文生成任务,其输入为固定个数的话题词,输出是一段关于这些话题词的作文描述;在方法层面,我们采用Seq2Seq的神经网络框架,针对多主题输入情况,我们加入主题感知的coverage方法,使得作文能够在表达不同主题语义的情况下,着重针对某一主题进行表述。我们自动构建了两个作文相关语料库,并通过客观和主观评价说明我们的模型结果均优于基线方法。本论文的实验代码和数据已经开源:https://github.com/hitcomputer/MTA-LSTM

论文作者:冯骁骋、刘家豪、秦兵、刘挺 

关键词:文本生成,神经网络,作文生成 

联系邮箱:xcfeng@ir.hit.edu.cn 

个人主页:http://ir.hit.edu.cn/ xcfeng/

1. 引言

随着近几年来人工智能的飞速发展,我们想要去验证一下机器是否真的能够像人一样能说会道,其中作文自动生成可以看作是一个极具代表性的任务,不仅需要计算机去理解题意还要计算机针对所理解内容生成较长篇幅的作文,这其中逻辑通顺、语义连贯、主题明确、表达清晰都是所要研究的难点,针对这一问题,我们定义了段落级作文生成任务,其输入是多个话题词,输出是围绕这些话题词的一些文本,可以看作是段落级的作文。图1给出了具体示意,其输入的话题词是“妈妈”,“孩子”,“希望”,“长大”和“母爱”。

图1 用五个主题词生成的段落示例

在方法层面,我们希望模型能够接受多个话题词的控制,生成包含这些语义的一段文本,并且篇幅较长。为此我们提出了一个主题感知(Topic-aware)的生成模型。具体而言,我们构建了一个多主题的Coverage向量,它学习每个话题词的权重并且在生成过程中不断更新,然后,Coverage向量输入到注意力网络中,用于指导文本生成。与其它的Coverage方法不同的是,我们会预先对多个话题词进行估计,找到一个最核心的词作为整个段落的主题,这样我们的模型能够保证所生成的段落可以覆盖所有的话题词也能够保持一个较为明确的主题。此外我们还自动构建了两个段落级的中文作文生成语料,包含305,000个作文段落和55,000个知乎文本。实验表明,我们的主题感知生成模型在BLEU 指标上相比于其他模型获得了更好的结果。而且人工评价结果表明我们所提出的模型有能力生成连贯并且和输入话题词相关的段落文本。

2. 方法

本小节将详细介绍我们的作文生成模型。首先,我们直接将话题词的词向量进行平均,利用平均后的向量来表示话题词集的语义,并通过这一向量来控制LSTM-based decoder进行文本生成。在此之后,我们引入了注意力网络(Attention Network)对话题词和生成词语之间的语义关联进行建模。最后,我们对Attention-based LSTM模型进行扩展,引入覆盖机制(Coverage Mechanism ),该机制能够动态跟踪注意力网络的历史信息,从而加强对还未进行表达的话题词的关注度,最终使得生成文本能够包含所有的话题词语义信息。

2.1 基于词向量平均的文本生成模型(Topic-Averaged LSTM,TAV-LSTM)

本部分我们将介绍基于词向量平均的文本生成模型,这是我们方法的基础版本,采用向量平均的方法来求得话题词集合的语义表示。由于LSTM 模型在文本生成任务中有着非常卓越的表现,所以我们采用LSTM 模型作为生成器解码器。在传统的Encoder-Decoder 模型中,Encoder 部分往往负责将一个长序列(比如一个句子)表示成固定维度的向量,而Decoder 部分则是根据这个向量表示来生成另一个序列。在本文中,我们将话题词平均作为输入,用LSTM进行解码来生成一段文本,具体如图2上部分所示:

图2 基于词向量平均的文本生成模型与基于注意力网络的文本生成模型

我们按照如下公式计算得到话题词集合的语义表示,并将其作为Decoder的初始状态,用于控制其生成文本,

其中T是话题词集合的向量表示,k为输入话题词的个数,表示第i个话题词。具体的解码过程与机器翻译相似,这里就不做过多赘述。

2.2 基于注意力网络的文本生成模型(Topic-Attention LSTM,TAT-LSTM)

上述主题平均模型是直接将话题词的词向量进行平均,也就是说每一个话题词都被同等的对待,相当于我们认为话题词之间是没有重要性差别的。然而这种方法会带来一些歧义,使得话题词集合的语义表示并不是唯一的,例如某个话题词集合向量表示为[0.6, 0.8] ,那么它可以通过两个不同的话题词集合A:[0.5, 0.9] 和[0.7, 0.7] 、B:[0.3, 0.6] 和[0.9, 1.0] 来获得。针对这一问题我们引入了注意力机制(Attention Mechanism)。其作用主要有两方面,一是可以很好的实现对生成文本的控制;二是注意力机制可以刻画话题词和生成文本间的局部相关性,这是符合人类作写规律的。当人类完成一大段作文书写时,显然是某些句围绕一个话题词,而其他句围绕别的话题词,不可能每一句都是包含整个话题词集的语义,这样写出来的作文才具有一定层次感和逻辑关系,符合人们的写作规律。而注意力机制能很好的刻画这种局部相关性,因为在生成每个词时Attention结构会对话题词自动分配不同的权重,即相当于当前生成的这部分由权重比较高的几个话题词所决定。模型结构图如2下部分所示,具体计算细节可以参照原文。

2.3 多主题感知生成模型(Multi-Topic-Aware LSTM, MTALSTM)

虽然上面的注意力模型已经很好地利用话题词的语义信息了,但我们发现这个模型并不能够保证生成的文本包含话题词集的所有语义信息,也就是说可能有话题词所带的语义并没有出现在最终生成的文本内容中。针对这一问题我们提出了多主题感知模型(Multi-Topic-Aware LSTM),具体的结构如图3所示。我们在传统的注意力公示上进行修改,引入coverage机制,如图3所示,我们引入了变量,我们期望用这个变量来表示每个话题词有多少信息已经被生成,同时还有多少信息没有被生成。首先,对于一个话题词,初始值为1,即 = 1(表示话题词k未生成的信息为1,已生成的信息为0);然后计算attention系数,会对这个计算过程产生影响,对于一个剩余信息还很多的话题词应该相应增大它的attention系数,反之对于一个已经生成很多信息的话题词应该减小它的系数,attention系数的计算公式如下:

的更新公式为:

其中表示话题词k最终所要生成文本的多少,对不同话题词有不同的估计,也因此能够保证有一个主要的话题词被更好的表达,. 从图3中我们可以看到,每生成一个词发生一次变化。

图3 多主题感知生成模型(c是主题词的coverage向量)

2.4 训练

我们采用和机器翻译一样的训练目标,最大化极大似然估计。

在生成策略上为了保证文本的多样性,我们采用beam-search+sample的策略,beam为10,从中随机选取一个作为文本生成结果。

3. 实验

3.1 语料构建

在本文中,我们的研究内容是作文自动生成,更具体的,是生成更多符合多主题的作文文本,为此我们建立一个作文语料库(ESSAY)。写作是中国高考语文卷中的一道大题,因此在互联网上有很多优秀作文样例供广大考生学习。所以,我们打算直接收集这些数据作为训练语料,同时为了保证爬取的文本质量,我们只对那些有评语和评分的作文进行爬取。具体过程如下,1)我们首先爬取了228,110 篇作文,并且这些都是老师评分比较高的;2)由于我们针对的是段落级文本生成任务,所以从这些作文中筛选出词数目在50-100的段落,组成我们的语料数据集;3)我们和诗歌生成一样,用textrank从这些段落中抽取出关键词作为话题词集。具体的语料集数量如表1所示。此外,由于作文语料库是由textrank抽取算法得到的话题词,其结果必然存在一些噪声。为了解决这一问题,我们又爬取了知乎语料库(ZhiHu),在这个数据集中,每个问题文本都有用户给出的1到5个话题词,和作文语料库类似,我们爬取那些词数目在50-100并且有五个话题词的段落,构建语料库,具体数量如表1所示。

表1 数据集信息(T代表主题词的数量)

3.2 实验设置

我们利用哈工大社会计算与信息检索实验室开发的LTP平台对两个语料库的中文进行分词。选择了50,000个高频词作为模型的训练和测试词表。词向量维度为100,用word2vec对之前所有爬取的作文语料进行训练,LSTM隐层为800。模型参数为均匀分布初始化[−0.04, 0.04]。Dropout为0.5,采用AdaDelta算法进行更新,测试阶段采用beam-search+sample的策略。

3.3 实验结果

我们首先对提出的各个模型和一些baseline方法进行人工评价,评价指标为话题完整性(Topic-Integrity)、话题相关性(Topic-Relevance)、流畅度(Fluency)和连贯性(Coherence),每一项由三个人进行1-5的打分,之后进行平均,其评测结果如表2所示。在人工评价中,我们对三位打分人员的一致性进行了测试,kappa 值、t检验、Pearson系数都满足要求。

表2 不同方法在ESSAY数据集上得到分值的平均值(最优值用粗体标出)

为了进一步支持人工评价的结果,我们利用BLEU评价指标对实验结果进行了自动评价,结果如图3 所示,各模型性能与人工评价基本一致。接下来我们给出一个较好的生成样例(表4),其输入的话题词为“现在”、“未来”、“梦想”、“科学”和“文化”。

表3 不同方法在ESSAY数据集和ZhiHu数据集上得到的BLEU-2分值

表4 MTA-LSTM模型利用五个主题词生成的段落示例

4. 结论

在本文中,我们提出了面向多主题的段落级作文生成任务,并且针对这一问题开发了主题感知模型。为了进一步验证模型的好坏,我们自动构建了两个语料库,分别是作文语料库和知乎语料库,并在这两个语料库上对不同模型进行比较。人工评价和自动评价结果均显示我们的多主题感知作文生成模型能够获得最好的效果。在未来的工作中,我们将尝试融合一些外部知识和逻辑表达到现有模型中去,以期生成可读性更强的作文文本。

哈工大SCIR
哈工大SCIR

哈尔滨工业大学社会计算与信息检索研究中心

入门文本生成神经网络作文生成
3
相关数据
信息检索技术

信息检索(IR)是基于用于查询检索信息的任务。流行的信息检索模型包括布尔模型、向量空间模型、概率模型和语言模型。信息检索最典型和最常见的应用是搜索引擎。

权重技术

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

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

参数技术

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

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

机器翻译技术

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

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

生成模型技术

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

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