#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的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#linux命令--uname

#yyds干货盘点#linux命令--hdparm

#yyds干货盘点#C++ static

#yyds干货盘点# 数字序列

#yyds干货盘点#异或操作

#yyds干货盘点#二分查找算法