Seq2seq 理解

注:这篇文章是根据小象学院史兴老师自然语言课程,加上自己的理解。方便日后复习

一,模型

,其是一个结构化预测。

F:input sequence /source sequence

E:output sequence/target sequence

二,模型示意图

Seq2seq 理解_第1张图片

图示说明:1)encode和decoder的参数不同;2)h,c是中间向量;3)每一层的lstm参数不同,同一层的参数相同;4)可以拿中间变量来做聚类,文本分类等工作;4)运算量主要集中在decoder的 output embedding地方,因为要对词汇空间进行遍历,然后找去概率最大的组合序列。

三,模型主要使用的算法

    模型主要用到了Beam Search搜索算法。个人感觉是在Viterbi 算法的基础上加入了排序。

    1)Viterbi Algorithm

          

            s(v, n)表示长度为n的序列,以v结尾的最大概率;t(i, j, n)表示由n-1步的i状态转移到n步的j状态的概率。

            评价:如果仅使用Viterbi算法搜索预测序列需要很大的运算量,尤其是V的空很大时,几乎无法进行

      2)Beam Search Algorithm

            

           Seq2seq 理解_第2张图片

              该算法对上一步生成的序列排序后,根据需要选取top n大的序列组合,然后在往后转移。无论怎么样 top n是远远小于空间V的。

四,提升模型用到的技巧

        dropout , reverse,attention, feed-input

        reverse就是把前一个seq倒序,attention就是让前一个seq中的各词一步到达后一个需要预测的seq对应的位置


你可能感兴趣的:(自然语言)