如何将一对向量馈入分类器以对相似/不相似进行分类

时间:2019-03-28 17:20:21

标签: machine-learning svm logistic-regression similarity doc2vec

我正在尝试将文档向量对(Doc2Vec,每个文档300个特征)分类为相似/不相似。我尝试了带有其他功能(例如文档大小等)的“距离测量”(余弦等),但是并没有达到理想的效果,尤其是因为我怀疑只有某些功能对我的问题有意义。

将两个向量馈送到分类器(LogisticRegression,SVM等)的简单但有效的方法是什么

  • 我已经测试了一个向量与另一个向量的减法,并使用绝对结果作为特征向量:abs(vec1 -vec2),但这比距离信息更糟
  • 我还尝试了两个向量的级联,但结果也较差。我怀疑尺寸加倍会增加对训练样本的需求,至少对于某些分类器来说如此。

是否有用于对特征向量之间的相似性或关系进行分类的最新方法?或者,如果有并发方法,则哪个方法更适合哪个问题/分类器?

1 个答案:

答案 0 :(得分:1)

通常,您的目标是对文档进行矢量化(例如,通过$string_1 = "abed"; // only string $string_2 = "abed 5"; // with int $result_1 = convert_to_int($string_1); // output is 1254 $result_2 = convert_to_int($string_2); // output is 125405 )以提供矢量,其中矢量之间的相似性是有用的连续相似性度量。 (通常这是余弦相似性,但在某些情况下,欧氏距离可能也值得尝试。)

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

  • 仔细检查所有内容,包括过程的记录输出是否有错误
  • 对文档进行预处理,以确保保留重要的文档功能并丢弃噪声
  • 调整Doc2Vec元参数和模式,以确保生成的向量对最终目标中非常重要的相似度敏感。

在没有更多有关数据大小和字符,到目前为止Doc2Vec选择/代码以及最终目标的更多细节的情况下,很难说出更多有关改进该步骤的信息。

如何确定两个文档是否“足够相似”?您需要多少此类评估数据才能以可重复的定量方式为不同的Doc2Vec模型评分。 (能够进行这样的自动评分将使您测试更多的Doc2Vec排列。)是否有一些简单的doc-vector余弦相似性很好或不起作用的doc对示例?

到目前为止,我在您选择的单词中看到两个红色标记:

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

分类Doc2Vec(v1 - v2)的分类器可能有助于优化“足够相似或不相似”的决定,但是您需要大量的训练数据,也许非常复杂的分类器。