




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、相似度計算1 相似度的計算簡介 關于相似度的計算,現有的幾種基本方法都是基于向量(Vector)的,其實也就是計算兩個向量的距離,距離越近相似度越大。在推薦的場景中,在用戶-物品偏好的二維矩陣中,我們可以將一個用戶對所有物品的偏好作為一個向量來計算用戶之間的相似度,或者將所有用戶對某個物品的偏好作為一個向量來計算物品 之間的相似度。下面我們詳細介紹幾種常用的相似度計算方法:1.1 皮爾遜相關系數(Pearson Correlation Coefficient)皮爾遜相關系數一般用于計算兩個定距變量間聯系的緊密程度,它的取值在 -1,+1 之間。sx, sy是 x 和 y 的樣品標準偏差。類名:
2、PearsonCorrelationSimilarity 原理:用來反映兩個變量線性相關程度的統(tǒng)計量 范圍:-1,1,絕對值越大,說明相關性越強,負相關對于推薦的意義小。 說明:1、 不考慮重疊的數量;2、 如果只有一項重疊,無法計算相似性(計算過程被除數有n-1);3、 如果重疊的值都相等,也無法計算相似性(標準差為0,做除數)。 該相似度并不是最好的選擇,也不是最壞的選擇,只是因為其容易理解,在早期研究中經常被提起。使用Pearson線性相關系數必須假設數據是成對地從正態(tài)分布中取得的,并且數據至少在邏輯范疇內必須是等間距的數據。Mahout中,為皮爾森相關計算提供了一個擴展,通過增加一個枚
3、舉類型(Weighting)的參數來使得重疊數也成為計算相似度的影響因子。1.2 歐幾里德距離(Euclidean Distance)最初用于計算歐幾里德空間中兩個點的距離,假設 x,y 是 n 維空間的兩個點,它們之間的歐幾里德距離是:可以看出,當 n=2 時,歐幾里德距離就是平面上兩個點的距離。當用歐幾里德距離表示相似度,一般采用以下公式進行轉換:距離越小,相似度越大。類名:EuclideanDistanceSimilarity 原理:利用歐式距離d定義的相似度s,s=1 / (1+d)。 范圍:0,1,值越大,說明d越小,也就是距離越近,則相似度越大。 說明:同皮爾森相似度一樣,該相似度
4、也沒有考慮重疊數對結果的影響,同樣地,Mahout通過增加一個枚舉類型(Weighting)的參數來使得重疊數也成為計算相似度的影響因子。1.3 Cosine 相似度(Cosine Similarity)Cosine 相似度被廣泛應用于計算文檔數據的相似度:類名: UncenteredCosineSimilarity 原理:多維空間兩點與所設定的點形成夾角的余弦值。 范圍:-1,1,值越大,說明夾角越大,兩點相距就越遠,相似度就越小。 說明:在數學表達中,如果對兩個項的屬性進行了數據中心化,計算出來的余弦相似度和皮爾森相似度是一樣的,在mahout中,實現了數據中心化的過程,所以皮爾森相似度值
5、也是數據中心化后的余弦相似度。另外在新版本中,Mahout提供了UncenteredCosineSimilarity類作為計算非中心化數據的余弦相似度。1.4 Spearman秩相關系數-Spearman Correlation類名:SpearmanCorrelationSimilarity 原理:Spearman秩相關系數通常被認為是排列后的變量之間的Pearson線性相關系數。 范圍:-1.0,1.0,當一致時為1.0,不一致時為-1.0。 說明:計算非常慢,有大量排序。針對推薦系統(tǒng)中的數據集來講,用Spearman秩相關系數作為相似度量是不合適的。1.5 Tanimoto 系數(Tani
6、moto Coefficient)Tanimoto 系數也稱為 Jaccard 系數,是 Cosine 相似度的擴展,也多用于計算文檔數據的相似度:類名:TanimotoCoefficientSimilarity 原理:又名廣義Jaccard系數,是對Jaccard系數的擴展,等式為 范圍:0,1,完全重疊時為1,無重疊項時為0,越接近1說明越相似。 說明:處理無打分的偏好數據。1.6 對數似然相似度類名:LogLikelihoodSimilarity 原理:重疊的個數,不重疊的個數,都沒有的個數 說明:處理無打分的偏好數據,比Tanimoto系數的計算方法更為智能。1.7 曼哈頓距離類名:C
7、ityBlockSimilarity 原理:曼哈頓距離的實現,同歐式距離相似,都是用于多維數據空間距離的測度 范圍:0,1,同歐式距離一致,值越小,說明距離值越大,相似度越大。 說明:比歐式距離計算量少,性能相對高。2 各相似度計算方法優(yōu)缺點分析2.1 基于皮爾森相關性的相似度 Pearson correlation-based similarity皮爾森相關系數反應了兩個變量之間的線性相關程度,它的取值在-1, 1之間。當兩個變量的線性關系增強時,相關系數趨于1或-1;當一個變量增大,另一個變量也增大時,表明它們之間是正相關的,相關系數大于0;如果一個變量增大,另一個變量卻減小,表明它們之間
8、是負相關的,相關系數小于0;如果相關系數等于0,表明它們之間不存在線性相關關系。用數學公式表示,皮爾森相關系數等于兩個變量的協方差除于兩個變量的標準差。協方差(Covariance):在概率論和統(tǒng)計學中用于衡量兩個變量的總體誤差。如果兩個變量的變化趨于一致,也就是說如果其中一個大于自身的期望值,另一個也大于自身的期望值,那么兩個變量之間的協方差就是正值;如果兩個變量的變化趨勢相反,則協方差為負值。其中u表示X的期望E(X), v表示Y的期望E(Y)。標準差(Standard Deviation):方差(Variance):在概率論和統(tǒng)計學中,一個隨機變量的方差表述的是它的離散程度,也就是該變量
9、與期望值的距離即方差等于誤差的平方和的期望,基于皮爾森相關系數的相似度有兩個缺點:(1) 沒有考慮用戶間重疊的評分項數量對相似度的影響;(2) 如果兩個用戶之間只有一個共同的評分項,相似度也不能被計算。上表中,行表示用戶(15)對項目(101103)的一些評分值。直觀來看,User1和User5用3個共同的評分項,并且給出的評分值差也不大,按理他們之間的相似度應該比User1和User4之間的相似度要高,可是User1和User4有一個更高的相似度1。例子:同樣的場景在現實生活中也經常發(fā)生,比如兩個用戶共同觀看了200部電影,雖然不一定給出相同或完全相近的評分,他們之間的相似度也應該比另一位只
10、觀看了2部相同電影的相似度高吧!但事實并不如此,如果對這兩部電影,兩個用戶給出的相似度相同或很相近,通過皮爾森相關性計算出的相似度會明顯大于觀看了相同的200部電影的用戶之間的相似度。Mahout對基于皮爾森相關系數的相似度給出了實現,它依賴一個DataModel作為輸入。同時,Mahout還針對缺點(1)進行了優(yōu)化,只需要在構造PearsonCorrelationSimilarity時多傳入一個Weighting.WEIGHTED參數,就能使有更多相同評分項目的用戶之間的相似度更趨近于1或-1。java :1. UserSimilarity similarity1 = new Pearson
11、CorrelationSimilarity(model); 2. double value1 = similarity1.userSimilarity(1, 4);3.double value2= similarity1.userSimilarity(1, 5); 4.UserSimilarity similarity2 = new PearsonCorrelationSimilarity(model, Weighting.WEIGHTED); 5. double value3 = similarity1.userSimilarity(1, 4);6.double value4 = simil
12、arity2.userSimilarity(1, 5); 結果:Similarity of User1 and User4:0.9999999999999998Similarity of User1 and User5: Similarity of User1 and User4 with weighting: 0.9999999999999999Similarity of User1 and User5 with weighting: 0.9862277956307672.2 基于歐幾里德距離的相似度 Euclidean Distance-based Similarity歐幾里德距離計算相似
13、度是所有相似度計算里面最簡單、最易理解的方法。它以經過人們一致評價的物品為坐標軸,然后將參與評價的人繪制到坐標系上,并計算他們彼此之間的直線距離。圖中用戶A和用戶B分別對項目X、Y進行了評分。用戶A對項目X的評分為1.8,對項目Y的評分為4,表示到坐標系中為坐標點A(1.8, 4);同樣用戶B對項目X、Y的評分表示為坐標點B(4.5, 2.5),因此他們之間的歐幾里德距離(直線距離)為:計算出來的歐幾里德距離是一個大于0的數,為了使其更能體現用戶之間的相似度,可以把它規(guī)約到(0, 1之間,具體做法為:1 / (1 + d)。參見上表。只要至少有一個共同評分項,就能用歐幾里德距離計算相似度;如果
14、沒有共同評分項,那么歐幾里德距離也就失去了作用。其實照常理理解,如果沒有共同評分項,那么意味著這兩個用戶或物品根本不相似。2.3 余弦相似度 Cosine Similarity余弦相似度用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小。相比距離度量,余弦相似度更加注重兩個向量在方向上的差異,而非距離或長度上。與歐幾里德距離類似,基于余弦相似度的計算方法也是把用戶的喜好作為n-維坐標系中的一個點,通過連接這個點與坐標系的原點構成一條直線(向量),兩個用戶之間的相似度值就是兩條直線(向量)間夾角的余弦值。因為連接代表用戶評分的點與原點的直線都會相交于原點,夾角越小代表兩個用戶越相似,夾
15、角越大代表兩個用戶的相似度越小。同時在三角系數中,角的余弦值是在-1, 1之間的,0度角的余弦值是1,180角的余弦值是-1。借助三維坐標系來看下歐氏距離和余弦相似度的區(qū)別:從圖上可以看出距離度量衡量的是空間各點間的絕對距離,跟各個點所在的位置坐標(即個體特征維度的數值)直接相關;而余弦相似度衡量的是空間向量的夾角,更加的是體現在方向上的差異,而不是位置。如果保持A點的位置不變,B點朝原方向遠離坐標軸原點,那么這個時候余弦相似度cos是保持不變的,因為夾角不變,而A、B兩點的距離顯然在發(fā)生改變,這就是歐氏距離和余弦相似度的不同之處。余弦相似度的特點:1. 對用戶的絕對的數值不敏感2. 計算時不
16、考慮用戶之間的共同評分項數量,即使僅僅有極少相同評分項,也有可能獲得很大的相似度結果,例如上表中的uer3與user1.3. 只要各個評分項之間越趨向于對應成比例,而不論數值差異如何,則相似度越趨近于1.000.根據歐氏距離和余弦相似度各自的計算方式和衡量特征,分別適用于不同的數據分析模型:歐氏距離能夠體現個體數值特征的絕對差異,所以更多的用于需要從維度的數值大小中體現差異的分析,如使用用戶行為指標分析用戶價值的相似度或差異;而余弦相似度更多的是從方向上區(qū)分差異,而對絕對的數值不敏感,更多的用于使用用戶對內容評分來區(qū)分用興趣的相似度和差異,同時修正了用戶間可能存在的度量標準不統(tǒng)一的問題(因為余
17、弦相似度對絕對數值不敏感)。注:根據以上的分析,余弦相似度更適合于這樣一類數據的挖掘工作:1. 計算結果對用戶數據絕對值不敏感,例如在描述用戶的興趣、喜好、或用于情感分析時。2. 用戶數據中的評分值其實是用戶主觀的評分結果,換言之,每個用戶的評價標準是不一致的,有一些對于“好的”界定標準更為苛刻,而另一些則對于“好”、“不好”的界定則更為寬容。這種情況下,用余弦相似度來計算用戶之間的相似度或差異,可以弱化度量標準不統(tǒng)一這一因素。Eg:模糊度量標準“很不好”“不好”“較好”“很好”User1的評價標準1.02.03.54.0User2的評價標準2.03.04.05.0User3的評價標準1.02
18、.03.04.0上表中user1和user3的評價標準很相似,都是較為“苛刻的”,user2,相比之下顯得更為“寬容”。ItemItem001Item002Item003User1的評價2.04.03.5User2的評價3.55.04.5User3的評價2.03.54.0從數值上看,顯然user1和user3的評分值更為接近,似乎相似度更高;而user2的評分值相較user1差異較大。 java:1. UserSimilarity similarity1 = new UncenteredCosineSimilarity (model); 2. double value1 = similarit
19、y1.userSimilarity(1, 2);3. double value2= similarity1.userSimilarity(1, 3);4.UserSimilarity similarity2= new EuclideanDistanceSimilarity (model); 5. double value3 = similarity2.userSimilarity(1, 2);6. double value4= similarity2.userSimilarity(1, 3);計算結果:Similarity of User1 and User2 using cos: 0.992
20、7441515592047Similarity of User1 and User3 using cos:Similarity of User1 and User2 using Euc:Similarity of User1 and User3 using Euc:但是,余弦相似度的計算則揭示了:User2 與user1之間的相似度 > User3與user1之間的相似度。但如果用歐氏距離想速度則:User2 與user1之間的相似度 < User3與user1。2.4 調整余弦相似度 Adjusted Cosine Similarity在余弦相似度的介紹中說到:余弦相似度更多的是
21、從方向上區(qū)分差異,而對絕對的數值不敏感。因此沒法衡量每個維數值的差異,會導致這樣一個情況:比如用戶對內容評分,5分制,X和Y兩個用戶對兩個內容的評分分別為(1,2)和(4,5),使用余弦相似度得出的結果是0.98,兩者極為相似,但從評分上看X似乎不喜歡這兩個內容,而Y比較喜歡,余弦相似度對數值的不敏感導致了結果的誤差,需要修正這種不合理性,就出現了調整余弦相似度,即所有維度上的數值都減去一個均值,比如X和Y的評分均值都是3,那么調整后為(-2,-1)和(1,2),再用余弦相似度計算,得到-0.8,相似度為負值并且差異不小,但顯然更加符合現實。2.5 斯皮爾曼相關 Spearman Correl
22、ation斯皮爾曼相關性可以理解為是排列后(Rank)用戶喜好值之間的Pearson相關度。Mahout in Action中有這樣的解釋:假設對于每個用戶,我們找到他最不喜歡的物品,重寫他的評分值為“1”;然后找到下一個最不喜歡的物品,重寫評分值為“2”,依此類推。然后我們對這些轉換后的值求Pearson相關系數,這就是Spearman相關系數。斯皮爾曼相關度的計算舍棄了一些重要信息,即真實的評分值。但它保留了用戶喜好值的本質特性排序(ordering),它是建立在排序(或等級,Rank)的基礎上計算的?;仡櫱懊姹碇蠻ser15對Item101103的喜好(評分)值,通過斯皮爾曼相關系數計算
23、出的相似度為:我們發(fā)現,計算出來的相似度值要么是1,要么是-1,因為這依賴于用戶的喜好值和User1的喜好值是否趨于“一致變化”還是呈“相反趨勢變化"。Mahout對斯皮爾曼相關系數給出了實現,具體可參考SpearmanCorrelationSimilarity,它的執(zhí)行效率不是非常高,因為斯皮爾曼相關性的計算需要花時間計算并存儲喜好值的一個排序(Ranks),具體時間取決于數據的數量級大小。正因為這樣,斯皮爾曼相關系數一般用于學術研究或者是小規(guī)模的計算。java :UserSimilarity similarity1 = new SpearmanCorrelationSimilar
24、ity(model); / construct a Spearman Correlation-based Similarity 結果:User1 to User1 : 1.0User2 to User1 : -1.0User3 to User1 : NaNUser4 to User1 : 1.0User4 to User1 : 1.0考慮到Spearman Correlation的效率,可以把SpearmanCorrelationSimilarity包裝一層Cache,具體做法為:java:UserSimilarity similarity2 = new CachingUserSimilari
25、ty (new SpearmanCorrelationSimilarity (model), model); 這樣,每次計算的結果會直接放入Cache,下一次計算的時候可以立即得到結果,而不是重新再計算一次。Spearman相關系數的特點:1. Spearman相關是根據等級資料研究兩個變量間相關關系的方法。它是依據兩列成對等級的各對等級數之差來進行計算的,所以又稱為“等級差數法”2. Spearman相關系數對原始變量的分布不做要求,屬于非參數統(tǒng)計方法。因此它的適用范圍比Pearson相關系數要廣的多。即使原始數據是等級資料也可以計算Spearman相關系數。對于服從Pearson相關系數的數據也可以計算Spearman相關系數,3. 統(tǒng)計效能比Pearson相關系數要低一些(不容易檢測出兩者事實上存在的相關關系)。4. spearman只要兩個變量的觀測值是成對的等級評定資料,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氫能制備新方法-洞察及研究
- 多模態(tài)情感識別技術:表情、語音與語言的綜合應用綜述
- 基于雙層路徑規(guī)劃的智能導盲系統(tǒng)設計與實現
- 檢查督導整改管理辦法
- 藝術生產理論在當代文藝創(chuàng)作中的實踐啟示研究
- 出具收入證明管理辦法
- 辦公樓保潔技術方案的研究與實踐
- 美學自學考試筆記重點解讀
- 游覽車運營調度方案設計
- 導電材料對厭氧消化性能的影響及其機制研究進展
- 新華書店讀者問卷調查表
- GB/T 20946-2007起重用短環(huán)鏈驗收總則
- GB/T 18391.3-2009信息技術元數據注冊系統(tǒng)(MDR)第3部分:注冊系統(tǒng)元模型與基本屬性
- GB/T 10610-2009產品幾何技術規(guī)范(GPS)表面結構輪廓法評定表面結構的規(guī)則和方法
- 熠搜家庭戶用光伏電站推介
- 濟源幼兒園等級及管理辦法
- 房地產開發(fā)全流程培訓講義課件
- DB44-T 2163-2019山地自行車賽場服務 基本要求-(高清現行)
- 云南省特種設備檢驗檢測收費標準
- DB15T 933-2015 內蒙古地區(qū)極端高溫、低溫和降雨標準
- 工傷責任保險單
評論
0/150
提交評論