智客公社

标题: 自然言语处理进阶学习-Attention 模型 [打印本页]

作者: xuanfengko    时间: 2019-6-9 05:40
标题: 自然言语处理进阶学习-Attention 模型
一、背景

明天打算讲述最近NLP中很火的一个概念,Attention(留意力机制),原意是指机器在做阅读了解、文本分类、翻译等义务时,应该要抓取重点,如阅读了解应该是抓取和成绩相关的句子或者词语,文本分类如情感分析应该是次要将留意力集中在和情感相关的词上,翻译中应该次要翻译出主谓宾等次要句子成分。希望机器不是囫囵吞枣的阅读,而是基于义务针对性的的做语义的了解。有很多论文都表示各种Attention在不同的NLP义务中都有很好的效果,这篇文章次要讲述其中比较有名的两篇,《Attentive Pooling Networks》和《Attention Is All You Need》,第一篇次要是承上启下做同义词的婚配,是对上篇文章(自然言语处理入门学习十)中的CDSSM这个模型的改进,第二篇则是2017年的爆款论文,次要运用于机器翻译。

二、留意力机制在NLP中的运用

CDSSM是用来做句子的婚配的模型,次要是先将句子对运用两个向量来表征(CNN Embedding),然后将余弦函数用作两个句子之间的语义间隔,最后将这个语义间隔函数当做损失函数来不断优化。

2.1 Attentive Pooling Networks

《Attentive Pooling Networks》是一个做问答对婚配的模型,次要是在向量表征和余弦函数的间隔之间添加了Attention层,这样成绩向量表征上就能得到答案的信息,答案向量表征上就能得到成绩的信息。如单独对“How old are you?”和“How are you?”成绩的向量表征能够非常相近,但是理想能够是完全不同的两个成绩。但是假如对“How old are you?“I am 18.”和“How are you?”“I’m fine”,将成绩和答案的信息都思索出去,这样就可以很分明的区分“How old are you?”和“How are you?”这两句话实践是两个成绩。

[attach]154248[/attach]

图1:Attentive Pooling Networks



文章中很巧妙的构造了Attentive Pooling层G,

[attach]154249[/attach]



其中Q是成绩的向量表征,A是答案的向量表征,U是参数矩阵,是可以经过神经网络学习得到的。然后分别做基于行的max-pooling和基于列的max-pooling,得到Attention层中重要的信息。

[attach]154250[/attach]



这样成绩向量中就会存在答案的信息,答案向量中就会存在成绩的信息。然后再分别做softmax归一化之后再乘上末尾成绩和答案的向量表征,表示提取出看过成绩和答案之后,成绩和答案中的重要词语分别做的向量表征。

[attach]154251[/attach]



Loss函数的计算和CDSSM的Loss函数计算一样。

再来反思这个模型最值得学习的地方,当我们在做问答对的婚配这个义务的时分,不能再单独的对成绩和答案分别停止向量表征,而是得在看过成绩和答案之后,觉得针对这个答案该成绩应该留意哪几个词,针对这个成绩,答案中重要的词又是哪几个,这样才能做出好的成绩对婚配中的句子向量的表征。

着重引见这篇文章的最大的目的是在于承上,是对CDSSM这个模型的改进,启下,是对于下一篇文章GAN在检索中的运用IRGAN做的铺垫。(IRGAN的QA检索中的判别模型和生成模型都是用的Attentive Pooling。)

论文中展现的这个模型的效果:

[attach]154252[/attach]




三、参考文献

1、Attentive Pooling Networks

2、Attention Is All You Need

原文链接:https://zhuanlan.zhihu.com/p/40006082
作者: 不日不月    时间: 2019-6-9 05:49
分享了
作者: 易碎的琉璃    时间: 2019-6-9 16:22
赞一个!
作者: xiao1521    时间: 2019-6-10 14:48
除了666我无话可说
作者: 执卓a一生    时间: 2019-6-11 14:05
厉害啊!




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4