首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较三个预先训练过的模型的余弦相似性?

如何比较三个预先训练过的模型的余弦相似性?
EN

Stack Overflow用户
提问于 2020-05-11 18:38:20
回答 1查看 697关注 0票数 0

我有两个语料库--一个是所有女性领袖的演讲,另一个是男性领袖演讲。我想检验一个语料库中两个词之间的余弦相似性与另一个语料库中相同的两个词之间的余弦相似性是显著不同的假设。这样的t检验(或等效的)逻辑和可能吗?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-12 00:24:17

这当然是可能的。如果考虑到一定数量的数据,这是否有意义,就更难回答了。

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

一般情况下,当有足够的数据/训练和精心选择的参数时,到其他词B、C等的距离/方向应该具有类似的总体有用性。因此,A,B,C等可能在不同的地方,不同的距离/方向--但相对关系仍然相似,就词语邻接而言,或者(A)方向仍然可以预测某些人类感知的意义--如果应用于其他单词C等等。

因此,你应该避免直接进行余弦--不同训练中的单词之间的相似性比较--跑步或身体,但你可能会在相似性( A-B vs A‘- B’)或顶级N列表或相对排名中找到意义。(这也可能是如何与第三个语料库进行比较:在某些两两相似之处,或顶部N列表中,或在彼此“最相似”的结果中,相关单词的序号在多大程度上存在差异或相关性。)

您可能希望对您的度量进行一次明智的检查,看看它们在多大程度上意味着在逻辑上“不应该”的比较中存在有意义的差异。例如,多次运行在完全相同的语料库上,这就是蜜蜂重组,或者是针对完全相同语料库的随机子集。(在检验word2vec模型之间差异的意义时,我不知道任何形式的“t检验”,但检查某些差异是否足以区分真正不同的语料库,从同一语料库的第1/N个随机子集到一定的置信度,可能是断言有意义差异的一种有根据的方法。)

在这种“应该非常相似”的情况下,运行反而会显示明显不同的结束向量结果,这可能暗示着:

  • 语料库太小,每个单词的不同用法示例太少,而政治演讲集可能比有时用于大型word2vec模型
  • 的数以千亿计的训练词要小得多。该模型是参数化的--一个过大(因而容易过度拟合)模型,或者训练通过率过低,或者其他次优参数可能会产生对于相同的训练数据(

)差异较大的模型。

你也要注意训练语料库大小上的不匹配。一个10倍大的语料库意味着更多的单词将通过一个固定的min_count阈值,而任何选择的N epochs训练都将包含10倍多的普通单词的例子,并且在一个更大的(向量大小)模型中支持稳定的结果,而相同的模型参数和一个较小的语料库会产生更不稳定的结果。

你可以考虑的另一种方法是将身体组合成一个训练集,但根据相关说话者的不同,将感兴趣的关键词的标记咀嚼不同。例如,您可以根据说话者的性别,将'family'一词替换为'f-family''m-family'。(您可以对每一次事件或部分事件执行此操作。你也可以在你的语料库中输入不止一次,有时用实际的单词,有时用上下文标记的交替词替换一些或全部。)

在这种情况下,您将得到一个最后的模型,以及所有的单词/上下文标记在“相同”的坐标空间中进行直接比较。但是,假词'f-family''m-family'会更多地受到它们的上下文--特定用法--的影响,因此它们的载体可能彼此不同,也可能与原始的'family' (如果您也保留了它的用法的未处理的实例)有着有趣的暗示性。

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

一些早期的“偏误向量”编写忽略了这一细节,因此倾向于暗示更大的偏见,因为这种实现伪影,即使这种偏差小到不存在。(您可以向most_similar()提供原始向量,而不是字符串-令牌,然后获得完整的结果,而无需对输入标记进行任何过滤。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61736874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档