相似性度量或者距離函式對於像聚類,鄰域搜尋這樣的演算法是非常重要的。前面也提到,網頁去重複也是相似性應用的乙個例子。然而,如何定義個合適的相似或者距離函式,完全依賴於手頭的任務是什麼。一般而言,定義乙個距離函式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個條件的距離函式很多,一般有幾類是比較常見的,通常來自比較直觀的形象,如平面的乙個兩點的直線距離。下面討論應用比較廣泛的幾類距離或相似性度量函式,尤拉距離,余弦函式cosine,pearson函式,jaccard index,edit distance。如果乙個物件d(如:一篇文件)表示成乙個n維的向量(d1,d2,….,dn),每乙個維度都為物件的乙個特徵,那麼這些度量函式極容易得到應用。
1.範數和尤拉距離
尤拉距離,來自於歐式幾何(就是我們小學就開始接觸的幾何學),在數學上也可以成為範數。如果乙個物件對應於空間的乙個點,每乙個維度就是空間的乙個維度。特殊情況,如果n=1,那麼,小學我們就學過,直線上兩個點的距離是|x1-x2|。推廣到高緯情況,乙個很自然的想法是,把每乙個維度的距離加起來不就可以呢。這就形成了傳說中的一範數:
看,是不是很簡單。有一範數就有二範數,三範數。。。無窮範數。其實,二範數來的更加直觀,我們都知道二維空間,三維空間的兩點的距離公式。他就是二範數,在二維三維上的形式了。
好了,一鼓作氣,p範數(p-norm)
無窮範數:
空間兩點的距離公式(2-範數),是最常用的距離公式,他就是傳說中的尤拉距離。多簡單。
2. cosine similarity
cosine similarity是備受恩寵啊,在學向量幾何的時候,應該接觸過這個神奇的公式
分子是兩個向量的點積,||a||是向量的長度,這個公式神奇的地方是,隨著角度的變化的,函式是從-1,1變化的。向量夾角的余弦就是兩個向量的相似度。cosine similarity 說,如果兩個向量的夾角定了,那麼無論乙個向量伸長多少倍,他們的相似性都是不變的。所以,應用cosine 相似性之前,要把物件的每乙個維度歸一化。在搜尋引擎技術中,cosine 相似性在計算查詢和文件的相似性的時得到了很好的應用。對查詢語句而言(如:「明天天氣如何」),它的每乙個維度是對應詞的tf-idf.
cosine similarity的乙個擴充套件是,tonimoto係數:
其實也沒什麼大不了。t(a,b)的分母是大於等於 cos similarity的分母,但且僅僅但 a,b長度一樣是才相等。這就意味著,tonimoto係數考慮了兩個向量的長度差異,長度差異越大相似性約小。
3. jacard index
jacard 相似性直觀的概念來自,兩個集合有多相似,顯然,jacard最好是應用在離散的變數幾何上。先看公式(不要頭暈)
分子是集合交集,分母是集合並集,畫個圖,馬上就明白咋回事了。
和jacard index 相似的乙個公式是dice『 coefficient, 它也很直觀,
4. pearson correlation coefficient
學過概率論的人都知道,有均值,反差,還有相關係數,相關係數就是就是描述兩組變數是否線性相關的那個東西。相關係數的優點是,它跟變數的長度無關,這個都點像cosine相似性。有乙個應用是,比如乙個商品推薦系統,要給使用者a推薦相應的產品,首先要通過對商品的打分,找到與a相似k個使用者。但是有些人,可能天生喜歡打高分,有些人偏向於打低分,為了消除這個問題 相關係數是乙個很好的度量方法。列公式,
這個公式貌似和cosine 是有點關係的。至於如何關聯,我就不討論了。參看correlation
5. 編輯距離或者levenshtein distance
編輯距離說的兩個字串的相似程度。串a通過刪除,增加,和修改變成串b的可以度量函式(一般是是通過多少步能將a變成b 也可以對每乙個編輯步驟加權)wikipedia上有非常好的描述,這裡就不再贅述。levenshtein distance. 與之相關的字串相似性方法還有jaro-winkler distance。
6 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 皮爾遜相關係數 原理 度量兩個意義對應數列之間的線性相關程度,即度量兩個數列中數字一起增大或一起減小的可能性。場景 用於度量兩個使用者之間的相似性,度量兩個使用者針對同一物品的偏好值變化趨勢的一致性。優點 結果直觀。缺點 沒有考慮到兩個使用者...