|
|
@ -32,4 +32,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
> “it”在第一句中是指代“animal”,表示它太累了没有过去。
|
|
|
|
> “it”在第一句中是指代“animal”,表示它太累了没有过去。
|
|
|
|
>
|
|
|
|
>
|
|
|
|
> “it”在第二句中指代“street”,表示路太窄了没有过去。
|
|
|
|
> “it”在第二句中指代“street”,表示路太窄了没有过去。
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
> 这里关注的是“animal”,我们希望即使是第二句,“animal”对结果的影响越大。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### Self-Attention计算
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 输入经过编码后得到的向量。
|
|
|
|
|
|
|
|
- 得到当前词语上下文的关系,可以当做是加权。
|
|
|
|
|
|
|
|
- 构建三个矩阵分别查询当前词跟其它词的关系,以及特征向量的表达。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如下图:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![1609726549882](assets/1609726549882.png)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> 先转换成向量,构建三个矩阵Q、K、V,求出来第一个词编码的时候怎么找到上下文。右边的W就是权重。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这三个矩阵具体做什么:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Q: query,要去查询的
|
|
|
|
|
|
|
|
- K: key,等着被查的
|
|
|
|
|
|
|
|
- V: value,实际的特征信息
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![1609726848038](assets/1609726848038.png)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> X是输入内容,结果W后,形成Q、K、V不同矩阵的特征向量。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![1609730605624](assets/1609730605624.png)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> q与k的内积表示有多匹配,如果Xa与Xb之间无关的时候,那么其在坐标系上的表示是垂直的;如果有关系,则非垂直,则有夹角有内积,相关性越大,则夹角越小,内积越大。
|
|
|
|
|
|
|
|
|
|
|
|