AI產品經理需要了解的數據知識:余弦相似度
本文概括介紹了余弦相似度是什么、如何應用以及案例說明,目的是希望我們產品經理在設計相關跟相似度功能或是利用相似性功能解決某一業務的場景時能利用上余弦相似度,并希望您讀完對自己在設計相關推薦業務、搜索業務、識別業務時能有更深層次的理解。
在機器學習算法中,有很多方法計算某個對象之間的距離或是相似性,余弦相似度是通過衡量兩個向量間的夾角大小,通過夾角的余弦值表示結果,余弦相似度的取值為[-1,1],值越大表示越相似。
計算余弦值的公式如下:
注釋:其中a和b代表兩個向量(向量是在空間中具有大小和方向的量,在數據計量中表示帶箭頭的線段,相關向量知識可自行閱讀相關文獻)。
如果是在二維空間,余弦相似度的值通過如下公式計算:
對于以上公式的理解,我們可以看如下兩圖(二維向量圖和余弦定理)
以上左圖是將a\b兩個向量二維化,右圖是余弦定理,通過余弦定理與二維空間結合,即可推導出來二維空間下計算兩個向量的余弦相似性公式。(有興趣的同學可以看上面兩個圖,自行推導一下)
如果假設空間是多維的,那么余弦相似度公式可擴展如下公式:
以上是對余弦相似度概括解釋,以及公式演化形式,在下一節將會對以上公式的應用說明,請各位同學先好好理解以上公式。
一、余弦相似度應用說明
余弦相似度在度量文本相似度、用戶相似度、物品相似度的時候都較為常用。
案例一:文本相似度
比如有如下兩個句子:
句子A:他不僅是一個歌手,還是一個舞者;
句子B:他既是一個歌手,也是一個舞者。
那么如何計算以上兩個句子的相似度,首先我們要找到如何評價這兩個句子,用什么方法將這兩個句子向量化?我們最直觀的看,連個句子用詞相近,那句子整體相似度就高,因此我們從詞頻入手,來計算其相似性。
首先,進行分詞處理:
句子A:他? 不僅 是? 一個 歌手 還 是 一個? 舞者
句子B:他? 既?? 是?? 一個? 歌手? 也? 是 一個? 舞者
其次,列出所有的詞:
他? 不僅? 既? 是? 一個? 歌手? 還? 也? 舞者
第三步:計算詞頻
句子A: 他(1)? 不僅(1)? 既(0)? 是(2)? 一個(2)? 歌手(1)? 還(1) 也(0)? 舞者(1)
句子B:他(1)? 不僅(0)? 既(1)? 是(2)? 一個(2)? 歌手(1)? 還(0) 也(1)? 舞者(1)
第四步:
我們總結出來兩個句子的詞頻向量:
句子A(1,1,0,2,2,1,1,0,1)
句子B(1,0,1,2,2,1,0,1,1)
這樣問題就變成了如何計算這兩個向量的相似程度。都是從原點([0, 0, …])出發,指向不同的方向的向量。
通過公式計算得出:
A和B的余弦相似度=
通過余弦相似度公式,我們計算出來這來兩句話意思很相近。
我們通過這個案例不難發現,想要利用余弦相似性公式來計算兩者之間的相似性,首先要確定向量化的方法(比如本案例中,通過將連個句子通過分詞的方式,計算詞頻來向量化),理解向量值的多維度(我們通過分詞可以得出來9各維度的向量值),然后將向量化后將值帶入到公式中,去計算相似度。
通過以上案例我們可以聯想其他案例,比如對于兩篇文章,連個實體的相似性對比,我們可以通過向量化關鍵詞、實體畫像特征等進行向量化,然后通過這些特征向量化的維度值,進行計算相似性。
案例二:用戶相似度
比如一個外賣平臺,兩個用戶A和B,外賣新出了兩款新品套餐,分別是a和b,用戶A對這兩款新品的評分是1分和2分,b對這兩款新品的評分是4分和5分,我們通過余弦相似度來評價一下兩個用戶的相似度。
假如我們將對這新品套餐評分作為特征向量,兩個產品的評分分別連個維度的向量值,是那么A和B的特征向量分別是(1,2)、(4、5),我們代入公式計算得出:0.98。
通過公式計算發現兩個相似度很高,但是這跟我們直覺判斷這兩個應該相似度很低才是,這說明我們選定好評價的特征向量后,對于向量值的的確定出現了問題,我們對(1,2)、(4、5)進行轉換,變成與平均分3的差額,的出來新的向量值(-2,-1)、(1、2)之后,重新計算得出相似度為-0.8,那么我們看這個結果比較接近事實。
通過這個案例我們可以看到:再找到特征向量后,對于向量值的取值與評價也需要靈活考慮,可以結合統計學知識。
二、總結
對于產品經理,尤其是對于AI產品經理,在理解和運用余弦相似性時需要考慮一下問題:
首先,余弦相似性是對兩個對象之間的比較,將兩個對象向量化,向量化的過程中,我們要找到兩個對象比較的基礎;也就是特征,真對與不同特征賦予向量值的意義,并且在選取向量值時,定量化的評分要符合邏輯,然后通過公式計算相似性。
其次,余弦相似性很難做到向量長度的歸一化。
比如兩篇文章,講的同一個事情,一篇200字,一篇5000字。假如通過關鍵詞相似可以判定兩個文章是高度相似的,假如我們還是用內容分詞通過詞頻的方式,那么有很大可能是不相似的,因為詞量差距太大。因此我們選取的特征向量盡量少維度,但是又能全面評價二者的指標。
除此之外,關于相似性的判斷,在機器學習中除了余弦相似性還有其他方法,比如歐氏距離、皮爾遜相關度、杰卡德(Jaccard)相似度等方法,有興趣的小伙伴可以進一步了解。
本文由 @羅飛 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Unsplash ,基于 CC0 協議
- 目前還沒評論,等你發揮!