您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 自然语言处理中的attention机制
NLP中的Attention机制介绍李世杰复习Attention机制通用定义Attentionscore的计算变体更多attention种类总结内容利用点积dot得到attentionscore利用softmax函数:attentionscores转化为概率分布按照上一步概率分布:计算encoder的hiddenstates的加权求和复习Attention机制通用定义Attentionscore的计算变体更多attention种类总结内容Attention机制的一个更加通用的定义(课程里面的定义)•给定一组向量集合values,以及一个向量query,attention机制是一种根据该query计算values的加权求和的机制。•attention的重点就是这个集合values中的每个value的“权值”的计算方法。•有时候也把这种attention的机制叫做query的输出关注了(或者说叫考虑到了)原文的不同部分。(Queryattendstothevalues)举例:seq2seq中,哪个是query,哪个是values?从定义来看Attention的感性认识•Theweightedsumisaselectivesummaryoftheinformationcontainedinthevalues,wherethequerydetermineswhichvaluestofocuson.•换句话说,attention机制也是一种根据一些其他向量表达(query)从向量表达集合(values)中获得特定向量表达(attention)的方法复习Attention机制通用定义Attentionscore的计算变体更多attention种类总结内容针对attention向量计算方式变体•Softattention•Hardattention•“半软半硬”的attention(localattention)•动态attention•静态attention•强制前向attentionSoftattentionSoftattention就是我们上面讲过的那种最常见的attention,是在求注意力分配概率分布的时候,对于输入句子X中任意一个单词都给出个概率,是个概率分布ℎ1𝑠𝑡max()iitsofthsℎNNiitichHardattentionℎ1𝑠𝑡ℎNNiitichSoft是给每个单词都赋予一个单词match概率,那么如果不这样做,直接从输入句子里面找到某个特定的单词,然后把目标句子单词和这个单词对齐,而其它输入句子中的单词硬性地认为对齐概率为0,这就是HardAttentionModel的思想。0ifi1iptelselocalattention(半软半硬attention)ℎ1𝑠𝑡ℎNNiitich在这个模型中,对于是时刻t的每一个目标词汇,模型首先产生一个对齐的位置pt(alignedposition),contextvector由编码器中一个集合的隐藏层状态计算得到,编码器中的隐藏层包含在窗口[pt-D,pt+D]中,D的大小通过经验选择。寻找pt并计算alpha的方式又大致分为两种:Local–m:假设对齐位置就是pt=t(线性对齐)然后计算窗口内的softmax,窗口外的alpha可以取0𝛼𝑖((,))((,))itiitiexpscorehsexpscorehsLocal–p:先通过一个函数预测pt在[0,S]之间,然后取一个类高斯分布乘以softmax。(())TpptptSsigmoidvtanhWs2((,))()(-)2((,))ittitiexpscorehssptexpexpscorehs动态attention、静态attention、强制前向attention•动态attention:就是softmaxattention•静态attention:对输出句子共用一个St的attention就够了,一般用在Bilstm的首位hiddenstate输出拼接起来作为St(如图所示中的u)•强制前向attention:要求在生成目标句子单词时,如果某个输入句子单词已经和输出单词对齐了,那么后面基本不太考虑再用它了针对Attentionscore的计算方式变体•已有的情况下,计算query的attention向量a(很多时候也称作上下文向量,contextvector)使用的公式为:•点积attentionscore(Basicdot-productattention):这个就是我们常见的attentionscore计算方式•乘法attentionscore(Multiplicativeattention):•加法attentionscore(Additiveattention:复习Attention机制通用定义Attentionscore的计算变体更多attention种类总结内容•Selfattention•思想:Selfattention也叫做intra-attention在没有任何额外信息的情况下,我们仍然可以通过允许句子使用selfattention机制来处理自己,从句子中提取关注信息。•它在很多任务上都有十分出色的表现,比如阅读理解(Chengetal.,2016)、文本继承(textualentailment/Parikhetal.,2016)、自动文本摘要(Paulusetal.,2017)。特殊的attentionscore计算方式tanh()iThaaievWhSelfattention计算方式1.以当前的隐藏状态去计算和前面的隐藏状态的得分iThtiehWh2.以当前状态本身去计算得分,这种方式更常见,也更简单tanh(+b)iThiehwSelfattention计算方式•针对第二种计算方式,其又有矩阵的变形,令矩阵•H=[h1,h2,h3,h4……hn]∈nx2u表示句子的隐藏状态矩阵,每个隐藏状态为2u维。•那么上面的公式矩阵化之后就是:=(tanh())TaaAsoftmaxVWHCAH•Key-valueattention•Key-valueattention是将hi拆分成了两部分[key_i;value_i],然后使用的时候只针对key部分计算attention权重,然后加权求和的时候只使用value部分进行加权求和。公式如下,权重计算:另一种特殊的attentionscore计算方式Attentionisallyouneed中的multi-headattention部分不妨从一个向量出发Scaleddot-productattentionAttentionisallyouneed中的multi-headattention部分代码实现总结•Attention机制就是一个加权求和机制•Attention的权重由当前的hiddenstate和需要计算的hiddenstate通过一定的方式先判断出score得分然后再softmax得到。•Attention可以用来干什么:主要是关注到长序列中的关键信息。
本文标题:自然语言处理中的attention机制
链接地址:https://www.777doc.com/doc-7126283 .html