单词 A 和 B 之间的语义相似性:依赖于语料库中 A 和 B 的频率?

背景 :


给定一个语料库,我想用 word2wec (Gensim) 的实现来训练它。


想了解 2 个标记之间的最终相似度是否取决于语料库中 A 和 B 的频率(保留所有上下文),还是不可知。


例子:(可能不理想,但用它来阐述问题陈述)


假设单词“A”在语料库中的 3 个不同上下文中使用:


Context 1 : 1000 times

Context 2 : 50000 times

Context 3 : 50000 times

'B' 用于 2 个不同的上下文:


Context 1 : 300 times 

Context 5 : 1000 time

问题 :


如果我更改语料库中“A”的频率(确保没有上下文丢失,即“A”在所有上下文中仍像原始语料库一样至少使用一次),A 和 B 之间的相似性是是相同的 ?


'A' 跨上下文的新分布


 Context 1 : 5 times

 Context 2 : 10 times

 Context 3 : 5000 times

任何线索表示赞赏


哈士奇WWW
浏览 146回答 3
3回答

墨色风雨

我的感觉是(#translate 到直觉,而不是数学):将根据这两个词彼此靠近或在相同上下文中使用的频率来计算相似度。如果你从那里去:如果这两个词实际上相似,则它们使用的频率越高 => 您拥有的训练数据越多 => 模型越好 => 它们越接近。如果你有更多的上下文来使用这两个词,那么它们的关系会更紧密。但是,如果它们在整个语料库中出现的频率较低,但在一起的频率较高,则它们的关系也会更加紧密。所以它更像是一个 (frequency_same_context)/(frequency_overall)。如果你不改变它,你应该没问题,我猜?

明月笑刀无情

如果您已经“精简”了一个单词的示例上下文的数量,而不是其他单词,那么相似性肯定会改变。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,它有意丢弃了许多非常频繁出现的词。这确实会有意地改变训练语料库中单词的相对频率。与无下采样相比,这里精心选择的值往往会加快训练速度并提高最终词向量的质量。为什么?一旦你有成百上千个频繁词的不同例子,额外的边际例子并不能帮助改善这个词 - 但它是花费更多的时间和更高比例的整体训练时间,改进那些常用词的模型。并且这些词的微小改进,在许多示例中,必须按照上述过程与对更稀有示例的更多词的改进进行权衡。丢弃一些“过于频繁”的词让其他词对模型的最终状态有更大的相对影响,甚至实际上甚至有效地缩小了稀有词之间的有效上下文距离(当更频繁的介入词被删除时)。

holdtom

Gensim 实现了两个词向量模型:跳码CBOW两者之间的区别在于如何使用特征化和标签来训练词向量模型。两种模型都在标记上下文上进行训练,以将标记自动编码为连续的语义向量空间。跳格训练的输入是上下文窗口 n-gram,而预测标签是第 n 个标记。如果我们使用二元上下文窗口,输入向量将使用标记;[Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]要预测的标签将是Token_nCBOW训练的输入是上下文窗口 n-gram,而预测标签是第 n 个标记。如果我们使用二元上下文窗口,输入向量将使用标记;Token_n要预测的标签将是[Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]目的是什么?显然这是一个粗略的过度简化,但它有助于我们问,词向量模型有什么作用?gensim中实现的词向量模型的目的是什么?这两个模型为给定的标记编码语义上下文。因此,询问模型中单词的相似程度应该与它们所训练的上下文成正比。TL; 博士WV 模型对表示中的词上下文进行编码。因此,单词的相似性与它们的数量不成正比,而与它们出现的上下文成正比。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python