自用防忘:cs224n 笔记:第二、三讲 词向量表示

第二讲 词向量表示:Word2vec

word2vec主要分为CBOW(Continuous Bag of Words)和Skip-Gram两种模式。

CBOW是从原始语句推测目标字词;而Skip-Gram是从目标字词推测出原始语句。
CBOW对小型数据库比较合适,而Skip-Gram在大型语料中表现更好。

用数字表示文本

机器学习模型将向量(数字数组)作为输入。在处理文本时,我们应该先将字符串转换为数字(或将文本“向量化”),然后再其馈入模型。

单词向量(word vector)又可称为词嵌入(word embeddings)

独热向量编码

为了表示每个单词,创建一个长度等于词汇量的零向量,然后在与该单词对应的索引中放置一个 1。
为了创建一个包含句子编码的向量,我们可以将每个单词的独热向量连接起来。
在这里插入图片描述

*问题:*体现不出来两个向量的内在相似性,因两向量的点积为0,得不出词汇与模型之间的关联
这种方法效率低下。一个独热编码向量十分稀疏(这意味着大多数索引为零)。假设我们的词汇表中有 10,000 个单词。为了对每个单词进行独热编码,我们将创建一个其中 99.99% 的元素都为零的向量。

在这里插入图片描述

用一个唯一的数字编码每个单词

如:将 1 分配给“cat”,将 2 分配给“mat”,依此类推。
然后,我们可以将句子“The cat sat on the mat”编码为一个密集向量,例如 [5, 1, 4, 3, 5, 2]。这种方法是高效的。
现在,我们有了一个密集向量(所有元素均已满),而不是稀疏向量。

但是,这种方法有两个缺点:

整数编码是任意的(它不会捕获单词之间的任何关系)。

对于要解释的模型而言,整数编码颇具挑战。例如,线性分类器针对每个特征学习一个权重。由于任何两个单词的相似性与其编码的相似性之间都没有关系,因此这种特征权重组合没有意义。

单词嵌入向量

单词嵌入向量为我们提供了一种使用高效、密集表示的方法,其中相似的单词具有相似的编码。

重要的是,我们不必手动指定此编码。

嵌入向量是浮点值的密集向量(向量的长度是您指定的参数)。
它们是可以训练的参数(模型在训练过程中学习的权重,与模型学习密集层权重的方法相同),无需手动为嵌入向量指定值。

8 维的单词嵌入向量(对于小型数据集)比较常见,而在处理大型数据集时最多可达 1024 维。

维度更高的嵌入向量可以捕获单词之间的细粒度关系,但需要更多的数据来学习。

下图每个单词都表示为浮点值的 4 维向量。还可以将嵌入向量视为“查找表”。学习完这些权重后,我们可以通过在表中查找对应的密集向量来编码每个单词。

在这里插入图片描述

嵌入向量层理解为一个从整数索引(代表特定单词)映射到密集向量(其嵌入向量)的查找表。

创建嵌入向量层时,嵌入向量的权重会随机初始化(就像其他任何层一样&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值