李宏毅老师课程链接
对于seq2seq的问题,可以选择用RNN或者CNN来解决,但是RNN无法做到平行的处理一个序列,也很难处理一个很长的序列。而CNN则需要多层才能看到比较多的信息。
而self-attention可以解决这些问题。
构建self-attention,首先将输入x转化成a,再把a分别转化成q,k,v,分别是匹配项,被匹配项和提炼信息。
将1个q和每个k一次做attention计算(点乘除以维数的根)得到a1i
然后把所有a1i做一次softmax。
把每个结果乘上vi,再把所有乘积相加得到b1.