#yyds干货盘点# Embedding matrix
Posted LolitaAnn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# Embedding matrix相关的知识,希望对你有一定的参考价值。
这篇文章是我的笔记分享,内容主要来自吴恩达老师的深度学习课程。^[AI中国官网-全球领先的线上AI教育、实践平台 (deeplearningai.net)]
Embedding matrix
前面我们讲了word embedding。这一节我们说一下embedding matrix。
在学习的过程中,其实是将one hot的那一堆向量转换成了一个embedding的矩阵。
也就是说你最终得到的应该是一个embedding的矩阵,而不是说每一个词汇的向量。
还是接续我们前面的例子,假设你的词典长度是1万。现在你做word embedding选择300个特征。
那你最后得到的应该是一个300×10000维度的矩阵。
$$
\\beginarrayc|cccccc
& \\beginarrayc
\\text Man \\
(5391)
\\endarray
&\\beginarrayc
\\text Woman \\
(9853)
\\endarray \\
\\hline \\text Gender & -1 & 1 \\
\\text Royal & 0.01 & 0.02 \\
\\text Age & 0.03 & 0.02 \\
\\text Food & 0.04 & 0.01\\
\\text ... & ... & ...
\\endarray
$$
我们称这个矩阵为word embedding的大矩阵$E$。
从Embedding matrix中获取单词的e向量
方法一
还记得我们的one-hot向量吗。向量的长度为单词表的长度。向量中该单词在字母表中的位置为1,其余的数字都为0。
所以想要获取。某一个单词的word embedding,我们只需要将one-hot的向量乘以我们的word embedding的矩阵即可。
$$
[E]300\\times10000 \\times [o5391]10000 \\times 1 = [e5391]_300 \\times 1
$$
这样我们就可以取到对应位置上的那个单词的e向量。
上面公式学过线性代数的应该不难理解。
我们来举个简单的例子。
$$
\\beginbmatrix
1 &0 &0 \\
0 &1 &0 \\
0 &0 &1
\\endbmatrix
\\times
\\beginbmatrix
1 \\
0 \\
0
\\endbmatrix
\\beginbmatrix
1 \\
0 \\
0
\\endbmatrix
$$
方法二
上面那个理论上讲方法是通的,但是实际应用中并不那么用。实际应用中一般是使用一个函数来直接在word word embedding中进行查找,找到对应位置的向量即可。
实际操作中你绝对不会使用一个10000长度的word embedding,因为确实有点短。所以说你接触到的应该是一个非常大的矩阵。如果一个大矩阵在乘以一个超级长的one-hot的向量进行相乘的话,它的计算开销是非常大的。
以上是关于#yyds干货盘点# Embedding matrix的主要内容,如果未能解决你的问题,请参考以下文章