gensim Doc2Vec 模型的评估

Evaluation of gensim Doc2Vec model for Recommendations

提问人:swygerts 提问时间:1/6/2023 更新时间:1/6/2023 访问量:168

问:

我开发了一个管道来从文档中提取文本,对文本进行预处理,并在给定文档上训练gensim Doc2vec模型。鉴于我的语料库中有一份文档,我想推荐语料库中的其他文档。

我想知道如何在没有预定义的“好”建议列表的情况下评估我的模型。有什么想法吗?

NLP GenSim 推荐引擎 评估 doc2vec

评论


答:

1赞 gojomo 1/6/2023 #1

一个简单的自我检查可用于捕获模型训练管道的一些大问题(例如严重错误参数化或数据/纪元不足)是重新推断训练文本的向量(使用 ),并检查以下情况:Doc2Vec.infer_vector()

  1. 同一文本的批量训练向量“接近”重新推断的向量 - 例如,在对重新推断的文本进行操作时,其最近邻或顶部邻居之一.most_similar()
  2. 批量训练向量和重新推断的向量的最近邻(从)的总体列表非常相似。.most_similar()

由于Gensim项目常见问题解答的Q11和Q12中解释的原因,它们不一定完全相同,但如果它们截然不同,那么一些基本问题就出了问题,比如:

  • 训练数据不足(在数量或质量/形式上)
  • 参数化错误,例如数据量的 epoch 太少或太大(容易过拟合)的向量

然而,归根结底,各种数据源和预期用途以及“值得推荐”的可能维度意味着你需要根据项目的需求,通常来自目标受众(或你自己模拟/表示它的能力)。

介绍“段落向量”算法(类内部内容)的原始论文中,以及在维基百科和arXiv文章中对其进行评估的后续文章中,一些评估使用了文档的三元组,其中2个三元组被推测为“必然相似”基于一些预先存在的系统的分组,第三个是随机选择的。Doc2Vec

该算法的性能以及不同参数选择下的相对性能是根据它比第 3 个随机选择的文档更靠近的频率来评分的。

例如,原始论文的一篇评估使用简短的搜索引擎结果片段作为文档,并将任何 2 个文档视为同一查询的同级前 10 个结果,作为推定相关。后续论文的两篇评估使用了维基百科或arXiv的人工策划类别,以表明同一类别的文章应该是推定相关的。

它并不完美,但允许从已经存在的系统/数据中创建大型评估集,这些系统/数据通常将结果指向与人类关联感相同的方向。

也许您可以为您的数据找到类似的预先存在的指南。或者,在执行临时检查时,请务必捕获您所做的每个判断,以便随着时间的推移,它成为一个不断增长的理想配对数据集,这些配对要么 (a) 优于共同呈现的其他结果;或 (b) 只是“大概足够好”,以至于它们通常应该比其他随机的第 3 个文件排名更高。这种合意性数据中的大量不精确性是可以容忍的,因为它可以随着探针配对集的增长而趋于平衡,并且能够自动进行批量定量评估(针对新参数/模型重用旧评估)的力量比评估成本中的任何小故障都要多得多。