推薦系列(二):生成候選者概述

生成候選者概述

在上一節介紹了推薦系統的基本框架:
在這裏插入圖片描述

可以看到,生成候選人(generate candidate)是推薦的第一階段,也被稱作retrieve。給定查詢,系統生成一組相關候選者。下表顯示了兩種常見的候選生成方法:

類型 定義 實例
基於內容的過濾 使用項目之間的相似性來推薦與用戶喜歡的項目類似的項目 如果用戶A觀看過兩個可愛的貓視頻,則系統可以向該用戶推薦可愛的動物視頻
協同過濾 同時使用查詢和項目之間的相似性 來提供推薦 如果用戶A類似於用戶B,並且用戶B喜歡視頻1,則系統可以向用戶A推薦視頻1(即使用戶A沒有看到任何類似於視頻1的視頻)

Embedding Space

基於內容和協作過濾都將每個項目和每個查詢(或上下文)映射到公共嵌入空間中的嵌入向量 E=Rd  E=R^d\ 。通常,嵌入空間是低維的(d遠小於語料庫的大小),並且捕獲事物或查詢集的一些潛在結構。類似的項目(例如通常由同一用戶觀看的YouTube視頻)最終會在嵌入空間中靠近在一起。“親密度”的概念由相似性度量定義。

額外資源: projector.tensorflow.org是一個可視化嵌入的交互式工具。

相似度量

相似性度量是一種函數s:E×ER s: E×E→R ,輸入一對embedding 向量並返回一個標量來衡量它們的相似性。embedding 向量可以用於候選生成,如下所示:給定查詢嵌入qE q∈E ,系統查找項目嵌入 xE x∈E 接近 q,即具有高相似性的向量對s(x,q) s(x, q)

爲了確定相似程度,大多數推薦系統依賴於以下一個或多個相似度量方法:

  • 餘弦(cosine);
  • 點積(dot product);
  • 歐氏距離(Euclidean distance);

餘弦|Cosine

衡量兩個向量之間角度的餘弦, s(q,x)=cos(q,x)s(q, x)= cos(q, x)

點積|Dot product

兩個向量的點積是 s(q,x)=q,x=i=1dqixis(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i。它也是由s(q,x)=xqcos(q,x) s(q, x) = \|x\| \|q\| \cos(q, x)(角度的餘弦乘以規範的乘積)。因此,如果embedding向量被標準化後,則點積和餘弦這兩種方法等價。

歐氏距離|Euclidean distance

這是歐幾里得空間的通常距離, s(q,x)=qx=[i=1d(qixi)2]12 s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}。距離越小意味着相似性越高。注意,當embedding向量被歸一化時,平方歐幾里德距離與點積(和餘弦)一致,因爲在這種情況下12qx2=1q,x \frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle

比較相似度量

在這裏插入圖片描述

考慮上圖中的示例。黑色矢量表示查詢embedding向量。其他三個embedding向量(項目A,項目B,項目C)表示候選項目。使用不同的相似性度量方法,得到的項目排序有不同的結果。

使用三個相似性度量來確定項目順序:餘弦,點積和歐幾里德距離,答案如下:

答案


項目A長度最長,其標量最大,使用點積方法排名最高。項目C與查詢向量具有最小角度,因此根據餘弦相似性排名最高。物品B在距離上最接近查詢,因此使用歐幾里德距離排名最高:


如何選擇相似度量方法?

與餘弦相比,點積相似性對embedding向量的範數更加敏感。也就是說,embedding向量的範數越大,相似性越高並且項目被推薦的可能性越大,因此給出的建議如下:

  • 在訓練集中經常出現的項目(例如,熱門流行的視頻)往往具有大範數的嵌入向量。如果需要捕獲流行度信息,那麼更應該選擇點積這種方法。但是,這種方法將導致流行的item最終可能會主導推薦。在實踐中,可以使用其他變體的相似性度量,而不太強調項目的範數。例如,定義s(q,x)=qαxαcos(q,x) s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)
  • 在訓練期間很少出現的項目,可能不會經常被更新。因此,如果它們以大規範初始化,則系統可以推薦出稀有項目而不是更相關的項目。爲了避免此問題,需要注意embedding向量的初始化,並使用適當的正則化。

總結

  • 候選者的生成對於推薦系統是第一步,也是最關鍵的一部分,召回的事物好壞之間影響後續的推薦進程;
  • 如何獲得候選者,一般是根據embedding向量的相似度來得到,相似度量方法常見的有三種:餘弦距離,點積,以及歐式距離;
  • 根據具體的推薦業務及側重點,選擇合適的相似度量方法;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章