提到檢索的方法,比如KNN算法,這些都需要用到“距離”這個(gè)尺度去度量兩者的近似程度。但是,距離也有很多種,除了我們熟悉的歐氏距離之外,其實(shí)還有很多。。。
余弦距離:
是一種衡量兩個(gè)向量相關(guān)程度的尺度。利用兩個(gè)向量的余弦值,由于在0到90度之間,的值為減函數(shù),所以當(dāng)cos(theta)值越大,theta值越小。體現(xiàn)的是兩個(gè)向量方向上的差異。對數(shù)值絕對值不敏感。


對于向量x=(x1,x2,x3,...,xn)和向量y=(y1,y2,y3,...yn)之間的夾角:

其更注重兩個(gè)向量方向的夾角之間的距離,而不是歐氏距離里的直接距離。

歐氏距離與余弦距離:
歐氏距離能夠體現(xiàn)個(gè)體數(shù)值特征的絕對差異,所以更多的用于需要從維度的數(shù)值大小中體現(xiàn)差異的分析,如使用用戶行為指標(biāo)分析用戶價(jià)值的相似度或差異;而余弦相似度更多的是從方向上區(qū)分差異,而對絕對的數(shù)值不敏感,更多的用于使用用戶對內(nèi)容評分來區(qū)分用戶興趣的相似度和差異,同時(shí)修正了用戶間可能存在的度量標(biāo)準(zhǔn)不統(tǒng)一的問題(因?yàn)橛嘞蚁嗨贫葘^對數(shù)值不敏感)。
明可夫斯基距離(Minkowski Distance)
明氏距離是歐氏距離的推廣,是對多個(gè)距離度量公式的概括性的表述。公式如下:
p可以取任意正整數(shù)。

皮爾森相關(guān)系數(shù)(Pearson Correlation Coefficient):
即相關(guān)分析中的相關(guān)系數(shù)r,分別對X和Y基于自身總體標(biāo)準(zhǔn)化后計(jì)算空間向量的余弦夾角。公式如下:

Jaccard相似系數(shù)(Jaccard Coefficient):
Jaccard系數(shù)主要用于計(jì)算符號度量或布爾值度量的個(gè)體間的相似度,因?yàn)閭€(gè)體的特征屬性都是由符號度量或者布爾值標(biāo)識,因此無法衡量差異具體值的大小,只能獲得“是否相同”這個(gè)結(jié)果,所以Jaccard系數(shù)只關(guān)心個(gè)體間共同具有的特征是否一致這個(gè)問題。如果比較X與Y的Jaccard相似系數(shù),只比較xn和yn中相同的個(gè)數(shù),公式如下:

針對余弦相似度對數(shù)值大小的不敏感,出現(xiàn)了修正余弦相似度(Adjusted cosine similaarity):每個(gè)數(shù)值都減去一個(gè)自己的均值,這樣歸一化后,可以使得向量夾角的距離變得符合現(xiàn)實(shí)。
雖然余弦相似度對個(gè)體間存在的偏見可以進(jìn)行一定的修正,但是因?yàn)橹荒芊直鎮(zhèn)€體在維之間的差異,沒法衡量每個(gè)維數(shù)值的差異,會導(dǎo)致這樣一個(gè)情況:比如用戶對內(nèi)容評分,5分制,X和Y兩個(gè)用戶對兩個(gè)內(nèi)容的評分分別為(1,2)和(4,5),使用余弦相似度得出的結(jié)果是0.98,兩者極為相似,但從評分上看X似乎不喜歡這2個(gè)內(nèi)容,而Y比較喜歡,余弦相似度對數(shù)值的不敏感導(dǎo)致了結(jié)果的誤差,需要修正這種不合理性,就出現(xiàn)了調(diào)整余弦相似度,即所有維度上的數(shù)值都減去一個(gè)均值,比如X和Y的評分均值都是3,那么調(diào)整后為(-2,-1)和(1,2),再用余弦相似度計(jì)算,得到-0.8,相似度為負(fù)值并且差異不小,但顯然更加符合現(xiàn)實(shí)。
哈明距離(漢明距離)
漢明距離是使用在數(shù)據(jù)傳輸差錯(cuò)控制編碼里面的,漢明距離是一個(gè)概念,它表示兩個(gè)(相同長度)字對應(yīng)位不同的數(shù)量,我們以d(x,y)表示兩個(gè)字x,y之間的漢明距離。對兩個(gè)字符串進(jìn)行異或運(yùn)算,并統(tǒng)計(jì)結(jié)果為1的個(gè)數(shù),那么這個(gè)數(shù)就是漢明距離。
比如:
1011101 與 1001001 之間的漢明距離是 2。
2143896 與 2233796 之間的漢明距離是 3。
"toned" 與 "roses" 之間的漢明距離是 3。
這種方法往往可以進(jìn)行一定的模板匹配,計(jì)算與模板的接近程度。