天天看點

2. 文本相似度計算-距離的度量

1. 文本相似度計算-文本向量化

2. 文本相似度計算-距離的度量

3. 文本相似度計算-DSSM算法

4. 文本相似度計算-CNN-DSSM算法

1. 前言

上文介紹了文本的向量化處理,本文是在上文的向量化處理後的資料進行距離的計算。距離度量的方式有多種多樣,但是一種相似度計算方式并不适用與所有的情況,需要根據不同的情況和資料類型進行選擇。

2. 相似度計算方式

相似度就是比較兩個事物的相似性。一般通過計算事物的特征之間的距離,如果距離小,那麼相似度大;如果距離大,那麼相似度小。

簡化問題:假設有兩個對象\(X\)、\(Y\),都包括\(N\)維特征,\(X=(x_1,x_2,x_3,..,x_n),Y=(y_1,y_2,y_3,..,y_n)\),計算\(X\)和\(Y\)的相似性。常用的方法如下:

2.1 餘弦相似度

餘弦相似度用向量空間中兩個向量夾角的餘弦值作為衡量兩個個體間差異的大小。相比距離度量,餘弦相似度更加注重兩個向量在方向上的差異,而非距離或長度上。适合word2vec模型向量化的資料。

\[cos\theta = \frac{\sum_{i=1}^{n}x_{i}*y_{i}}{\sqrt{\sum_{i=1}^{n}x_{i}^{2} \sum_{i=1}^{n}y_{i}^{2}}}

\]

2.2 歐式距離

歐氏距離是最常用的距離計算公式,衡量的是多元空間中各個點之間的絕對距離,當資料很稠密并且連續時,這是一種很好的計算方式。

因為計算是基于各次元特征的絕對數值,是以歐氏度量需要保證各次元名額在相同的刻度級别,如在KNN中需要對特征進行歸一化。

\[d = \sqrt{\sum_{i=1}^{n}(x_{i}-y_{i})^{2}}

2.3 曼哈頓距離

曼哈頓距離簡單來說就是統計相同坐标軸上的距離的和。

\[d = \sum_{i=1}^{n}|x_{i}-y_{i}|

2.4 闵可夫斯基距離

大家有沒發現歐式距離和曼哈頓距離在形式上比較相近。是的,其實它們是闵可夫斯基距離的特殊化。适合TF-IDF向量化後的資料或者提煉出來的主題模型資料。

\[d = (\sum_{i=1}^{n}(x_{i}-y_{i})^{p})^{\frac{1}{p}}

2.5 皮爾森相關系數(pearson)

皮爾森相關系數是衡量線性關聯性的程度。

兩個連續變量\((X,Y)\)的pearson相關性系數\(P_{X,Y}\)等于它們之間的協方差\(cov(X,Y)\)除以它們各自标準差的乘積\(\sigma{X}\),\(\sigma{Y}\)。系數的取值總是在-1.0到1.0之間,接近0的變量被成為無相關性,接近1或者-1被稱為具有強相關性。

\[P_{X,Y} = \frac{cov(X,Y)}{\sigma_{X}\sigma_{Y}}

2.6 Jaccard相似性系數

Jaccard(傑卡德)相似性系數主要用于計算符号度量或布爾值度量的樣本間的相似度。若樣本間的特征屬性由符号和布爾值辨別,無法衡量差異具體值的大小,隻能獲得“是否相同”這樣一種結果,而Jaccard系數關心的是樣本間共同具有的特征。适合詞集模型向量化的資料。

\[J(X,Y) = \frac{|X\bigcap{Y}|}{|X\bigcup{Y}|}

3. 總結

本文介紹的相似度計算方式,總的來說還是比較簡單、易于了解。相似度計算方式的不同對最終結果的影響沒有向量化方式不同影響大,但是相似度計算方式不同對計算時間影響比較大。下文将從深度學習的角度介紹文本相似度計算。

繼續閱讀