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模型向量化的數據。
2.2 歐式距離
歐氏距離是最常用的距離計算公式,衡量的是多維空間中各個點之間的絕對距離,當數據很稠密並且連續時,這是一種很好的計算方式。
因為計算是基於各維度特征的絕對數值,所以歐氏度量需要保證各維度指標在相同的刻度級別,如在KNN中需要對特征進行歸一化。
2.3 曼哈頓距離
曼哈頓距離簡單來說就是統計相同坐標軸上的距離的和。
2.4 閔可夫斯基距離
大家有沒發現歐式距離和曼哈頓距離在形式上比較相近。是的,其實它們是閔可夫斯基距離的特殊化。適合TF-IDF向量化后的數據或者提煉出來的主題模型數據。
2.5 皮爾森相關系數(pearson)
皮爾森相關系數是衡量線性關聯性的程度。
兩個連續變量\((X,Y)\)的pearson相關性系數\(P_{X,Y}\)等於它們之間的協方差\(cov(X,Y)\)除以它們各自標准差的乘積\(\sigma{X}\),\(\sigma{Y}\)。系數的取值總是在-1.0到1.0之間,接近0的變量被成為無相關性,接近1或者-1被稱為具有強相關性。
2.6 Jaccard相似性系數
Jaccard(傑卡德)相似性系數主要用於計算符號度量或布爾值度量的樣本間的相似度。若樣本間的特征屬性由符號和布爾值標識,無法衡量差異具體值的大小,只能獲得“是否相同”這樣一種結果,而Jaccard系數關心的是樣本間共同具有的特征。適合詞集模型向量化的數據。
3. 總結
本文介紹的相似度計算方式,總的來說還是比較簡單、易於理解。相似度計算方式的不同對最終結果的影響沒有向量化方式不同影響大,但是相似度計算方式不同對計算時間影響比較大。下文將從深度學習的角度介紹文本相似度計算。