首页 > 解决方案 > 如何将一对向量提供给分类器以对相似/不相似进行分类

问题描述

我正在尝试将文档向量对(Doc2Vec,每个文档 300 个特征)分类为相似/不相似。我尝试了具有附加功能(如文档大小等)的距离测量(余弦等),但没有达到完美的结果,特别是因为我怀疑只有一些功能对我的问题有意义。

将两个向量提供给分类器(LogisticRegression、SVM 等)的简单但有效的方法是什么?

是否有最先进的方法来分类特征向量之间的相似性或关系?或者,如果有并发的方法,对于哪个问题/分类器更喜欢哪一个?

标签: machine-learningsvmlogistic-regressionsimilaritydoc2vec

解决方案


通常,您的目标是对文档进行矢量化(例如 via Doc2Vec),以提供向量之间的相似性是有用的连续相似性度量的向量。(通常这是余弦相似性,但在某些情况下,欧几里得距离也可能值得尝试。)

如果从阶段出来的向量Doc2Vec还没有表现出这一点,那么首先要做的是调试和优化该过程。这可能涉及:

  • 仔细检查所有内容,包括过程的记录输出,以查找错误
  • 调整文档预处理,以确保保留显着的文档特征并丢弃噪声
  • 调整Doc2Vec元参数和模式,以确保生成的向量对最终目标中重要的相似性类型敏感。

Doc2Vec如果没有关于您的数据大小和特征、到目前为止的选择/代码和最终目标的更多详细信息,很难说更多关于改进该步骤的信息。

如何确定两个文档是否“足够相似”?你需要多少这样的评估数据来帮助Doc2Vec以可重复的、定量的方式对不同的模型进行评分。(能够进行这种自动评分将让您测试更多的Doc2Vec排列。)是否有文档对的示例,其中简单的 doc-vector cosine-similarity 运行良好或运行不佳?

到目前为止,我在您选择的单词中看到了两个危险信号:

  • “没有达到完美的结果”——获得“完美”的结果是一个不切实际的目标。考虑到项目的资源和对复杂性的容忍度,您想找到接近最新技术的东西
  • “每个文档 300 个功能” -Doc2Vec并没有真正找到独立的“300 个功能”。它是一个 300 维的“密集”“嵌入”向量。每个方向——不仅仅是 300 个轴——都可能是有意义的。因此,即使某些“方向”对您的需求更为重要,它们也不太可能与精确的尺寸轴完全相关。

可能对(v1 - v2)差异或(v1 || v2)串联的分类器可以帮助改进“是否足够相似”的决定,但您需要大量的训练数据,并且可能需要一个非常复杂的分类器。


推荐阅读