Embedding理解

one-hot概念

在NLP中,通常使用one-hot的形式将类别变量(理解为输入的一句话)编码成二进制序列向量,这种编码中,每个类别都被表示为一个"除了单个位置为1,其他位置都为0"的向量。
例如我们可以为每个字母定义一个26维的one-hot向量,如’a’表示为[1, 0, 0, …, 0],'b’表示为[0, 1, 0, …, 0],以此类推。
在表示’Embedding’时,我们可以使用这些向量组成一个稀疏矩阵

  • ‘e’: [0, 0, 0, 0, 1, 0, …, 0]
  • ‘m’: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, …, 0]
  • ‘b’: [0, 1, 0, …, 0]
  • ‘e’: [0, 0, 0, 0, 1, 0, …, 0]
  • ‘d’: [0, 0, 0, 1, 0, …, 0]
  • ‘d’: [0, 0, 0, 1, 0, …, 0]
  • ‘i’: [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, …, 0]
  • ‘n’: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, …, 0]
  • ‘g’: [0, 0, 0, 0, 0, 0, 1, 0, …, 0]
    即一个9*26的矩阵

引入

使用以上表示一篇文章时,缺点也随之而来:过于稀疏,过度占用资源
这时就引入Embedding层了,直译是嵌入式、嵌入层的意思,概念上讲就是将高维的数据映射到一个相对低维的连续向量空间中,简单来说就是将复杂矩阵降维为一个相对简单的矩阵
假设有一个2 * 6的矩阵,然后乘上一个6 * 3的矩阵,就会变成2 * 3的矩阵,如以下
( a 11 a 12 a 13 a 14 a 15 a 16 a 21 a 22 a 23 a 24 a 25 a 26 ) [ b 11 b 12 b 13 b 21 b 22 b 23 b 31 b 32 b 33 b 41 b 42 b 43 b 51 b 52 b 53 b 61 b 62 b 63 ] = ( c 11 c 12 c 13 c 21 c 22 c 23 ) \begin{pmatrix} a_{11} & a_{12} & a_{13} & a_{14} & a_{15} & a_{16} \\ a_{21} & a_{22} & a_{23} & a_{24} & a_{25} & a_{26} \end{pmatrix} \begin{bmatrix} b_{11} & b_{12} & b_{13} \\ b_{21} & b_{22} & b_{23} \\ b_{31} & b_{32} & b_{33} \\ b_{41} & b_{42} & b_{43} \\ b_{51} & b_{52} & b_{53} \\ b_{61} & b_{62} & b_{63} \end{bmatrix} = \begin{pmatrix} c_{11} & c_{12} & c_{13} \\ c_{21} & c_{22} & c_{23} \end{pmatrix} (a11a21a12a22a13a23a14a24a15a25a16a26) b11b21b31b41b51b61b12b22b32b42b52b62b13b23b33b43b53b63 =(c11c21c12c22c13c23)
其中,

  • c 11 = a 11 b 11 + a 12 b 21 + a 13 b 31 + a 14 b 41 + a 15 b 51 + a 16 b 61 c_{11} = a_{11}b_{11} + a_{12}b_{21} + a_{13}b_{31} + a_{14}b_{41} + a_{15}b_{51} + a_{16}b_{61} c11=a11b11+a12b21+a13b31+a14b41+a15b51+a16b61
  • c 12 = a 11 b 12 + a 12 b 22 + a 13 b 32 + a 14 b 42 + a 15 b 52 + a 16 b 62 c_{12} = a_{11}b_{12} + a_{12}b_{22} + a_{13}b_{32} + a_{14}b_{42} + a_{15}b_{52} + a_{16}b_{62} c12=a11b12+a12b22+a13b32+a14b42+a15b52+a16b62
  • c 13 = a 11 b 13 + a 12 b 23 + a 13 b 33 + a 14 b 43 + a 15 b 53 + a 16 b 63 c_{13} = a_{11}b_{13} + a_{12}b_{23} + a_{13}b_{33} + a_{14}b_{43} + a_{15}b_{53} + a_{16}b_{63} c13=a11b13+a12b23+a13b33+a14b43+a15b53+a16b63
  • c 21 = a 21 b 11 + a 22 b 21 + a 23 b 31 + a 24 b 41 + a 25 b 51 + a 26 b 61 c_{21} = a_{21}b_{11} + a_{22}b_{21} + a_{23}b_{31} + a_{24}b_{41} + a_{25}b_{51} + a_{26}b_{61} c21=a21b11+a22b21+a23b31+a24b41+a25b51+a26b61
  • c 22 = a 21 b 12 + a 22 b 22 + a 23 b 32 + a 24 b 42 + a 25 b 52 + a 26 b 62 c_{22} = a_{21}b_{12} + a_{22}b_{22} + a_{23}b_{32} + a_{24}b_{42} + a_{25}b_{52} + a_{26}b_{62} c22=a21b12+a22b22+a23b32+a24b42+a25b52+a26b62
  • c 23 = a 21 b 13 + a 22 b 23 + a 23 b 33 + a 24 b 43 + a 25 b 53 + a 26 b 63 c_{23} = a_{21}b_{13} + a_{22}b_{23} + a_{23}b_{33} + a_{24}b_{43} + a_{25}b_{53} + a_{26}b_{63} c23=a21b13+a22b23+a23b33+a24b43+a25b53+a26b63

以上C矩阵为降维后的矩阵,而降维的原理就是矩阵乘法
其他延伸关键词还有Word Embedding(词嵌入)Entity Embedding(实体嵌入)Image Embedding(图片嵌入)等等

相关

词嵌入.维基百科
一文读懂Embedding的概念,以及它和深度学习的关系

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值