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

1 評論 6492 瀏覽 30 收藏 9 分鐘

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

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

計算余弦值的公式如下:

余弦相似度

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

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

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

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

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

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

一、余弦相似度應用說明

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

案例一:文本相似度

比如有如下兩個句子:

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

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

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

首先,進行分詞處理:

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

句子B:他? 既?? 是?? 一個? 歌手? 也? 是 一個? 舞者

其次,列出所有的詞:

他? 不僅? 既? 是? 一個? 歌手? 還? 也? 舞者

第三步:計算詞頻

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

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

第四步:

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

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

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

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

通過公式計算得出:

A和B的余弦相似度=

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

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

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

案例二:用戶相似度

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

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

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

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

二、總結(jié)

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

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

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

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

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

 

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

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

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