相似性度量 zz

2021-09-06 09:39:47 字數 3223 閱讀 9045

在模式識別、計算機視覺等多個領域,都會涉及到相似性的度量這一問題,用來衡量不同物件間的差異性(距離)或相似性(相似度)。這裡的物件可以是網頁,影象,也可以是文字,集合,但最終在數學上都可以表示為向量或者向量的集合。對於不同大小的向量集合的相似性度量問題,這裡先不展開討論。對於相同長度的向量大小的度量,這裡假設兩個向量為x,y,他們分別為n維的向量x=(x

1,...,xn

),y=(y1,...,yn

)。一般而言,對於乙個距離函式d(x,y)或相似度函式s(x,y),需要滿足的條件為:

1. d(x,x) = 0 ;//到自己的距離為0 

2.  d(x,y)>=0 // 距離要非負 

3.  對稱性,d(x,y) =d(y,x) //如果a到b距離是a,那麼b到a的距離也應該是a 

4.  三角形法則(兩個之和大於第三邊)d(x,k)+d(k,y) >=d(x,y)

滿足這幾個條件的度量函式很多,如歐式距離。但最新提出的一些函式,不滿足第四個特性,如google距離。下面簡單介紹下幾種常用的度量函式。

(1)歐幾里得距離(euclidean distance)

歐氏距離是最常見的距離度量,衡量的是多維空間中各個點之間的絕對距離。公式如下:

因為計算是基於各維度特徵的絕對數值,所以歐氏度量需要保證各維度指標在相同的刻度級別,比如對身高(cm)和體重(kg)兩個單位不同的指標使用歐式距離可能使結果失效。雖然歐式距離是下面介紹的明式距離的一種特例,但是應用極為廣泛,很多度量函式都是由歐式距離演化而來,如馬哈拉諾比斯距離(mahalanobis distance)。

(2)明可夫斯基距離(minkowski distance)

明氏距離是歐氏距離的推廣,是對多個距離度量公式的概括性的表述。公式如下:

這裡的p值是乙個變數,取值範圍為(0,infinite)。明式距離其實是就是數學上的範數。

當p=1時,就是表示的曼哈頓距離(manhattan distance),數學上為l1範數。曼哈頓距離**於城市區塊距離,是將多個維度上的距離進行求和後的結果:

當p=2的時候就得到了上面的歐氏距離,也就是l2範數;

當p趨於無窮時,明式距離就變成了切比雪夫距離(chebyshev distance),即數學上的無窮範數。切比雪夫距離起源於西洋棋中國王的走法,我們知道西洋棋國王每次只能往周圍的8格中走一步,那麼如果要從棋盤中a格(x1, y1)走到b格(x2, y2)最少需要走幾步?擴充套件到多維空間,其實切比雪夫距離就是當p趨向於無窮大時的明氏距離::

因此,曼哈頓距離、歐氏距離和切比雪夫距離都是明可夫斯基距離在特殊條件下的應用。

(3)編輯距離(levenshtein distance)

編輯距離,是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。

例如將kitten一字轉成sitting:

1. sitten (k→s)

2. sittin (e→i)

3. sitting (→g)

俄羅斯科學家vladimir levenshtein在2023年提出這個概念,與之相關的字串相似性方法還有jaro-winkler distance。

(4)向量空間余弦相似度(cosine similarity)

余弦相似度用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小。相比距離度量,余弦相似度更加注重兩個向量在方向上的差異,而非距離或長度上。因此有學者對余弦相似度進行修正,以衡量不同維度上的差異,如調整余弦相似度(adjusted cosine similarity)。余弦相似度的就算公式如下:

分子是兩個向量的點積,||a||是向量的長度,隨著角度的變化的,函式是從-1到1變化的。向量夾角的余弦就是兩個向量的相似度。根據cosine similarity的定義 ,如果兩個向量的夾角定了,那麼無論乙個向量伸長多少倍,他們的相似性都是不變的。所以,應用cosine 相似性之前,要把物件的每乙個維度歸一化。在搜尋引擎技術中,cosine 相似性在計算查詢和文件的相似性的時得到了很好的應用。對查詢語句而言(如:「明天天氣如何」),它的每乙個維度是對應詞的tf-idf.

cosine similarity應用方向相當廣泛,尤其是在文字相似度的度量方面。對於余弦相似度與歐式距離之間的差別,這裡借助三維座標系來看下兩者的不同:

從圖上可以看出距離度量衡量的是空間各點間的絕對距離,跟各個點所在的位置座標(即個體特徵維度的數值)直接相關;而余弦相似度衡量的是空間向量的夾角,更加的是體現在方向上的差異,而不是位置。如果保持a點的位置不變,b點朝原方向遠離座標軸原點,那麼這個時候余弦相似度cosθ是保持不變的,因為夾角不變,而a、b兩點的距離顯然在發生改變,這就是歐氏距離和余弦相似度的不同之處。

根據歐氏距離和余弦相似度各自的計算方式和衡量特徵,分別適用於不同的資料分析模型:歐氏距離能夠體現個體數值特徵的絕對差異,所以更多的用於需要從維度的數值大小中體現差異的分析,如使用使用者行為指標分析使用者價值的相似度或差異;而余弦相似度更多的是從方向上區分差異,而對絕對的數值不敏感,更多的用於使用使用者對內容評分來區分使用者興趣的相似度和差異,同時修正了使用者間可能存在的度量標準不統一的問題(因為余弦相似度對絕對數值不敏感)。

(5)jaccard相似係數(jaccard coefficient)

jaccard係數主要用於計算符號度量或布林值度量的個體間的相似度,因為個體的特徵屬性都是由符號度量或者布林值標識,因此無法衡量差異具體值的大小,只能獲得「是否相同」這個結果,所以jaccard係數只關心個體間共同具有的特徵是否一致這個問題。如果比較x與y的jaccard相似係數,只比較xn和yn中相同的個數,公式如下:

(6)皮爾森相關係數(pearson correlation coefficient)

(7)simrank 相似度

simrank來自圖論,說兩個變數相似,因為他們鏈結了同乙個或相似的節點。

相似性度量

二元向量的相似性度量 每一維都少的資訊量,主要是0,1等有 or 沒有屬性 dice 2 x y x y 2保證 0,1 維數不一致時,差別大。jaccard x y x y 交疊程度小時,值較低 交疊係數 x y min 互相之間的包含性,1 cosine x y 根號 x y 對於實值 只有co...

相似性度量

一般而言,定義乙個距離函式d x,y 需要滿足以下幾個準則 1.d x,x 0 到自己的距離為0 2.d x,y 0 距離要非負 3.對稱性,d x,y d y,x 如果a到b距離是a,那麼b到a的距離也應該是a 4.三角形法則 兩個之和大於第三邊 d x,k d k,y d x,y 滿足這4個條件...

使用者相似性度量

pearsoncorrelationsimilarity 皮爾遜相關係數 原理 度量兩個意義對應數列之間的線性相關程度,即度量兩個數列中數字一起增大或一起減小的可能性。場景 用於度量兩個使用者之間的相似性,度量兩個使用者針對同一物品的偏好值變化趨勢的一致性。優點 結果直觀。缺點 沒有考慮到兩個使用者...