2
雷锋网 AI 科技评论按:本文作者徐阿衡,原文载于其个人主页,雷锋网 AI 科技评论获其授权发布。
8月16日,在北京中科院软件研究所举办的“自然语言处理前沿技术研讨会暨EMNLP2017论文报告会”上,邀请了国内部分被 EMNLP 2017录用论文的作者来报告研究成果。整场报告会分为文本摘要及情感分析、机器翻译、信息抽取及自动问答、文本分析及表示学习四个部分。感觉上次的 CCF-GAIR 参会笔记写的像流水账,这次换一种方式做笔记。
本文分为四个部分,并没有包含分享的所有论文。第一部分写我最喜欢的论文,第二部分总结一些以模型融合为主要方法的论文,第三部分总结一些对模型组件进行微调的论文,第四部分是类似旧瓶装新酒的 idea。
Multimodal Summarization for Asynchronous Collection of Text, Image, Audio and Video
异步的文本、图像、音视频多模态摘要,一般的文本摘要关注的是 salience, non-redundancy,这里关注的是 readability, visual information,visual information 这里说的就是图片信息,暗示事件的 highlights。考虑一个视频新闻,本身有视觉模态和音频模态,通过 ASR,还可以产生文本模态,问题是如何将这些模态连接起来,产生一个附带精彩图片的文本摘要呢? 这篇论文就在讨论这个问题,整个模型输入是一个主题的文本以及视频,输出是一段附图片的文本摘要。
1、预处理:
视频产生图片:CV 基本思路,把 Video 切成一个个的 shots(镜头/段落),每个镜头可以 group(组合) 成一个 story(scene),每一个镜头还可以细分成 sub-shots,每个 sub-shot 可以用 key-frame 来表示,选择关键帧作为视觉信息,同时认为长镜头的图片相对于短镜头更重要,基于此对图片重要性进行打分。
音频产生文字:ASR。一方面语音识别结果并不十分准确,另一方面音频模态会有一些音频信号可以暗示我们哪些内容是重要的,基于这两点会产生两个指导策略,稍后提到。
2、文本重要性打分:
用 LexRank,句子是点,连线是重要性,进行随机游走,针对音频产生文字的两个特性使用两个指导策略:
如果语音识别结果和文本句子语义相同,那么让语音识别结果来推荐文本,反之不然;
如果语音信号比较明显,语音推荐文本,反之不然;
这两条指导策略会提升文本可读性。
3、图文匹配问题:
希望摘要能覆盖视觉信息,能解释图片,所以需要做一个文本图片分类器。图像 vcr 解码接两层前向网络,文本做一个高斯分布再求 fisher rank,也是接两层前向网络,最终将两个文本映射到同一个语义空间,计算匹配度。
一个问题是如何在复杂的句子里提出子句,作者提出了基于传统语义角色标注的方法,利用中心谓词提取匹配的 frame 信息(predicate, argument1, argument2),好处是可以抽取语义相对独立的部分,还可以通过 frame 的设定(只取施、受、谓词)过滤如时间等图片很难反映的信息。
4、目标函数:
提到了三个目标函数:
针对文本:对文本重要性奖励、冗余性惩罚
针对视觉:图片重要性(镜头时长),是否被文本摘要覆盖(是否有匹配)
平衡视觉信息和文本信息
下面一篇 Affinity-Preserving Random Walk for Multi-Document Summarization 多文档摘要也用到了图排序模型,这里略过。
Reasoning with Heterogeneous Knowledge for Commonsense Machine Comprehension
聚焦两个问题:如何去获取并且表示常识知识?并且如何应用获取到的常识知识进行推理? 论文尝试从多个不同来源的异构知识库当中获取了相关的信息,并将这些知识统一表示成了带有推理代价的推理规则的形式,采用一个基于注意力机制的多知识推理模型,综合考虑上述所有的知识完成推理任务。
任务类型: 在 RocStories 数据集上,在给定一个故事的前 4 句话的情况下,要求系统从两个候选句子当中选出一个作为故事的结尾。
推理规则:统一将知识表示成如下的推理规则的形式,在关系 f 下,元素 Y 可以由元素 X 推出,其推理代价是 s。
知识获取
主要从不同来源获取三类知识,包括:
事件序列知识(Event Narrative Knowledge)
捕捉事件之间的时间、因果关系(去了餐馆 -> 要点餐)
采用两个模型来捕捉这个信息,一种是基于有序的 PMI 模型,另外一个基于Skip-Gram的向量化表示模型,本质都是基于事件对在文本当中的有序共现的频繁程度来计算推理规则的代价的。
实体的语义知识(Entity semantic knowledge)
捕捉实体之间的语义关系。
以星巴克为例,捕捉的第一种关系是实体间的共指关系(coreference),比如说用“咖啡屋”来指代星巴克。从 Wordnet 来获取实体间上下位关系的知识。cost 是 1 当且仅当 X 和 Y 是同义词或者有上下位关系
第二种关系是相关关系(associative),比如说出现星巴克时可能会出现“拿铁咖啡”这一类与之相关的实体。通过 Wikipedia 中实体页面的链接关系来得到实体间的相关关系知识,Cost 是两个实体间的距离(Milne and Witten(2008).)
情感的一致性知识(Sentiment coherent knowledge)
捕捉元素间的情感关系
故事的结尾和故事的整体的情感应该基本上保持一致,否则结尾就会显得太突兀,那么这样的结尾就不是一个好的结尾。从 SentiWordnet 上来获得这种不同元素之间的情感一致性的知识。cost 为 1 if both subjective and have opposite sentimental polarity; 为 -1 if both subjective and have same sentimental polarity; 否则为 0
上述推理规则代价的计算方式不同,论文使用了一种类似于 Metric Learning的方式,通过在每个类别的推理规则上增加了一个非线性层来自动学习对不同类别的推理规则代价的校准。
另外,由于否定的存在会反转事件关系以及情感关系的推理结果,论文对否定进行了特殊处理。
知识推理
如何将规则用到阅读理解之中?换句话说,就是在给定一个文档和候选答案的基础上,如何衡量候选答案是否正确?首先将文档以及候选答案都划分为元素,整个推理的过程就被转化成了一个推理规则选择以及对这个推理的合理性进行评估的过程。
重要假设:一组有效的推理应当要能够覆盖住结尾当中的所有元素。换言之,结尾当中出现的每一个元素,都应当能够在原文当中找到它出现的依据。
对于同样的一个文档和候选答案,我们可以有多种多样不同的推理。
上面一个推理就是一组有效的推理,这组推理是很符合人的认知的。因为我们通常会通过 Mary 和 She 之间的实体共指关系、Restaurant 和 order 之间的序列关系以及 restaurant 和 food 之间的相关关系来判断这个结果是不是成立的。
这个就不怎么合理,因为我们不太会去考虑一个人和一个事件之间是不是有时序关系,以及考虑 walk to 这样一个动作和 food 之间的联系。
采用每一种推理的可能性是不同的,用 P(R|D,H)P(R|D,H) 来对这种推理的选择建模,基于元素独立性假设,得到下面的式子
是否选择一条推理规则参与推理一个假设元素 hihi,取决于对于原文当中推理得到 hihi 的元素 djdj 的选择,以及对于 djdj 到 hihi 之间推理关系的选择。然后将这个概率分布重新定义了一个重要性函数,与三个因子相关:
s(h,d)
文档中的元素与候选答案中元素的语义匹配程度
a(h,f) 以及 a(d,f)
一个元素与这条推理规则的关系的一个关联程度,使用一个注意力函数来建模这种关联程度
将原文到候选的推理代价定义成其所有有效的推理的期望代价
使用一个 softmax 函数来归一化所有候选的代价值,并且使用最大后验概率估计来估计模型当中的参数。
实验
三个 Baseline 进行了比较:
Narrative Event Chain (Chambers and Jurafsky, 2008)
仅仅考虑是事件与事件之间的关联信息
DSSM (Huang et al., 2013)
将文档和候选答案各自表示成了一个语义向量,并且计算它们之间的语义距离
LSTM 模型 (Pichotta and Mooney, 2015)
通过对先前的事件进行序列建模来预测后面发生事件的概率。
不同知识的影响
每一种知识都能够起到作用,移除任何一种知识都会导致系统的performance显著地降低。
推理规则选择方式加入 attention 机制的影响
其他
一是推理规则怎样产生更多更复杂的推理?二是训练数据,一方面,常识阅读理解数据还是很缺乏,可能需要半监督或远程监督的方法来拓展训练数据;另一方面,可能需要扩展更多的数据源。
Neural Response Generation via GAN with an Approximate Embedding Layer
生成式聊天系统可以看作是一个特殊的翻译过程,一个 question-answer pair 等价于 SMT 需要处理的一条平行语料,而 SMT 的训练过程实际上也就等价于构建问题和答案当中词语的语义关联过程。NMT 作为 SMT 高级版可以用来实现聊天回复的自动生成。这种新的自动聊天模型架构命名为 Neural Response Generation(NRG)。
而现在 NRG 存在问题是生成的答案严重趋同,不具有实际价值,如对于任何的用户 query,生成的结果都有可能是“我也觉得”或“我也是这么认为的”,这种生成结果被称为 safe response。safe response 产生原因如下:
The data distribution of chat corpus
The fundamental nature of statistical models
聊天数据中词语在句子不同位置的概率分布具有非常明显的长尾特性,尤其在句子开头,相当大比例的聊天回复是以“我”“也”作为开头的句子,词语概率分布上的模式会优先被 decoder 的语言模型学到,并在生成过程中严重抑制 query 与 response 之间词语关联模式的作用,也就是说,即便有了 query 的语义向量作为条件,decoder 仍然会挑选概率最大的“我”作为 response 的第一个词语,又由于语言模型的特性,接下来的词语将极有可能是“也”……以此类推,一个 safe response 由此产生。
常见的解决方案包括:通过引入 attention mechanism 强化 query 中重点的语义信息;削弱 decoder 中语言模型的影响;引入 user modeling 或者外部知识等信息也能够增强生成回复的多样性。这些其实是对于模型或者数据的局部感知,如果从更加全局的角度考虑 safe response 的问题,就会发现产生 safe response 的 S2S 模型实际上是陷入了一个局部的最优解,而我们需要的是给模型施加一个干扰,使其跳出局部解,进入更加优化的状态,那么最简单的正向干扰是,告知模型它生成的 safe response 是很差的结果,尽管生成这样的结果的 loss 是较小的。这样就开启了生成式对抗网络(Generative Adversarial Networks, GAN)在生成式聊天问题中的曲折探索。
将 GAN 引入聊天回复生成的思路:使用 encoder-decoder 架构搭建一个回复生成器G,负责生成指定 query 的一个 response,同时搭建一个判别器 D 负责判断生成的结果与真正的 response 尚存多大的差距,并根据判别器的输出调整生成器 G,使其跳出产生 safe response 的局部最优局面。
一个重要的问题是如何实现判别器 D 训练误差向生成器 G 的反向传播(Backpropagation)。对于文本的生成来说,一个文本样本的生成必然伴随 G 在输出层对词语的采样过程,无论这种采样所遵循的原则是选取最大概率的 greedy思想还是 beam searching,它实际上都引入了离散的操作,这种不可导的过程就像道路上突然出现的断崖,阻挡了反向传播的脚步,使对于 G 的对抗训练无法进行下去。这篇论文就针对文本生成过程中的采样操作带来的误差无法传导的实际问题提出了解决方案。
论文为生成器 G 构建了一个 Approximate Embedding Layer(AEL 如图中红色矩形框中所示,其细节在图右侧部分给出),这一层的作用是近似的表达每次采样过程,在每一个 generation step 中不再试图得到具体的词,而是基于词语的概率分布算出一个采样向量。这个操作的具体过程是,在每一个 generation step 里,GRU 输出的隐状态 hihi 在加入一个随机扰动 zizi 之后,经过全连接层和 softmax 之后得到整个词表中每个词语的概率分布,我们将这个概率分布作为权重对词表中所有词语的 embedding 进行加权求和,从而得到一个当前采样的词语的近似向量表示(如图中右侧绿框所示),并令其作为下一个 generation step 的输入。同时,此近似向量同样可以用来拼接组成 fake response 的表示用于 D 的训练。不难看出,这种对于采样结果的近似表示操作是连续可导的,并且引入这种近似表示并不改变模型 G 的训练目标。
取得了不错的效果。
详细戳首发!三角兽被 EMNLP 录取论文精华导读:基于对抗学习的生成式对话模型浅说
模型融合
把传统模型和神经网络相结合。
Translating Phrases in Neural Machine Translation
目前的 NMT 里 decoder 一次生成一个单词,不能进行 one-many 以及 many-many 的翻译,也就是没法做目标语言 phrase 的翻译,而 SMT 能做,所以想法是把两者结合。结合方法一般来说有两种,一是 shallow,NMT 作为 feature 放到传统框架进行预调;二是 deep,SMT 给 NMT 做推荐,NMT 用神经网络的方式接收 SMT 的东西。这篇论文用的是第二种方式。
SMT 先翻译一遍,把 relevant target phrases 扔到 NMT 的 Phrase Memory 里,NMT 从 Phrase Memory 里读取 target phrases 并进行打分,然后系统同时看 target phrase 和 word predictor 的结果,用一个 balancer 将 SMT 和 NMT 的优势结合起来,来判断下一个是单词还是短语的概率,来决定选哪个。所以其实产生的翻译 y=y1,y2,…,yTuy=y1,y2,…,yTu其实有两个碎片(fragments)组成,NMT 的 word predictor w=w1,w2,…,wKw=w1,w2,…,wK 以及 phrase memory 里存的相关短语 p=p1,p2,…pLp=p1,p2,…pL (这里的relevant target phrases 要满足两个条件:与原文相关(adequacy);不重复翻译(coverage))
另外一点是作者还提出了基于 chunk 的翻译,SMT 对 source 提取 Chunk 信息,把布什总统、美国政府这些作为 chunk 让 SMT 预翻,然后把它们写到 phrase memory 里,后续步骤不变。chunk 的实现主要是由 sequence tagging 完成,相同 tag 表示同一个 chunk,开始符号另外标记,比如 “information security” 被标注成 “NP _B NP”,然后新的输入就变成原来的 word embedding 以及 chunking tag embedding。chunk 的好处在于限定了 source-side phrase 的信息,一方面减少了短语间的 overlap,另一方面提高了 decoding 的准确性。
机器翻译相关戳
NLP 笔记 - Machine Translation
NLP 笔记 - Neural Machine Translation
问题是 SMT 没那么强(很难保证准确率),NMT 也没那么弱(一个单词一个单词的翻译也能把正确的短语翻译出来)
Incorporating Relation Paths in Neural Relation Extraction
提出了对文本中的关系路径进行建模,结合 CNN 模型 (Zeng, et al. (2014). Relation classification via convolutional deep neural network. CGLING) 完成关系抽取任务。
传统基于 CNN 的方法,通过 CNN 自动将原始文本映射到特征空间中,以此为依据判断句子所表达的关系
这种 CNN 模型存在的问题是难以理解多句话文本上的语义信息。比如说 A is the father of B. B is the father of C. 就没法得出 A 和 C 的关系,基于此,论文提出了在神经网络的基础上引入关系路径编码器的方法,其实就是原来的 word embedding 输入加上一层 position embedding,position embedding 将当前词与 head entity/tail entity 的相对路径分别用两个 vector 表示。然后用 αα 来平衡 text encoder(E) 和 path encoder(G)。
L(h,r,t)=E(h,r,t|S)+αG(h,r,t|P)
Encoder 还采用了多样例学习机制(Multi-instances Learning),用一个句子集合联合预测关系,句子集合的选择方法有随机方法(rand),最大化方法(max, 选最具代表性的),选择-注意力机制(att),注意力机制的效果最好。
实验结果:
之后可以继续的两个改进方向,一是对多步关系路径进行建模,使得模型可以处理更复杂的语义情况,而是将文本中的关系路径和知识图谱中的关系路径有机地结合,更好地完成关系抽取和知识图谱补全的任务。
零件调整
对已有模型零部件的一些调整改造。
Towards a Universal Sentiment Classifier in Multiple languages
这里我觉得有意思的一点是作者模仿了 skip-gram 模型提出了一种同时训练多语言的 embedding 的方法。一句话解释就是通过中心词来预测自身/其他语言周围的前后词。比如说双语预料中,需要使中文能预测中文自身的周围词,英文能学习英文自身的周围词,还要通过对齐来学习中文来预测英文、英文来预测中文。skip-gram 相关戳 词向量总结笔记(简洁版)。
C 作为 source language S 和 target language T 之间的平行语料,语料库可以分为 CSCS 和 CTCT 两部分,目标函数如下
然后就用一个 LR 模型进行情感分类。
Neural Machine Translation with Word Predictions
我们知道在 NMT 中,训练成本主要来自于输出层在整个 target vocabulary 上的 softmax 计算,为了减小这种 cost,各位学者做出了各种努力,比如说 Devlin et al. (2014) 从计算角度提出了 self-normalization 技术,通过改造目标函数把计算整个 matrix 的步骤优化为只计算输出层每一行的值(NLP 笔记 - Neural Machine Translation),而在 Neural Machine Translation with Word Predictions 这篇论文中,作者提出了一种减小 target vocabulary 的方法,主要用到了词预测机制(word predictor)。
之前 MT 的目标是生成一个词序列(ordered sequence),而现在 word predictor 的目标是生成 y1..yn 的词,但是不考虑词序(no order)。
和上图一样的 idea,word prediction 中,initial state(WPEWPE)要包含 target sentence 里的所有信息,hidden state(WP_D)要包含没有被翻译的词的所有信息。
PWPE(y|x)=∏j=1|y|PWPE(yj|x)PWPE(y|x)=∏j=1|y|PWPE(yj|x)
PWPD(yj,yj+1,…,y|y||y<j,x)=∏k=j|y|PWPD(yk|y<j,x)PWPD(yj,yj+1,…,y|y||y<j,x)=∏k=j|y|PWPD(yk|y<j,x)
这样无论是效果和效率上都有了显著提升
这个方法很好的一点是目标中的词对词预测来说是天然的标注,构造简单。然而要注意的两个点是 预测要准&预测要快,否则就失去了意义。还有个问题是,按理来说较大词表质量更好然而翻译效率低,较小的词表,像这篇论文提出的,翻译某句话提前先预测生成一个新的小的词表交给 decoder,效率毫无疑问会提升,但是质量,为啥会更好?不是很理解,坐等论文。
Towards Bidirectional Hierarchical Representations for Attention-based Neural Machine Translation
对传统 tree-based encoder 的一个改进。传统的 tree-based encoder 是 bottom-up 的结构,能抓局部信息却捕捉不了全局信息
这篇论文对 tree-based encoder 做了改造,让它既能捕捉局部的语义信息,又能捕捉全局的语义信息。
bottom-up encoding 取得局部信息,top-down encoding 取得全局信息。对于 OOV(out-of-vocabulary) 问题,基于 sub-word 思想,这里单独建立一个二叉词法树并将其融入原来的句法树里。这样如下图所示,模型囊括了句子、短语、词、sub-word 各种全局/局部信息,表达力 max。然而同样带来的问题是会产生重复信息,进而可能会造成重复翻译。
为解决重复翻译的问题,或者说词/短语向量的 balance,这里还引入了 attention 机制
效果有了一定提升。举个例子说明 tree-based encoder 的优势。用普通的 sequence encoder 翻译 PP 时会产生错误,普通的 tree-based 能翻译好 PP,不过 境外 和 以外的地区 还是有一点差距的,新版 tree-decoder 翻译就无压力。
迁移 idea
其实就是用已有的但可能用在别的方面的模型/思路解决现在的问题。
A Question Answering Approach for Emotion Cause Extraction
这一部分之前木有研究过,先来看一下什么是 emotion cause extraction
1 Document: 我的手机昨天丢了,我现在很难过。 (I lost my phone yesterday, and I feel sad now. )
2 Emotion:Sad
3 Emotional Expression: 很难过
4 Emotion Cause: 我的手机昨天丢了
任务目标是根据文本信息及其中包含的情感表达抽取出情感原因。论文作者之前发过论文,用的是基于 dependency parsing 的方法,把情感原因转化为树的分类任务,但结果依赖 dependency parsing 的准确性,而且只能处理对子句/句子级别的原因,不能处理细粒度的短语级别的原因。所以这一篇转换了思路,把 emotion cause extraction 问题转化为 question-answering 问题,提出了一种基于卷积的多层 memory network 方法,结果比之前基于树的方法提升了 2 个点。
1 Emotional Text => Reading Text
2 Emotional Words => Question/Query
3 Emotion Cause Binary Classification Results => Answer
用传统的 memory network 作为基础模型,reading text 用词向量 embedding 表达,存到记忆单元,待判断的情感词的词向量作为注意力单元,将 query 和 text 每个词进行内积操作,softmax 归一化作为词权重,用注意力的加权和作为整个句子的表达。为了引入词语的上下文,用了类似卷积的注意力加权方法,每个词的注意力由当前词、前文词、后文词共同决定,加权过程中根据上下文注意力对不同位置的词语进行加权,获得以短语窗口为单位的加权结果,然后进行输出。同时对记忆网络做了多层的堆叠,以学习更深的特征。最后效果得到了提升,并且在短语级别的情感原因抽取上也取得了不错的效果。
问题来了,query 是怎么产生的呢?=> 数据集标注好了情感表达词!
Earth Mover’s Distance Minimization for Unsupervised Bilingual Lexicon Induction
主要研究无监督的双语对齐方法,也就是能无监督地联系两个词向量空间,本质上是需要词向量空间之间,或者说词向量分布之间距离的度量。用的 EMD 思想,目标就是寻找一个映射G,使得映射后的源语言词向量分布和目标语言词向量分布的 EMD 或者说 Wasserstein 距离最小化。具体等论文发表再研究了。
Chinese Zero Pronoun Resolution with Deep Memory Network
解决中文的零指代消解问题。主要思路,用上下文来表示 ZP,使用两个 LSTM,一个对前文建模(left-to-right),一个对后文建模(right-to-left),然后连接两边最后一个隐层的向量作为 AZP 的表达(也可以尝试平均/求和)
接着,给定一个 AZP,会有一个 NP 集合被抽出来作为 candidate antecedents,根据每个 candidate antecedents 的重要性产生一个额外的 memory,通过对之前 LSTM 产生的 hidden vectors 相减操作来对 candidate antecedents 进行编码,然后连接上文、下文两边的向量,产生最后的 vector 作为最终 candidate antecedents 的表达,并存入外部的 memory 中。
这样我们的 memory 里就有了一堆的候选 NP,接着要对 candidate antecedents 的重要性做一个排序,选择合适的 NP 来 fill in the gap (ZP)。这里用了 attention 机制,并加入了一些人工特征(Chen and Ng (2016)),表示为 v(feature)tvt(feature)
模型用到了人工特征,能不能改进?还有是对 OOV 怎么处理。
小结
整场报告会听下来,收获还是有的,只是不如想象中那么惊艳,各种换换零部件,加个 attention,融入传统特征,给人换汤不换药的感觉,听多了也就这么回事儿,最大一个收获可能是再次意识到了 attention 机制的强大,大部分论文用了 attention 结果都有大幅的改善。anyway,能提高准确率/训练效率的模型就是好模型!大家都是棒棒哒!学习!
AI慕课学院近期推出了《NLP工程师入门实践班:基于深度学习的自然语言处理》课程!
三大模块,五大应用,海外博士讲师手把手教你入门NLP,更有丰富项目经验相授;算法+实践,搭配典型行业应用;随到随学,专业社群,讲师在线答疑!
课程地址:http://www.mooc.ai/course/427
加入AI慕课学院人工智能学习交流QQ群:624413030,与AI同行一起交流成长
雷峰网版权文章,未经授权禁止转载。详情见转载须知。