https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/self_v7.pdf

    image.png
    image.png
    在之前我们处理的问题都是只有一个输入向量的情况。如果我们的模型有多个输入向量呢。
    比如说,在文字处理领域。

    在文字处理的时候,一个单词代表一个向量。

    image.png
    把单词转化成向量的时候,我们可以使用one-hot编码,但one-hot编码有几个问题,首先,内存肯定要存储很多东西,其次,我们找不到两个单词之间的联系。比如说cat和dog都是动物,但是从one-hot编码上看不出任何联系。

    所以一般用Word Embedding编码,至于Word Embedding怎么实现的,这个就不管了。

    image.png
    我们输入了一串语音信号,现在我们一般25ms取一个框,然后再转化为向量。至于怎么转化的就有很多方法了。

    image.png
    image.png

    image.png
    几个向量输入,就有几个对应的输出
    image.png
    判断语义是正面的还是负面的,说话的人是谁。


    image.png
    把向量的前后,上下文共同输入模型。

    更好的方法考虑Input Sequence的机制呢?


    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    根据相关性进行加权。

    image.png
    把输入乘上三个不同的QKV矩阵,就得到了qkv

    image.pngimage.png

    image.png


    Multi-head Self-attention
    image.png

    感觉有点类似于CNN的卷积

    image.png

    image.png
    这里的Self-attention并没有引入时序的概念。

    image.png

    image.png
    利用self-attention处理图片的时候,我们把RGB三个维度看成一个向量,一个5x10x3的图片,我们就可以认为是
    由5x10个vector组成的vector set。

    self-attention的目的是建立起向量和向量之间的联系。主要是用于处理多向量作为输入的情况。
    image.png

    image.png

    image.png
    如果一个模型更feasible,我们在训练的时候就需要更多的参数,不然就容易产生overfitting的情况。
    image.png