化繁為簡:推薦演算法三視角

  • 2019 年 12 月 20 日
  • 筆記

關於推薦系統,如果在忘掉所有的公式和程式碼,忘記所有的語言描述,腦海里就剩下幾張圖景,會是什麼?一張二維表格,一個拓撲圖,一條時間線。這三幅圖景,是我看待推薦演算法的三種視角。

視角一:矩陣視角

在腦中想像一個二維的表格,每一行代表一個用戶,每一列代表一個物品,表格里的每一個點代表用戶對物品的操作,這個操作可以是評分,點擊,點贊。其中,有些格子記錄了行為,有些格子是空的。到這裡,我們就建立了基本的矩陣視角,推薦問題轉化成了如何補上那些空格子。

用戶對物品的評分等於相似用戶對該物品評分的加權平均值,這就是user-base的協同過濾了。換一個方向,用戶對物品的評分等於該用戶對其他物品的評分按物品相似加權平均值,這就是item-base的協同過濾。度量用戶之間的相似度,把矩陣的一行——對物品的評分向量作為該用戶的表示向量,那麼用戶之間可以計算向量的距離,可以選擇任何距離公式,如餘弦距離,皮爾森距離。對於物品之間的相似度,換一個方向即可。

對於任何兩個物品,可以計算它們的評分差值。具體來說,兩個物品有一批共同的歷史評分用戶,也就是矩陣里兩列有交集的行,每一行可以計算一個差值,將差值平均起來,作為兩個物品的距離。和上面的距離不同的,這個差值可以想像成物理中的位移,帶著符號的。推薦時,某用戶對於某個物品的評分,等於某用戶對其他物品評分加上這個位移,再進行平均得到的平均評分。和上面的item-base一樣的,都是列向量計算相似度,只不過相似度由距離變成了位移。這就是著名的Slope-One演算法。

物品直接的相似度,除了上面的啟發式

Tags: