3 回答
TA贡献1853条经验 获得超6个赞
我的感觉是(#translate 到直觉,而不是数学):
将根据这两个词彼此靠近或在相同上下文中使用的频率来计算相似度。
如果你从那里去:
如果这两个词实际上相似,则它们使用的频率越高 => 您拥有的训练数据越多 => 模型越好 => 它们越接近。
如果你有更多的上下文来使用这两个词,那么它们的关系会更紧密。
但是,如果它们在整个语料库中出现的频率较低,但在一起的频率较高,则它们的关系也会更加紧密。
所以它更像是一个 (frequency_same_context)/(frequency_overall)。如果你不改变它,你应该没问题,我猜?
TA贡献1828条经验 获得超4个赞
如果您已经“精简”了一个单词的示例上下文的数量,而不是其他单词,那么相似性肯定会改变。
Word2Vec 依赖于许多不同的单词用法示例。训练过程一次只考虑一个同时出现的例子。(在流行的 skip-gram 模式中,只有一个context-word -> target-word
例子。)。
训练反复向神经网络呈现一个单一的上下文,沿着一些有趣的小路径子集检查网络的响应,并通过改变网络的内部权重和“投影权重”略微推动网络做得更好定义一个词的向量。
与其他向量相比,正是所有这些更新的聚合效果,经过多次迭代,最终将每个词的向量推到了有用的地方。(这是改进一些示例和改进其他示例之间的“拔河”。)
任何改变所用示例组合的事情都会改变最终结果。特别是,如果A
整体单词的示例较少,则使模型在包括A
. 它的最终位置和相关权重将更多地受到其他单词更多示例的影响。
此外,精简 的例子A
实际上会改变它与它曾经共同训练过的所有单词的共现率。更少的A
上下文意思的数量A -> B
和B -> A
环境也将发生变化,这也将改变字B
的最终位置。这适用于与,共现的所有其他单词C
,D
等,A
尤其是当某些上下文比其他上下文更稀薄时。(因为,在您A
的新发行版示例中,'context 2' 出现频率为 1/5000,但 'context 3' 出现频率为 1/10。)
请注意,在大多数 Word2Vec 实现中都有一个频繁词下采样功能,通常由一个名为 的参数控制sample
,它有意丢弃了许多非常频繁出现的词。这确实会有意地改变训练语料库中单词的相对频率。
与无下采样相比,这里精心选择的值往往会加快训练速度并提高最终词向量的质量。为什么?一旦你有成百上千个频繁词的不同例子,额外的边际例子并不能帮助改善这个词 - 但它是花费更多的时间和更高比例的整体训练时间,改进那些常用词的模型。并且这些词的微小改进,在许多示例中,必须按照上述过程与对更稀有示例的更多词的改进进行权衡。丢弃一些“过于频繁”的词让其他词对模型的最终状态有更大的相对影响,甚至实际上甚至有效地缩小了稀有词之间的有效上下文距离(当更频繁的介入词被删除时)。
TA贡献1805条经验 获得超10个赞
Gensim 实现了两个词向量模型:
跳码
CBOW
两者之间的区别在于如何使用特征化和标签来训练词向量模型。
两种模型都在标记上下文上进行训练,以将标记自动编码为连续的语义向量空间。
跳格
训练的输入是上下文窗口 n-gram,而预测标签是第 n 个标记。
如果我们使用二元上下文窗口,输入向量将使用标记;
[Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
要预测的标签将是
Token_n
CBOW
训练的输入是上下文窗口 n-gram,而预测标签是第 n 个标记。
如果我们使用二元上下文窗口,输入向量将使用标记;
Token_n
要预测的标签将是
[Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
目的是什么?
显然这是一个粗略的过度简化,但它有助于我们问,词向量模型有什么作用?
gensim中实现的词向量模型的目的是什么?
这两个模型为给定的标记编码语义上下文。
因此,询问模型中单词的相似程度应该与它们所训练的上下文成正比。
TL; 博士
WV 模型对表示中的词上下文进行编码。
因此,单词的相似性与它们的数量不成正比,而与它们出现的上下文成正比。
添加回答
举报