AI產(chǎn)品經(jīng)理需要了解的數(shù)據(jù)知識(shí):余弦相似度

1 評(píng)論 6579 瀏覽 30 收藏 9 分鐘

本文概括介紹了余弦相似度是什么、如何應(yīng)用以及案例說明,目的是希望我們產(chǎn)品經(jīng)理在設(shè)計(jì)相關(guān)跟相似度功能或是利用相似性功能解決某一業(yè)務(wù)的場景時(shí)能利用上余弦相似度,并希望您讀完對自己在設(shè)計(jì)相關(guān)推薦業(yè)務(wù)、搜索業(yè)務(wù)、識(shí)別業(yè)務(wù)時(shí)能有更深層次的理解。

在機(jī)器學(xué)習(xí)算法中,有很多方法計(jì)算某個(gè)對象之間的距離或是相似性,余弦相似度是通過衡量兩個(gè)向量間的夾角大小,通過夾角的余弦值表示結(jié)果,余弦相似度的取值為[-1,1],值越大表示越相似。

計(jì)算余弦值的公式如下:

余弦相似度

注釋:其中a和b代表兩個(gè)向量(向量是在空間中具有大小和方向的量,在數(shù)據(jù)計(jì)量中表示帶箭頭的線段,相關(guān)向量知識(shí)可自行閱讀相關(guān)文獻(xiàn))。

如果是在二維空間,余弦相似度的值通過如下公式計(jì)算:

對于以上公式的理解,我們可以看如下兩圖(二維向量圖和余弦定理)

以上左圖是將a\b兩個(gè)向量二維化,右圖是余弦定理,通過余弦定理與二維空間結(jié)合,即可推導(dǎo)出來二維空間下計(jì)算兩個(gè)向量的余弦相似性公式。(有興趣的同學(xué)可以看上面兩個(gè)圖,自行推導(dǎo)一下)

如果假設(shè)空間是多維的,那么余弦相似度公式可擴(kuò)展如下公式:

以上是對余弦相似度概括解釋,以及公式演化形式,在下一節(jié)將會(huì)對以上公式的應(yīng)用說明,請各位同學(xué)先好好理解以上公式。

一、余弦相似度應(yīng)用說明

余弦相似度在度量文本相似度、用戶相似度、物品相似度的時(shí)候都較為常用。

案例一:文本相似度

比如有如下兩個(gè)句子:

句子A:他不僅是一個(gè)歌手,還是一個(gè)舞者;

句子B:他既是一個(gè)歌手,也是一個(gè)舞者。

那么如何計(jì)算以上兩個(gè)句子的相似度,首先我們要找到如何評(píng)價(jià)這兩個(gè)句子,用什么方法將這兩個(gè)句子向量化?我們最直觀的看,連個(gè)句子用詞相近,那句子整體相似度就高,因此我們從詞頻入手,來計(jì)算其相似性。

首先,進(jìn)行分詞處理:

句子A:他? 不僅 是? 一個(gè) 歌手 還 是 一個(gè)? 舞者

句子B:他? 既?? 是?? 一個(gè)? 歌手? 也? 是 一個(gè)? 舞者

其次,列出所有的詞:

他? 不僅? 既? 是? 一個(gè)? 歌手? 還? 也? 舞者

第三步:計(jì)算詞頻

句子A: 他(1)? 不僅(1)? 既(0)? 是(2)? 一個(gè)(2)? 歌手(1)? 還(1) 也(0)? 舞者(1)

句子B:他(1)? 不僅(0)? 既(1)? 是(2)? 一個(gè)(2)? 歌手(1)? 還(0) 也(1)? 舞者(1)

第四步:

我們總結(jié)出來兩個(gè)句子的詞頻向量:

句子A(1,1,0,2,2,1,1,0,1)

句子B(1,0,1,2,2,1,0,1,1)

這樣問題就變成了如何計(jì)算這兩個(gè)向量的相似程度。都是從原點(diǎn)([0, 0, …])出發(fā),指向不同的方向的向量。

通過公式計(jì)算得出:

A和B的余弦相似度=

通過余弦相似度公式,我們計(jì)算出來這來兩句話意思很相近。

我們通過這個(gè)案例不難發(fā)現(xiàn),想要利用余弦相似性公式來計(jì)算兩者之間的相似性,首先要確定向量化的方法(比如本案例中,通過將連個(gè)句子通過分詞的方式,計(jì)算詞頻來向量化),理解向量值的多維度(我們通過分詞可以得出來9各維度的向量值),然后將向量化后將值帶入到公式中,去計(jì)算相似度。

通過以上案例我們可以聯(lián)想其他案例,比如對于兩篇文章,連個(gè)實(shí)體的相似性對比,我們可以通過向量化關(guān)鍵詞、實(shí)體畫像特征等進(jìn)行向量化,然后通過這些特征向量化的維度值,進(jìn)行計(jì)算相似性。

案例二:用戶相似度

比如一個(gè)外賣平臺(tái),兩個(gè)用戶A和B,外賣新出了兩款新品套餐,分別是a和b,用戶A對這兩款新品的評(píng)分是1分和2分,b對這兩款新品的評(píng)分是4分和5分,我們通過余弦相似度來評(píng)價(jià)一下兩個(gè)用戶的相似度。

假如我們將對這新品套餐評(píng)分作為特征向量,兩個(gè)產(chǎn)品的評(píng)分分別連個(gè)維度的向量值,是那么A和B的特征向量分別是(1,2)、(4、5),我們代入公式計(jì)算得出:0.98。

通過公式計(jì)算發(fā)現(xiàn)兩個(gè)相似度很高,但是這跟我們直覺判斷這兩個(gè)應(yīng)該相似度很低才是,這說明我們選定好評(píng)價(jià)的特征向量后,對于向量值的的確定出現(xiàn)了問題,我們對(1,2)、(4、5)進(jìn)行轉(zhuǎn)換,變成與平均分3的差額,的出來新的向量值(-2,-1)、(1、2)之后,重新計(jì)算得出相似度為-0.8,那么我們看這個(gè)結(jié)果比較接近事實(shí)。

通過這個(gè)案例我們可以看到:再找到特征向量后,對于向量值的取值與評(píng)價(jià)也需要靈活考慮,可以結(jié)合統(tǒng)計(jì)學(xué)知識(shí)。

二、總結(jié)

對于產(chǎn)品經(jīng)理,尤其是對于AI產(chǎn)品經(jīng)理,在理解和運(yùn)用余弦相似性時(shí)需要考慮一下問題:

首先,余弦相似性是對兩個(gè)對象之間的比較,將兩個(gè)對象向量化,向量化的過程中,我們要找到兩個(gè)對象比較的基礎(chǔ);也就是特征,真對與不同特征賦予向量值的意義,并且在選取向量值時(shí),定量化的評(píng)分要符合邏輯,然后通過公式計(jì)算相似性。

其次,余弦相似性很難做到向量長度的歸一化。

比如兩篇文章,講的同一個(gè)事情,一篇200字,一篇5000字。假如通過關(guān)鍵詞相似可以判定兩個(gè)文章是高度相似的,假如我們還是用內(nèi)容分詞通過詞頻的方式,那么有很大可能是不相似的,因?yàn)樵~量差距太大。因此我們選取的特征向量盡量少維度,但是又能全面評(píng)價(jià)二者的指標(biāo)。

除此之外,關(guān)于相似性的判斷,在機(jī)器學(xué)習(xí)中除了余弦相似性還有其他方法,比如歐氏距離、皮爾遜相關(guān)度、杰卡德(Jaccard)相似度等方法,有興趣的小伙伴可以進(jìn)一步了解。

 

本文由 @羅飛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Unsplash ,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!