1. 程式人生 > 實用技巧 >推薦系列(二):生成候選者概述

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

生成候選者概述

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

可以看到,生成候選人(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 向量可以用於候選生成,如下所示:給定查詢嵌入q

E 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向量的相似度來得到,相似度量方法常見的有三種:餘弦距離,點積,以及歐式距離;
  • 根據具體的推薦業務及側重點,選擇合適的相似度量方法;