美文网首页
语义相似度度量

语义相似度度量

作者: yxwithu | 来源:发表于2018-08-28 19:06 被阅读0次

在比较两个文本语义是否相同的时候,通常的做法是

  1. 使用传统方法:one-hot word vector -> tf-idf/BM25 加权 -> 使用欧式距离或者cosine相似系数
  2. 使用深度学习方法:
    a. 得到词的embedding,对词的embedding做(加权)平均得到句子向量,再用度量方法;
    b. 借助深度模型得到句子的embedding,在句子语义层面上使用度量方法。

下面主要讨论深度学习中欧式距离和cosine相似系数的一些度量方法
主要参考自: Wang S, Jiang J. A compare-aggregate model for matching text sequences[J]. arXiv preprint arXiv:1611.01747, 2016.


这篇论文解决的问题是句子匹配任务, 作者搭建了一个模型,并且重点比较了几种相似度度量方法
先大致说一下这个模型,感兴趣的可以看原文和相关分析,分为四个步骤:

  1. Preprocess, 对原始的问题和答案进行预处理,使每个词获得句子的上下文信息,使用的是只保留了输入门的lstm;
  2. Attention, 传统的attention机制,用问题对答案加attention
  3. Comparison,整合,用于比较相似度
  4. Aggregation,结合CNN,构建输出网络

下面主要说一下两个vector的整合方式:

  1. NN: 就是将两个向量拼接起来,然后过一层神经网络;


  2. Euc+Cos: 计算两个向量的欧式距离以及它们的余弦相似度,再把两者的结果拼接起来。


  3. Sub/Mult : 两个向量按位减后乘或者直接相乘


  4. Sub/Mult + NN:在3的基础上将二者拼起来,接一个NN


  5. NTN: neural tensor network,张量网络,能比较好的获得词向量间交叉乘积的能力,不过还是element-wise,具体原理可以参考Quora上的回答论文原文


得到的是一个L维的向量,类似于CNN的filter可以定义多个,这里可以理解成定义了多个相乘关系。

实验结果:


可以看到这篇文章的模型在三个数据集上取得了非常好的结果,其中element-wise multiplication相关的方式是比较好的comparison function,比我们之前常用的余弦相似度,欧氏距离等要高出不少。

相关文章

  • 语义相似度度量

    在比较两个文本语义是否相同的时候,通常的做法是 使用传统方法:one-hot word vector -> tf-...

  • 语义相似度

    一、语义相似度的简介 在很多情况下,直接计算词语之间的相似度非常的困哪,一般情况下,先计算词语之间的距离,再转换...

  • 文本相似度 之余弦夹角 度量算法

    相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越...

  • 余弦计算相似度理解以及计算

    相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越...

  • 计算句子相似度

    计算句子相似度,①常用方法有基于语义和词序相似度计算方法,②基于关系向量模型基于语义和词序的句子相似度计算方法简介...

  • NLP详解

    (一)余弦相似度、向量空间模型 1、相似度 • 相似度度量:计算个体间相似程度• 相似度值越小,距离越大,相似度值...

  • Numpy计算余弦相似度:向量之间,向量与矩阵,矩阵与矩阵

    摘要:Numpy,Python 余弦相似度公式 余弦相似度是衡量向量夹角的余弦值作为相似度度量指标,夹角越小相似度...

  • 度量——相似

    相似,这个词我觉得大家肯定不陌生。在日常生活中,有很多东西都是相似的。在平常,我们理解的相似其实就是两个比较像的...

  • 余弦相似度

    1 余弦相似度 余弦相似度是通过测量两个向量之间夹角的余弦值来度量它们之间的相似度的,该结果与向量的长度无关,仅仅...

  • NLP初学之--语义相似度

网友评论

      本文标题:语义相似度度量

      本文链接:https://www.haomeiwen.com/subject/bvmqwftx.html