精华内容
下载资源
问答
  • 这是基于The Unreasonable Effectiveness of Deep Features as a Perceptual Metric 中所提到的感知相似度计算网络代码,里面链接可供下载作者训练好的权重。供大家参考
  • 为了进一步地提高推荐系统的推荐准确度和用户满意度,文章对相似度计算方法进行了研究,分析了不同物品的相似权重这个因素对相似度计算准确度的影响,对传统的相似度计算方法进行了优化,并且通过实验数据集对推荐...
  • 上一小节我们跳过了 用户之间、物品之间 相似度计算的方法,在这一小节,我们详细叙述常见常用的集中相似度计算方法以及 相似度用户(物品)权重的重要性。 目录: 1、相似度 ---(1)、cosine(余弦相似度) ....

    教材:《推荐系统 技术、评估及高效算法》

    上一小节:推荐系统学习笔记之三——(基于邻域的)协同过滤算法的公式化、标准化

    上一小节我们跳过了 用户之间、物品之间 相似度计算的方法,在这一小节,我们详细叙述常见常用的集中相似度计算方法以及 相似度用户(物品)权重的重要性。

    目录:   1、相似度

                           ---(1)、cosine(余弦相似度)

                           ---(2)、Pearson Correlation(皮尔逊相关系数)

                           ---(3)、Adjusted Cosine(改良的余弦相似度)

                          ---(4)、Spearman Rank Correlation(斯皮尔曼等级关联)

                     2、权重的重要性

     

    相似度

       ML/DM领域常常用到距离和相似度的概念,在kmeans等聚类算法中,一般都是使用曼哈顿距离、欧氏距离等距离公式,这里我们要了解的是另一种——相似度。

      区分一下距离和相似度,在一个高维空间,两个点之间的距离就是距离。而两个向量是否平行、夹角多少,这就是相似度。

    1、cosine(余弦相似度)

        我们高中的时候都学过余弦公式: cos(x_a,x_b) =\frac{x_a^Tx_b}{||x_a|| ||x_b||}

        并且知道它的意义:它不在乎两个向量之间的距离,只在乎两个向量之间的角度,角度越小值越大,相似度越高。    

        在协同过滤中,它被用来计算用户的相似度:

                                    CV(u,v)=cos(x_v,x_u)=\frac{\sum _{i\in J_{uv}}r_{ui}r_{vi}}{\sqrt{\sum_{i\in J_u r_{ui}^2} \sum_{j\in J_v r_{vj}^2})}}

     然而在这种情况下存在一个问题,它没有考虑用户u和v的评分均值以及方差之间的差异(也就是我们前一小节的标准化)

     于是Pearson Correlation出场了。

     

    2、Pearson Correlation(皮尔逊系数)

      基于用户的PC值计算 用户u和v之间的相似度,r_u^-依然代表用户u的所有评分的平均分:

         PC(u,v)=\frac{\sum _{i\in J_{uv}}(r_{ui}-r_u^-)(r_{vi}-r_v^-)}{\sqrt{\sum_{i\in J_{uv} (r_{ui}-r_u^-)^2} \sum_{j\in J_{uv} (r_{vj}-r_v^-)^2})}}

      同样的,物品i和j之间的相似度计算:

    PC(i,j)=\frac{\sum _{u\in U_{ij}}(r_{ui}-r_i^-)(r_{uj}-r_j^-)}{\sqrt{\sum_{u\in U_{ij} (r_{ui}-r_i^-)^2} \sum_{u\in U_{ij} (r_{uj}-r_j^-)^2})}}

     

    3、Adjusted Cosine(改良的余弦相似度)

      在一些基于物品的例子中,用户间评分的方差明显要大于物品间评分的方差,而PC(i,j)更关注于物品间的方差,这时候我们使用更关注用户间方差的Adjusted Cosine能够取得更好的效果。

      AC(i,j)=\frac{\sum _{u\in U_{ij}}(r_{ui}-r_u^-)(r_{uj}-r_u^-)}{\sqrt{\sum_{u\in U_{ij} (r_{ui}-r_u^-)^2} \sum_{u\in U_{ij} (r_{uj}-r_u^-)^2})}}

     

    4、Spearman Rank Correlation(斯皮尔曼等级关联)

       SRC与PC直接使用评分值来计算不同,它是根据这些评分的排名来进行相似度计算的。

      设k_{ui}为物品i在用户u的所有评分物品中的排名(评分重复的取中间值),以用户相似度为例:

      SRC(u,v)=\frac{\sum _{i\in J_{uv}}(k_{ui}-k_u^-)(k_{vi}-k_v^-)}{\sqrt{\sum_{i\in J_{uv} (k_{ui}-k_u^-)^2} \sum_{j\in J_{uv} (k_{vj}-k_v^-)^2})}}

      公式体现上唯一的区别,就是k代替了r。一般SRC的效果不如PC。

     

    权重的重要性

      当用于计算相似度的评分数据比较少的时候,相似度的精准度就会降低,这是显而易见的事情。

      所以我们提出权重:当只有少量评分用于计算时,就会降低相似度重要性的权重

      给出公式:w_{uv}^{'} =\frac{min(|J_{uv}|,\gamma )}{\gamma} * w_{uv}

      gamma是个超参数,gamma越大,代表要求评分矩阵越宽越稠密。

      在文献中发现,一般gamma>=25会显著得提高预测评分的准确性,到50的时候可能得到最好的结果。当然,具体问题需要交叉验证来确定这个最优参数。

    展开全文
  • 传统的用户相似度计算方法中每个项目的权重是相同的,然而分析传统推荐算法和现实情形,用户间共同高评分项目的权重应该高于用户间共同低评分项目的权重,并且传统用户相似度计算方法没有考虑项目间的类群关系。...
  • 文本相似度主要应用于学术论文查重检测、搜索引擎去重等领域, 而传统的文本相似度计算方法中的特征.项提取与分词环节过于冗杂, 而且元素的随机挑选也会产生权重的不确定性. 为了解决传统方法的不足, 提出一种.基于...
  • 相似度计算有重要应用在许多领域,例如自然语言处理,情报信息检索,文档聚类,自动应答, 词义歧义消除,机器翻译等。本文对基于词的相似度计算进行了深入研究知网和单词相似度的计算分为三个步骤:(1) 计算...
  • SiameseLSTM-Keras 针对短语/句子/序列的相似性比较提出了一种评价模型——Siamese LSTM(孪生网络)。该模型是输入为句子对,输出为输入句子对的相似性得分,基于Keras实现。训练35轮左右模型达到拟合,测试集准确...
  • 通过项目相似度和评分差异性对计算结果影响的大小,计算时给予不同的权重,并在MovieLens上对推荐结果进行预测,试验结果显示,MAE值降低了2.5%,优化后的相似度计算方法可以提高个性化推荐系统的推荐准确率。
  • 相似度计算方法

    2021-03-19 09:49:18
    文章目录相似度计算方法1. 文本距离1.1 编辑距离(Edit Distance)1.2 最长公共子串、最长公共子序列(Long Common Subsequence,LCS)1.3 句向量表示(Word Averaging Model,WAM)1.4 WMD1.5 BM252. 统计指标2.1 ...

    相似度计算方法

    1. 文本距离

    1.1 编辑距离(Edit Distance)

    编辑距离,英文叫做 Edit Distance,又称 Levenshtein 距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。**如果两个字符串的编辑距离越大,说明它们越是不同。**许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

    1.2 最长公共子串、最长公共子序列(Long Common Subsequence,LCS)

    最长公共子序列问题:给定两个字符串, S S S(长度 n n n)和 T T T(长度 m m m),求解它们的最长公共子序列。其中公共子序列是指:按从左到右顺序在 S S S T T T中均出现的字符序列,子序列中字符在 S S S T T T无需连续

    例: S S S = ABAZDC T T T = BACBAD S S S T T T的最长公共子序列为:ABAD

    最长公共子串问题:给定两个字符串, S S S(长度 n n n)和 T T T(长度 m m m),求解它们的最长公共子串。其中公共子串是指:按从左到右顺序在 S S S T T T中均出现的字符串,子串中字符在 S S S T T T需要连续

    例: S S S = ABAZDC T T T = BACBAD S S S T T T的最长公共子串为:BA

    1.3 句向量表示(Word Averaging Model,WAM)

    获取 Sentence Vector :我们首先对句子进行分词,然后对分好的每一个词获取其对应的 Vector,然后将所有 Vector 相加并求平均,这样就可得到 Sentence Vector。

    在这里插入图片描述

    1.4 WMD

    WMD(Word Mover’s Distance)中文称作词移距离。通过寻找两个文本之间所有词之间最小距离之和的配对来度量文本的语义相似度。是EMD(Earth Mover’s Distance)在NLP领域的延伸。

    两个文本中每一个词都需要进行一一对应,计算一下相似度,并且是有侧重地计算相似度。

    c ( i , j ) c(i,j) c(i,j)表示单词 i , j i, j i,j之间的相似度计算,而 T i j T_{ij} Tij表示对于这种相似度的权重。由于两个文本之间的单词两两之间都要进行相似度计算,可知T是一个矩阵。 d i d_i di是归一化词频(normalized BOW),单词的重要程度与词的出现频率相关(并且归一化)。如果一个词 i i i在文本中出现的次数为 c i c_i ci,它的归一化词频为: d i = c i ∑ j = 1 n c j d_i=\frac{c_i}{\sum_{j=1}^{n}c_j} di=j=1ncjci.
    min ⁡ T ≥ 0 ∑ i , j = 1 n T i j c ( i , j ) s . t : ∑ j = 1 n T i j = d i ∀ i ∈ 1 , … , n ∑ i = 1 n T i j = d j ′ ∀ j ∈ 1 , … , n \min_{T\ge0}\sum_{i,j=1}^{n}T_{ij}c(i,j)\\ s.t: \sum_{j=1}^{n}T_{ij}=d_i \quad \forall i\in{1,\dots,n}\\ \sum_{i=1}^{n}T_{ij}=d_j' \quad \forall j\in{1,\dots,n}\\ T0mini,j=1nTijc(i,j)s.t:j=1nTij=dii1,,ni=1nTij=djj1,,n
    ​ 计算两个文档之间的WMD就要求解一个大型的线性规划问题。

    1.5 BM25

    BM25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法:有一个 q u e r y query query和一批文档Ds,现在要计算 q u e r y query query和每篇文档D之间的相关性,先对 q u e r y query query进行切分,得到单词 q i q_i qi,然后单词的分数由3部分组成:

    • 每个单词的权重 W i W_i Wi,可以由IDF表示, I D F ( q i ) = l o g ( N − n ( q i ) + 0.5 n ( q i ) + 0.5 ) IDF(q_i)=log(\frac{N-n(q_i)+0.5}{n(q_i)+0.5}) IDF(qi)=log(n(qi)+0.5Nn(qi)+0.5)
    • 相关性分数R:单词和D之间的相关性,单词和query之间的相关性

    S c o r e ( Q , d ) = ∑ i = 1 n W i ⋅ R ( q i , d ) R ( q i , d ) = f i ⋅ ( k 1 + 1 ) f i + K ⋅ q f i ⋅ ( k 2 + 1 ) q f i + k 2 K = k 1 ⋅ ( 1 − b + b ⋅ d l a v g d l ) Score(Q,d)=\sum_{i=1}^n W_i \cdot R(q_i, d)\\ R(q_i,d)=\frac{f_i\cdot (k_1+1)}{f_i+K}\cdot \frac{qf_i\cdot (k_2+1)}{qf_i+k_2}\\ K=k_1\cdot (1-b+b\cdot \frac{dl}{avgdl}) Score(Q,d)=i=1nWiR(qi,d)R(qi,d)=fi+Kfi(k1+1)qfi+k2qfi(k2+1)K=k1(1b+bavgdldl)

    • d l dl dl是文档 d d d的长度, a v g d l avgdl avgdl是整个文档集中文档的平均长度;
    • f i f_i fi是单词 q i q_i qi在文档 d d d中的词频, q f i qf_i qfi是单词 q i q_i qi q u e r y query query中的词频;
    • k 1 , b k_1, b k1,b是参数(通常 k 1 = 1.2 , b = 0.75 k_1=1.2, b=0.75 k1=1.2,b=0.75);
    • 简化情况下, q u e r y query query比较短,查询词 q i q_i qi q u e r y query query中只会出现一次,即 q f i = 1 qf_i=1 qfi=1,因此可以简化 R ( q i , d ) R(q_i,d) R(qi,d) q f i ⋅ ( k 2 + 1 ) q f i + k 2 = 1 \frac{qf_i\cdot (k_2+1)}{qf_i+k_2}=1 qfi+k2qfi(k2+1)=1.

    综上,BM25算法的相关性得分公式可总结为:
    S c o r e ( Q , d ) = ∑ i = 1 n I D F ( q i ) ⋅ f i ⋅ ( k 1 + 1 ) f i + k 1 ⋅ ( 1 − b + b ⋅ d l a v g d l ) Score(Q,d)=\sum_{i=1}^n IDF(q_i) \cdot \frac{f_i\cdot (k_1+1)}{f_i+k_1\cdot (1-b+b\cdot \frac{dl}{avgdl})} Score(Q,d)=i=1nIDF(qi)fi+k1(1b+bavgdldl)fi(k1+1)
    TF/IDF 和 BM25 同样使用逆向文档频率来区分普通词(不重要)和非普通词(重要),同样认为文档里的某个词出现次数越频繁,文档与这个词就越相关。实际上一个普通词在同一个文档中大量出现的作用会由于该词在 所有 文档中的大量出现而被抵消掉。

    BM25 有一个上限,文档里出现 5 到 10 次的词会比那些只出现一两次的对相关度有着显著影响。但是如图 TF/IDF 与 BM25 的词频饱和度 所见,文档中出现 20 次的词几乎与那些出现上千次的词有着相同的影响。

    BM25词饱和度.png

    2. 统计指标

    2.1 Cosine Similarity

    余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。Cosine Similarity的绝对值越大,两向量越相似,值为负,两向量负相关。
    C o s i n e S i m i l a r i t y ( X , Y ) = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 CosineSimilarity(X,Y)=\frac{\sum_{i=1}^n x_iy_i}{\sqrt{\sum_{i=1}^n x_i^2}\sqrt{\sum_{i=1}^n y_i^2}} CosineSimilarity(X,Y)=i=1nxi2 i=1nyi2 i=1nxiyi
    余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感,因此没法衡量每个维度上数值的差异,会导致这样一种情况:

    用户对内容评分,按5分制,X和Y两个用户对两个内容的评分分别为(1,2)和(4,5),使用余弦相似度得到的结果是0.98,两者极为相似。但从评分上看X似乎不喜欢2这个 内容,而Y则比较喜欢,余弦相似度对数值的不敏感导致了结果的误差,需要修正这种不合理性就出现了调整余弦相似度,即所有维度上的数值都减去一个均值,比如X和Y的评分均值都是3,那么调整后为(-2,-1)和(1,2),再用余弦相似度计算,得到-0.8,相似度为负值并且差异不小,但显然更加符合现实。

    调整余弦相似度(Adjusted Cosine Similarity):
    A d j u s t e d C o s i n e S i m i l a r i t y ( X , Y ) = ∑ i = 1 n ( x i − 1 n ∑ i = 1 n x i ) ( y i − 1 n ∑ i = 1 n y i ) ∑ i = 1 n ( x i − 1 n ∑ i = 1 n x i ) 2 ∑ i = 1 n ( y i − 1 n ∑ i = 1 n y i ) 2 AdjustedCosineSimilarity(X,Y)=\frac{\sum_{i=1}^n (x_i-\frac{1}{n}\sum_{i=1}^n x_i)(y_i-\frac{1}{n}\sum_{i=1}^n y_i)}{\sqrt{\sum_{i=1}^n (x_i-\frac{1}{n}\sum_{i=1}^n x_i)^2}\sqrt{\sum_{i=1}^n (y_i-\frac{1}{n}\sum_{i=1}^n y_i)^2}} AdjustedCosineSimilarity(X,Y)=i=1n(xin1i=1nxi)2 i=1n(yin1i=1nyi)2 i=1n(xin1i=1nxi)(yin1i=1nyi)

    2.2 Jaccard Similarity

    杰卡德系数,英文叫做 Jaccard index, 又称为 Jaccard similarity,用于比较有限样本集之间的相似性与差异性。

    Jaccard 系数值越大,样本相似度越高。

    计算方法:两个样本的交集除以并集得到的数值,当两个样本完全一致时,结果为 1,当两个样本完全不同时,结果为 0。

    计算结果范围: [ 0 , 1 ] [0,1] [0,1]
    J a c c a r d S i m i l a r i t y ( X , Y ) = X ∩ Y X ∪ Y JaccardSimilarity(X,Y)=\frac{X\cap Y}{X\cup Y} JaccardSimilarity(X,Y)=XYXY
    与杰卡德相似系数相反的概念是杰卡德距离(Jaccard Distance),可以用如下公式来表示:
    J a c c a r d D i s t a n c e ( X , Y ) = 1 − X ∩ Y X ∪ Y JaccardDistance(X,Y)=1-\frac{X\cap Y}{X\cup Y} JaccardDistance(X,Y)=1XYXY
    杰卡德距离用两个两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

    2.3 Pearson Correlation

    皮尔逊相关系数(Pearson Correlation)定义为两个变量之间的协方差和标准差的商。实际上也是一种余弦相似度,不过先对向量做了中心化,两向量各自减去均值后,再计算余弦相似度。当两个向量均值都为0时,皮尔逊相对系数等于余弦相似性。

    计算结果范围: [ − 1 , 1 ] [-1,1] [1,1],-1 表示负相关,1 比表示正相关。

    计算方法:
    P e a r s o n C o r r e l a t i o n ( X , Y ) = c o v ( X , Y ) σ X σ Y = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) ∑ i = 1 n ( X i − X ˉ ) 2 ∑ i = 1 n ( Y i − Y ˉ ) 2 Pearson Correlation(X, Y)=\frac{cov(X,Y)}{\sigma_X\sigma_Y}=\frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{\sqrt{\sum_{i=1}^n(X_i-\bar{X})^2}\sqrt{\sum_{i=1}^n(Y_i-\bar{Y})^2}} PearsonCorrelation(X,Y)=σXσYcov(X,Y)=i=1n(XiXˉ)2 i=1n(YiYˉ)2 i=1n(XiXˉ)(YiYˉ)

    2.4 Euclidean Distance

    明氏距离(Minkowski Distance)的推广: p = 1 p=1 p=1为曼哈顿距离, p = 2 p=2 p=2为欧氏距离,切比雪夫距离是明氏距离取极限的形式。
    M i n k o w s k i D i s t a n c e = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 / p M a n h a t t a n D i s t a n c e = ∑ i = 1 n ∣ x i − y i ∣ E u c l i d e a n D i s t a n c e = ∑ i = 1 n ( x i − y i ) 2 C h e b y s h e v D i s t a n c e = lim ⁡ p → ∞ ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 / p = max ⁡ ∣ x i − y i ∣ Minkowski Distance=(\sum_{i=1}^n |x_i-y_i|^p)^{1/p}\\ Manhattan Distance=\sum_{i=1}^n |x_i-y_i|\\ Euclidean Distance=\sqrt{\sum_{i=1}^n (x_i-y_i)^2}\\ Chebyshev Distance=\lim_{p \to \infty}(\sum_{i=1}^n |x_i-y_i|^p)^{1/p}=\max |x_i-y_i| MinkowskiDistance=(i=1nxiyip)1/pManhattanDistance=i=1nxiyiEuclideanDistance=i=1n(xiyi)2 ChebyshevDistance=plim(i=1nxiyip)1/p=maxxiyi
    如果两个点特征值不在一个数量级时,大的特征值会覆盖掉小的。如Y1(10000,1),Y2(20000,2)。

    标准欧氏距离的思路:将各个维度的数据进行标准化:标准化后的值 = ( 标准化前的值 - 分量的均值 ) /分量的标准差,然后计算欧式距离。
    S t a n d a r d E u c l i d e a n D i s t a n c e = ∑ i = 1 n ( x i − y i s i ) 2 Standard Euclidean Distance=\sqrt{\sum_{i=1}^n (\frac{x_i-y_i}{s_i})^2} StandardEuclideanDistance=i=1n(sixiyi)2

    3. 深度匹配

    参考

    常见的距离算法和相似度(相关系数)计算方法

    深度学习解决NLP问题:语义相似度计算

    相似度计算方法

    可插拔的相似度算法

    展开全文
  • https://blog.csdn.net/qq_32797059/article/details/106502737
    展开全文
  • 针对目前词语相似度算法中普遍存在的信息源单一化,计算结果非线性偏高,以及计算性能和效率的不一致的缺陷,提出了一种基于边权重的WordNet词语相似度计算方法。该方法在路径与深度的基础上,通过边权重改善...
  • 利用粗糙集及条件信息熵的相关理论,针对基于相似度计算的本体映射方法在相似度融合时权重过分依赖专家参与等问题,给出一种自动确定权重的策略,并通过实例验证了该方法的可行性.该方法充分考虑在信息量不确定情况下,...
  • 在传统个性化推荐算法的基础上,提出了一种基于多权重相似度的随机漫步推荐算法。为了解决传统协同过滤算法中忽略社交网络、热门项目以及共同评分项目之间影响等问题,通过引入万有引力公式计算社交网络中的用户...
  • 利用知网的义原层次树,考虑树的深度、密度等因素对义原节点权重的影响,得到义原相似度
  • 为了降低中文文本相似度计算方法的时间消耗、提高文本聚类的准确率,提出了一种PST_LDA(词性标注潜在狄利克雷模型)中文文本相似度计算方法。首先,对文本中的名词、动词和其他词进行词性标注;然后,分别对名词、...
  • 针对在模糊实例检索中传统的基于距离函数相似度算法的复杂性和不精确性等缺点,通过分析隶属函数提出了基于隶属函数的相似度计算方法。该方法根据不同类型的检索需求,构建了针对模糊数字型需求和模糊语义型需求的...
  • 文本相似度的计算作为其他文本信息处理的基础和关键,其计算准确率和...另一方面,利用特征项在特征选择阶段的权重对TDIDF方法进行加权处理,在不增加开销的情况下扩大了文档集的规模,还提高了相似度计算的精确度。
  • 【论文】文本相似度计算方法综述

    千次阅读 2019-11-05 15:25:50
    为了满足此需求,出现了多种技术,如:搜索引擎、推荐系统、问答系统、文档分类与聚类、文献查重等,而这些应用场景的关键技术之一就是文本相似度计算技术。因此了解文本相似度的计算方法是很必要的。 文本相似度...

    概述

    在信息爆炸时代,人们迫切希望从海量信息中获取与自身需要和兴趣吻合度高的内容,为了满足此需求,出现了多种技术,如:搜索引擎、推荐系统、问答系统、文档分类与聚类、文献查重等,而这些应用场景的关键技术之一就是文本相似度计算技术。因此了解文本相似度的计算方法是很有必要的。

    文本相似度定义

    文本相似度在不同领域被广泛讨论,由于应用场景不同,其内涵有所差异,故没有统一、公认的定义。

    Lin从信息论的角度阐明相似度与文本之间的共性和差异有关,共性越大、差异越小、则相似度越高;共性越小、差异越大、则相似度越低。相似度最大的情况是文本完全相同。同时提出基于假设推论出相似度定理,如下所示:
    S i m ( A , B ) = l o g P ( c o m m o n ( A , B ) ) l o g P ( d e s c r i p t i o n ( A , B ) ) Sim(A,B) = \frac{ log P(common(A,B)) } {log P(description(A,B))} Sim(A,B)=logP(description(A,B))logP(common(A,B))
    其中,common(A,B)是A和B的共性信息,description(A,B)是描述A和B的全部信息,上述公式表达出相似度与文本共性成正相关。 由于没有限制领域,此定义被采用较多。

    相关度与相似度是容易混淆的概念,大量学者没有对此做过对比说明。相关度体现在文本共现或者以任何形式相互关联(包括上下位关系、同义关系、反义关系、部件-整体关系、值-属性关系等)反映出文本的组合特点。而相似度是相关度的一种特殊情况,包括上下位关系和同义关系。由此得出,文本的相似度越高,则相关度越大,但是相关度越大并不能说明相似度高。

    相似度一般用[0,1]表示,该实数可以通过语义距离计算获得。相似度与语义距离呈反比关系,语义距离越小,相似度越高;语义距离越大,相似度越低。通常用下面的公式表示相似度与语义距离的关系。
    S i m ( S A , S B ) = α D i s ( S A , S B ) + α Sim(S_A,S_B) = \frac {\alpha} { Dis(S_A,S_B) + \alpha } Sim(SA,SB)=Dis(SA,SB)+αα
    其中, D i s ( S A , S B ) Dis(S_A,S_B) Dis(SA,SB)表示文本 S A , S B S_A,S_B SA,SB之间的非负语义距离, α \alpha α为调节因子,保证了当语义距离为0时上述公式的意义。

    文本相似度计算中还有一个重要的概念是文本表示,代表对文本的基本处理,目的是将半结构化或非结构化的文本转化为计算机可读形式。文本相似度计算方法的不同本质是文本表示方法不同

    文本相似度计算方法

    文本相似度计算方法

    文本相似度计算方法可分为四大类:

    • 基于字符串的方法(String-Based)
    • 基于语料库的方法(Corpus-Based)
    • 基于世界知识的方法(Knowledge-Based)
    • 其他方法

    基于字符串的方法

    该方法从字符串匹配度出发,以字符串共现和重复程度为相似度的衡量标准。根据计算粒度不同,可以将该方法分为基于字符的方法基于词语的方法。下图列出两种方法常见的算法以及思路

    基于字符串的方法

    基于字符串的方法是在字面层次上的文本比较,文本表示即为原始文本,该方法原理简单,易于实现,现已成为其他方法的计算基础。

    但不足的是将字符或词语作为独立的知识单元,并未考虑词语本身的含义和词语之间的关系。以同义词为例,尽管表达不同,但具有相同的含义,而这类词语的相似度依靠基于字符串的方法并不能准确计算。

    基于语料库的方法

    基于语料库的方法利用语料库中获取的信息计算文本相似度。基于语料库的方法可以划分为:

    • 基于词袋模型的方法
    • 基于神经网络的方法
    • 基于搜索引擎的方法

    基于词袋

    词袋模型(Bag of Words Model,BOW)建立在分布假说的基础上,即“词语所处的上下文语境相似,其语义则相似”。其基本思想是:不考虑词语在文档中出现的顺序,将文档表示成一系列词语的组合。

    根据考虑的语义成程度不同,基于词袋模型的方法主要包括:

    • 向量空间模型(Vector Space Model,VSM)
    • 潜在语义分析(Latent Semantic Analysis,LSA)
    • 概率潜在语义分析(Probabilistic Latent Semantic Analysis,PLSA)
    • 潜在狄利克雷分布(Latent Dirichlet Allocation,LDA)

    VSM

    VSM模型的基本思想是将每篇文档表示成一个基于词频或者词频-逆文档频率权重的实值向量,那么N篇文档则构成n维实值空间,其中空间的每一维都对用词项,每一篇文档表示该空间的一个点或者向量。两个文档之间的相似度就是两个向量的距离,一般采用余弦相似度方法计算。

    VSM有两个明显的缺点:一是该方法基于文本中的特征项进行相似度计算,当特征项较多时,产生的高维稀疏矩阵导致计算效率不高;二是向量空间模型算法的假设是文本中抽取的特征项没有关联,不符合文本语义表达。

    LSA,PLSA

    LSA算法的基本思想是将文本从稀疏的高维词汇空间映射到低维的潜在语义空间,在潜在的语义空间计算相似性。LSA是基于VSM提出的,两种方法都是采用空间向量表示文本,但LSA使用潜在语义空间,利用奇异值分解提高对高维的词条-文档矩阵进行处理,去除了原始向量空间的某些“噪音”,使数据不再稀疏。Hofmann在LSA的基础上引入主题层,采用期望最大化算法(EM)训练主题。

    LSA本质上是通过降维提高计算准确度,但该算法复杂度比较高,可移植性差,比较之下,PLSA具备统计基础,多义词和同义词在PLSA中分别被训练到不同的主题和相同的主题,从而避免了多义词,同义词的影响,使得计算结构更加准确,但不适用于大规模文本。

    LDA

    LDA主题模型是一个三层的贝叶斯概率网络,包含词、主题和文档三层结构。采用LDA计算文本相似性的基本思想是对文本进行主题建模,并在主题对应的词语分布中遍历抽取文本中的词语,得到文本的主题分布,通过此分布计算文本相似度。

    以上三类尽管都是采用词袋模型实现文本表示,但是不同方法考虑的语义程度有所不同。基于向量空间建模的方法语义程度居中,加入潜在语义空间概念,解决了向量空间模型方法的稀疏矩阵问题并降低了多义词,同义词的影响。基于LDA的主题模型的方法语义程度最高,基于相似词语可能属于统一主题的理论,主题经过训练得到,从而保证了文本的语义性。

    基于神经网络

    基于神经网络生成词向量计算文本相似度是近些年提的比较多的。不少产生词向量的模型和工具也被提出,比如Word2Vec和GloVe等。词向量的本质是从未标记的非结构文本中训练出一种低维实数向量,这种表达方式使得类似的词语在距离上更为接近,同时较好的解决了词袋模型由于词语独立带来的维数灾难和语义不足问题。

    基于神经网络方法与词袋模型方法的不同之处在于表达文本的方式。词向量是经过训练得到的低维实数向量,维数可以认为限制,实数值可根据文本距离调整,这种文本表示符合人理解文本的方式,所以基于词向量判断文本相似度的效果有进一步研究空间。

    基于搜索引擎

    基本原理是给定搜索关键词 x , y x,y x,y,搜索引擎返回包含 x , y x,y x,y的网页数量 f ( x ) , f ( y ) f(x),f(y) f(x),f(y)以及同时包含 x , y x,y x,y的网页数量 f ( x , y ) f(x,y) f(x,y),计算谷歌相似度距离如下所示:
    N G D ( x , y ) = G ( x , y ) − m i n ( G ( x ) , G ( y ) ) m a x ( G ( x ) , G ( y ) = m a x { l o g   f ( x ) , l o g   f ( y ) } − l o g   f ( x , y ) l o g   N − m i n l o g   f ( x ) , l o g   f ( y ) NGD(x,y) = \frac { G(x,y) - min(G(x),G(y)) } { max(G(x),G(y)} \\ = \frac {max\{ log \,f(x), log\,f(y) \} - log \, f(x,y)} { log \, N - min{log \,f(x), log \, f(y)} } NGD(x,y)=max(G(x),G(y)G(x,y)min(G(x),G(y))=logNminlogf(x),logf(y)max{logf(x),logf(y)}logf(x,y)

    但是该方法最大的不足是计算结果完全取决于搜索引擎的查询效果, 相似度因搜索引擎而异

    基于世界知识的方法

    基于世界知识的方法是利用具有规范组织体系的知识库计算文本相似度,一般分为两种:基于本体知识和基于网络知识。

    基于本体知识

    文本相似度计算方法使用的本体不是严格的本体概念, 而指广泛的词典、叙词表、词汇表以及狭义的本体。由于本体能够准确地表示概念含义并能反映出概念之间的关系, 所以本体成为文本相似度的研究基础[7]。最常利用的本体是通用词典, 例如 WordNet、《知网》(HowNet)和《同义词词林》等, 除了词典还有一些领域本体, 例如医疗本体、电子商务本体、地理本体、农业本体等。

    结合Hliaoutaki、Batet等的研究,将基于本体的文本相似度算法概括为四种:

    • 基于距离
    • 基于内容
    • 基于属性
    • 混合式相似度

    下表列出了各种方法的基本原理、代表方法和特点
    基于本体的文本相似度算法

    基于网络知识

    由于本体中词语数量的限制,有些学者开始转向基于网络知识方法的研究,原因是后者覆盖范围广泛、富含丰富的语义信息、更新速度相对较快,使用最多的网络知识是维基百科、百度百科。网络知识一般包括两种结构,分别是词条页面之间的链接和词条之间的层次结构。

    基于网络知识的文本相似度计算方法大多利用页面链接或层次结构,能较好的反映出词条的语义关系。但其不足在于:词条与词条的信息完备程度差异较大,不能保证计算准确度,网络知识的生产方式是大众参与,导致文本缺少一定的专业性。

    其他方法

    除了基于字符串、基于语料库和基于世界知识的方法, 文本相似度计算还有一些其他方法,比如:

    • 句法分析
    • 混合方法

    总结

    本文总结了文本相似度计算的四种方法,以及他们的优缺点。作者认为今后文本相似度的计算方法趋势有三个方向,分别是:

    • 基于神经网络的方法研究将更加丰富
    • 网络资源为文本相似度计算方法研究提供更多支持
    • 针对特定领域以及跨领域文本的相似度计算将成为今后发展的重点

    【技术服务】,详情点击查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg

    扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!

    展开全文
  • Google发明的的文本去重算法,适合于大批量文档的相似度计算 主要步骤 对文本分词,得到N维特征向量(默认为64维) 为分词设置权重(tf-idf) 为特征向量计算哈希 对所有特征向量加权,累加(目前仅进行非加权累加)...
  • 为了降低中文文本相似度计算方法的时间消耗、提高文本聚类的准确率,提出了一种PST_LDA(词性标注潜在狄利克雷模型)中文文本相似度计算方法。首先,对文本中的名词、动词和其他词进行词性标注;然后,分别对名词、...
  • 推荐系统中物品相似度计算

    千次阅读 2019-03-21 21:20:14
    这次介绍Item(User)相似度计算方法,其广泛运用于基于邻域的协同过滤算法的推荐系统。简而言之,基于邻域,就是基于相邻的元素进行推荐,而相邻元素的得到过程就是相似度计算过程。 对于空间上的点来说:传统...
  • nlp中文本相似度计算问题

    万次阅读 2018-06-19 22:24:55
    当然文本的相似度计算进一步的应用,比如文本的分类、聚类等。 文章结构:本文先介绍最直接的字面距离相似度度量,而后介绍语义主题层面的度量,最后介绍目前一些新的相似度计算方法。 一、字面距离相似度度量...
  • 针对传统的基于距离相似度计算专家权重的不足,提出一种基于比例计算相似度计算方法,并运用模糊聚类分析的原理对专家进行聚类分析,从而得出确定群组AHP(Analytic Hierarchy Process)专家权重的一种新方法,给出了...
  • 1:对文本的分类,不管用...具体的每个值就是这个特征的权重(关于权重计算很多种,我这个地方只用了词频来代表)。然后读入测试本文,根据该测试文本中的特征,看和样本中的特征的向量做运算,这个地方用的是求向量
  • 自然语言语义相似度计算方法

    千次阅读 2018-04-19 00:00:00
    计算机对主观题的自动评阅准确与否,主要取决于其对文本相似度的计算是否准确。由于文本相似度计算在文档复制检查、信息检索和机器翻译等领域都十分广泛的应用,所以,近年来越来...
  • 目录 1. 文本相似度问题与应用 ...文本相似度问题包含:词与词、句与句、段落与段落、篇章与篇章之间的相似度问题;以及词与句、句与段落、段落与篇章等之类的相似度问题,这里的相似指的是语义...
  • bert文本相似度计算入门(Getting Started) Introduction介绍 Document similarities is one of the most crucial problems of NLP. Finding similarity across documents is used in several domains such as ...
  • 文本相似度计算-bm25算法详解

    千次阅读 2019-03-04 20:05:12
    1 bm25 说到bm25算法,那么就不得不说一下TF-IDF了,关于TF-IDF,解释如下: 1.1 TF-IDF介绍 ...IDF:Inverse Document Frequency即逆文本频率,那么关键是理解IDF的含义,首先我们给出IDF的计算公式: ...
  • 将关系义原和关系符号描述结构进行加权合并,综合考虑主要特征、次要特征、关系特征计算义项相似度,减少补充义原作为次要特征中的基本义原所带来的误差,在此基础上提出一种改进的词汇相似度计算方法。实验证明,该...
  • 问题对语义相似度计算-参赛总结

    千次阅读 2019-04-18 16:25:26
    问题对语义相似度计算(从0到0.5+) 短短一个多月的时间,我学到了很多很多东西,从一个呆头小白初长成人。 首先,必须感谢我的导师能给我这个机会从头到尾完整地参加这次比赛,至始至终地为我们出谋划策,和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,255
精华内容 10,102
关键字:

有权重的相似度计算