微信扫码
与创始人交个朋友
我要投稿
参考:为什么 Bert 的三个 Embedding 可以进行相加? https://www.zhihu.com/question/374835153
Token Embedding、Segment Embedding、Position Embedding的意义我已经清楚了,但是这三个向量为什么可以相加呢?相加后向量的大小和方向就变了,语义不就变了吗?
引用 【苏剑林老师的回答】
参考:https://kexue.fm/archives/4122
Embedding的数学本质,就是以one hot为输入的单层全连接。
也就是说,世界上本没什么Embedding,有的只是one hot。
现在我们将token, position, segment三者都用one hot表示,然后concat起来,然后才去过一个单层全连接,等价的效果就是三个Embedding相加。
通俗易懂点解释:三个向量concat之后走一次全连接,等价于各自embedding之后相加。
引用 【铁心核桃】
参考:https://www.zhihu.com/question/374835153/answer/2108264167
BERT的词嵌入由符号嵌入(Token Embedding)、片段嵌入(Segmentation Embedding)和位置嵌入(Position Embedding)合成得到,表示为:
上述三个嵌入分量都可以表达为“独热”(one-hot)编码表示输入与嵌入矩阵的乘积形式,即
上面的嵌入合成有点像在调颜色,先有一个基于字典的符号嵌入,“花里胡哨”的;然后按照符号类型属性(BERT为句子的隶属关系)添加颜色,相同的符号类型添加相同的颜色,于是具有相同属性符号的颜色就接近了一些;然后再按照位置,进一步添加不同的颜色。
三个one-hot编码向量与嵌入矩阵相乘,等价于构造三个以one-hot编码向量作为输入,输入维度分别为 |V| 、|S| 和 |P|,输出维度均为 H 的全连接网络。求和即为特征融合。如下图所示
三个one-hot编码向量与嵌入矩阵相乘,按照矩阵分块,可以改写为
对应的全连接网络变为一个大网络,输入维度为 |V| + |S| + |P| ,输出维度还是 H 。对应的网络结构图形如下图所示
三个嵌入的合成,是将符号空间、符号属性空间和位置空间三个看似“风马牛不相及”的空间表示,通过线性映射到一个统一的、同质的特征空间上去,然后再以求和的方式做坐标综合,如下图所示
如果按照角度2的到底先融合还是后融合的两个视角,那上面说的是先映射后融合模式。当然,我们也可以按照角度2做先融合后映射的思考。先做如下铺垫
对应上面铺垫和我们的问题,可以知道 c=3 , M1 、 M2 和 M3 分别对应上面的符号空间、符号属性空间和位置空间。按照笛卡尔积的从“每个空间取点组团”的定义,我们的对三个one-hot编码的Concat操作即作出了 |V| + |S| + |P| 维积流形中的一个点。然后再做的一个的线性映射,等于去获取该点的 HHH 维内蕴坐标.
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-08-03
2024-07-31
2024-07-25
2024-07-25
2024-08-06
2024-07-09
2024-06-01
2024-08-13
2024-09-12
2024-06-03