关于连续词袋的问题

机器算法验证 机器学习 神经网络 自然语言 词嵌入 语言模型
2022-03-05 00:33:21

我很难理解这句话:

第一个提出的架构类似于前馈 NNLM,其中去除了非线性隐藏层,所有单词共享投影层(不仅仅是投影矩阵);因此,所有单词都被投影到相同的位置(它们的向量被平均)。

什么是投影层与投影矩阵?说所有单词都投射到同一个位置是什么意思?为什么这意味着它们的向量是平均的?

该句子是向量空间中单词表示的有效估计(Mikolov et al. 2013)第 3.1 节的第一个

2个回答

那里的图 1 澄清了一些事情。给定大小的窗口中的所有词向量相加,结果乘以(1/窗口大小),然后输入输出层。

投影矩阵意味着一个完整的查找表,其中每个单词对应一个实值向量。投影层实际上是一个接受一个词(词索引)并返回相应向量的过程。可以将它们连接起来(获得大小为 k*n 的输入,其中 k 是窗口大小,n 是向量长度),或者像在 CBOW 模型中一样,将它们全部相加(获得大小为 n 的输入)。

在此处输入图像描述

当我浏览有关CBOW问题并偶然发现这一点时,通过查看 NNLM 模型(Bengio 等 2003):

Bengio 等人,2003,图 1:神经架构:f (i,w_{t−1},··· ,w_{t−n+1})=g(i,C(w_{t−1} ), ··· ,C(w_{t−n+1})) 其中 g 是神经网络,C(i) 是第 i 个词特征向量。

如果将此与 Mikolov 的模型[s](显示在此问题的替代答案中)进行比较,则引用的句子(在问题中)意味着 Mikolov 删除了上面显示的 Bengio 模型中看到的(非线性!)层。并且 Mikolov 的第一个(也是唯一的)隐藏层,而不是为每个单词使用单独的向量,只使用一个向量来总结“单词参数”,然后这些总和得到平均。所以这解释了最后一个问题(“向量被平均是什么意思?”)。这些词被“投影到相同的位置”,因为分配给各个输入词的权重在 Mikolov 模型中被求和并取平均值。因此,他的投影层tanhC(wi)与 Bengio 的第一个隐藏层(又名投影矩阵)不同,丢失了所有位置信息——从而回答了第二个问题(“所有单词都被投影到同一位置是什么意思?”)。所以 Mikolov 的模型[s] 保留了“词参数”(输入权重矩阵),移除了投影矩阵层,并用“简单”投影层替换了两者。Ctanh

补充一下,“仅作记录”:真正令人兴奋的部分是 Mikolov 解决在 Bengio 的图像中您看到短语“这里计算最多”的部分的方法。Bengio 在后来的一篇论文(Morin & Bengio 2005)中尝试通过做一些称为分层softmax(而不是仅仅使用 softmax)的方法来减轻这个问题。但 Mikolov 的负二次抽样策略更进一步:他根本不计算所有“错误”单词(或 Huffman 编码,正如 Bengio 在 2005 年提出的)的负对数似然,而只是计算一个非常负样本的小样本,如果有足够的计算和巧妙的概率分布,效果非常好。而第二个也是更大的贡献,自然是,加性“组合性”(“man + king = woman + ?” with answer queen),它只适用于他的 Skip-Gram 模型,大致可以理解为采用 Bengio 的模型,应用 Mikolov 建议的更改(即您的问题中引用的短语),然后反转整个过程。也就是说,改为从输出词(现在用作输入)中猜测周围的词P(context|wt=i)