赞
踩
输入为:
一排向量–word embedding
可以是一段声音讯号、一个图(一个节点)、一个分子(一个原子)
输出为:
① 每个向量都有一个对应的label,输入长度=输出长度
例:词性标注(每一个单词都有一个对应的磁性)、社交网络
② 一整个sequence需要一个label
例:机器判断一段话是正面的还是负面的、根据一段语音判断讲话人是谁
③ 模型自己决定输出的label个数
例:翻译
输入个数=输出个数,称为Sequence Labeling(sequence的每一个向量都要输出一个Label)
fully-connected(全连接)
考虑更多的信息,比如上下文。可以给全连接层一整个window的信息,来考虑上下文
如果考虑一个window不能解决,需要考虑整个sequence,window的长度不能无限大来盖住整个sequence?利用自注意力机制。
self_attention可以考虑一整个sequence
self-attention可以叠加。
根据a1找出sequence中跟a1的相关性,用α表示两个向量关联的程度
α的计算方法:
其中α1,2为attention score
注意,q1也会跟自己计算关联性(很重要)。
接下来,会做一个softmax,α得到一排α’
不一定用softmax,比较常见。
根据α,已经得出向量之间的关联性。
先给decoder一个begin,经过一个softmax得到一个输出,之后将begin和上一个输出作为decoder的输入,以此循环。encoder也会给decoder一个输入。(所以有可能会一步错步步错)
encoder中的b1是根据a1跟其他所有ai的信息共同决定的。decoder中的mask,在产生b1的时候只能考虑a1的信息,产生b2的时候只能考虑a1和a2的信息,产生b3的时候只能考虑a1、a2、a3的信息。
为什么要masked?
decoder运行的时候是一个一个的输入和输出,结果是先输入a1,再输入a2,所以在求b2的时候还没有输入b3和b4的信息。
怎样决定decoder输出的长度?什么时候停止?
要有一个特殊的符号end来表示结束(也可以跟begin用一个)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。