0

我有两个语料库——一个是所有女性领导人的演讲,另一个是男性领导人的演讲。我想检验一个假设,即一个语料库中两个单词之间的余弦相似度与另一个语料库中相同两个单词之间的余弦相似度显着不同。这样的 t 检验(或等效的)是否合乎逻辑且可能?

此外,如果两个语料库的余弦相似度不同,我如何检查第三个语料库中相同两个单词之间的余弦相似度是否与第一个或第二个语料库更相似?

4

1 回答 1

2

这当然是可能的。给定一定数量的数据,它是否有意义就更难回答了。

请注意,在单独的训练课程中,由于算法使用的固有随机性,给定的单词A不一定会出现在相同的坐标中。甚至在对完全相同的数据进行训练时也是如此。

通常情况下,当有足够的数据/训练和精心选择的参数时,与其他词BC等的距离/方向应该具有相似的整体有用性。所以ABC等可能在不同的地方,距离/方向略有不同——但相对关系仍然相似,就词的邻域而言,或者(AB)方向仍然可以预测某些如果应用于其他单词C等,则人类可感知的含义差异。

因此,您应该避免在来自不同训练运行或语料库的单词之间进行直接的余弦相似性比较,但您可能会发现相似性差异(ABA' - B')或前 N 个列表或相对排名的差异。(这也可能是如何与第三个语料库进行比较:某些成对相似性或前 N 个列表或相关单词在其他单词“最相似”结果中的序数排名在多大程度上存在差异或相关性。)

您可能希望对您的度量进行健全性检查,通过查看它们在逻辑上“不应该”的比较中暗示有意义的差异的程度。例如,针对刚刚重新洗牌的完全相同的语料库进行多次运行,或者针对完全相同的语料库的随机子集进行多次运行。(在检查 word2vec 模型之间差异的显着性时,我不知道有任何正式的“t 检验”,但检查某些差异是否足以将真正不同的语料库与仅 1/N 个随机子集区分开来相同的语料库,达到一定的置信水平可能是断言有意义的差异的基础方法。)

在某种程度上,这种“应该非常相似”的运行反而显示了明显不同的最终向量结果,这可能暗示:

  • 语料库太小,每个单词的不同用法示例太少 - word2vec 受益于大量数据,与有时用于大型 word2vec 模型的数千亿个训练单词相比,政治演讲集可能非常小

  • 模型参数错误 - 模型过大(因此容易过度拟合),或训练通道不足,或其他次优参数可能会产生对于相同训练数据变化更大的模型

您还需要注意训练语料库大小的不匹配。10 倍大的语料库意味着更多的单词将通过固定min_count阈值,并且任何选择的N epochs训练都将涉及 10 倍的常用词示例,并支持更大(向量大小)模型中的稳定结果 - 而相同具有较小语料库的模型参数会产生更不稳定的结果。

您可以考虑的另一种技术是将语料库组合到一个训练集中,但根据相关说话者的不同,将感兴趣的关键词标记不同。例如,您可以将单词替换为'family'or 'f-family''m-family'具体取决于说话者的性别。(您可以对每次出现或部分出现都执行此操作。您还可以多次将每个语音输入到您的语料库中,有时使用实际单词,有时将部分或全部替换为上下文标记的替代词。 )

在这种情况下,您最终会得到一个最终模型,并且所有单词/上下文标记都位于“相同”坐标空间中以进行直接比较。但是,伪词'f-family'and'm-family'会更多地受到它们特定于上下文的用法的影响——因此它们的向量可能会'family'以有趣的暗示方式彼此不同,并且与原始词(如果你还保留了它的未使用实例)不同。

另请注意:如果使用原始 Google word2vec 代码版本的“类比求解”方法,或其他遵循其示例的库(如gensim),请注意它不会返回任何作为输入提供的单词作为答案. 'man' : 'doctor' :: 'woman' : _?_因此,当通过调用解决性别问题时model.most_similar(positive=['doctor', 'woman'], negative=['man']),即使底层模型仍然具有'doctor'与目标坐标最近的词,它也会作为输入词之一自动跳过,而是产生第二近的词。

一些早期的“词向量偏差”文章忽略了这个细节,因此倾向于暗示更大的偏差,由于这个实现工件,即使这种偏差很小甚至不存在。(您可以提供原始向量,而不是字符串标记,most_similar()然后得到完整的结果,而不需要对输入标记进行任何过滤。)

于 2020-05-12T00:24:17.257 回答