DataWhale打卡Day01--推薦系統入門

黃傑ed發表於2020-10-19

推薦系統入門

推薦系統簡介

什麼是推薦系統

  • 對使用者:推薦系統是一種幫助使用者快速發現有用資訊的工具
  • 對公司:推薦系統是一種增加公司產品與使用者接觸,購買等行為概率的工具
  • 本質:本質上是一種實現將使用者-商品-公司之間利益最大化的手段.

常用評測指標

  • 1.使用者滿意度;

  • 2.預測準確度–RMSE等;

  • 3.覆蓋率

    • 覆蓋率是用來描述一個推薦系統對物品長尾的發掘能力,一個簡單的定義可以是:推薦系統所有推薦出來的商品集合數佔總物品集合數的比例.但是對於相同的覆蓋率,不同物品的數量分佈,或者說是物品的流行度分佈是可以不一樣的.為了更好的描述推薦系統挖掘長尾的能力,需要統計不同物品出現次數的分佈.如果所有的物品都出現在推薦列表中,並且出現的次數都差不多,那麼推薦系統發掘長尾的能力就很好。
  • 4.多樣性

    • 人的興趣愛好通常是比較廣泛的,所以一個好的推薦系統得到的推薦列表中應該儘可能多的包含使用者的興趣,只有這樣才能增加使用者找到感興趣物品的概率;
  • 5.新穎性

    • 滿足推薦的新穎性最簡單的方法就是給使用者推薦他們之前沒有看過的物品,但是每個使用者沒見過的物品數量是非常龐大的,所以一般會計算推薦物品的平均流行度,流行度越低的物品越有可能讓使用者覺得新穎,因此,如果推薦結果中的物品平均熱門程度比較低說明推薦的結果就可能比較新穎;
  • 6.AUC曲線
    * ![[Pasted image 20201019233611.png]]

TopN推薦評測指標

  • 精確率;
  • 召回率;

多路召回策略

所謂的“多路召回”策略,就是指採用不同的策略、特徵或簡單模型,分別召回一部分候選集,然後把候選集混合在一起供後續排序模型使用,可以明顯的看出,“多路召回策略”是在“計算速度”和“召回率”之間進行權衡的結果。
在這裡插入圖片描述

Embedding召回

在當前的主流推薦系統中,Embedding的身影已經無處不在,從一定意義上可以說,把Embedding做好了,整個推薦系統的一個難題就攻克了,下面會從什麼是Embedding,常見的Embedding技術有哪些,以及如何用Embedding做召回進行一個簡單的總結。
在這裡插入圖片描述

協同過演算法

簡介

協同過濾(Collaborative Filtering)推薦演算法是最經典、最常用的推薦演算法。
所謂協同過濾, 基本思想是根據使用者之前的喜好以及其他興趣相近的使用者的選擇來給使用者推薦物品(基於對使用者歷史行為資料的挖掘發現使用者的喜好偏向, 並預測使用者可能喜好的產品進行推薦),一般是僅僅基於使用者的行為資料(評價、購買、下載等),而不依賴於項的任何附加資訊(物品自身特徵)或者使用者的任何附加資訊(年齡,性別等)。目前應用比較廣泛的協同過濾演算法是基於鄰域的方法, 而這種方法主要有下面兩種演算法:

  • 基於使用者的協同過濾(UserCF)
  • 基於商品的協同過濾(ItemCF)

矩陣分解演算法

隱語義模型與矩陣分解

協同過濾演算法的特點就是完全沒有利用到物品本身或者是使用者自身的屬性, 僅僅利用了使用者與物品的互動資訊就可以實現推薦,是一個可解釋性很強, 非常直觀的模型, 但是也存在一些問題, 第一個就是處理稀疏矩陣的能力比較弱, 所以為了使得協同過濾更好處理稀疏矩陣問題,
增強泛化能力, 從協同過濾中衍生出矩陣分解模型(Matrix Factorization,MF)或者叫隱語義模型, 兩者差不多說的一個意思, 就是在協同過濾共現矩陣的基礎上, 使用更稠密的隱向量表示使用者和物品,挖掘使用者和物品的隱含興趣和隱含特徵, 在一定程度上彌補協同過濾模型處理稀疏矩陣能力不足的問題。

隱語義模型

隱語義模型最早在文字領域被提出,用於找到文字的隱含語義。在2006年, 被用於推薦中, 它的核心思想是通過隱含特徵(latentfactor)聯絡使用者興趣和物品(item),基於使用者的行為找出潛在的主題和分類,然後對item進行自動聚類,劃分到不同類別/主題(使用者的興趣)。

Factorization Machines

FM模型的引入

  • 邏輯迴歸模型及其缺點
    • FM模型其實是一種思路,具體的應用稍少。一般來說做推薦CTR預估時最簡單的思路就是將特徵做線性組合(邏輯迴歸LR),傳入sigmoid中得到一個概率值,本質上這就是一個線性模型,因為sigmoid是單調增函式不會改變裡面的線性模型的CTR預測順序,因此邏輯迴歸模型效果會比較差。也就是LR的缺點有:
        1. 是一個線性模型
      • 每個特徵對最終輸出結果獨立,需要手動特徵交叉(x_i * x_j ),比較麻煩

Wide&Deep

點選率預估簡介

點選率預估是對每次廣告點選情況作出預測,可以輸出點選或者不點選,也可以輸出該次點選的概率,後者有時候也稱為pClick.

點選率預估模型要做什麼?

通過上述點選率預估的基本概念,我們會發現其實點選率預估問題就是一個二分類的問題,在機器學習中可以使用邏輯迴歸作為模型的輸出,其輸出的就是一個概率值,我們可以將機器學習輸出的這個概率值認為是某個使用者點選某個廣告的概率。

Wide&Deep模型的“記憶能力”與“泛化能力”

Memorization 和 Generalization是推薦系統很常見的兩個概念,其中Memorization指的是通過使用者與商品的互動資訊矩陣學習規則,而Generalization則是泛化規則。我們前面介紹的FM演算法就是很好的Generalization的例子,它可以根據互動資訊學習到一個比較短的矩陣,其中儲存著每個使用者特徵的壓縮表示(embedding),而協同過濾與SVD都是靠記住使用者之前與哪些物品發生了互動從而推斷出的推薦結果,這兩者推薦結果當然存在一些差異,我們Wide&Deep模型就能夠融合這兩種推薦結果做出最終的推薦,得到一個比之前的推薦結果都好的模型。
可以這麼說:Memorization趨向於更加保守,推薦使用者之前有過行為的items。相比之下,generalization更加趨向於提高推薦系統的多樣性(diversity)。Memorization只需要使用一個線性模型即可實現,而Generalization需要使用DNN實現。下面是wide&deep模型的結構圖,由左邊的wide部分(一個簡單的線性模型),右邊的deep部分(一個典型的DNN模型)。
在這裡插入圖片描述

GBDT+LR

GBDT+LR簡介

前面介紹的協同過濾和矩陣分解存在的劣勢就是僅利用了使用者與物品相互行為資訊進行推薦, 忽視了使用者自身特徵, 物品自身特徵以及上下文資訊等,導致生成的結果往往會比較片面。 而這次介紹的這個模型是2014年由Facebook提出的GBDT+LR模型, 該模型利用GBDT自動進行特徵篩選和組合, 進而生成新的離散特徵向量, 再把該特徵向量當做LR模型的輸入, 來產生最後的預測結果, 該模型能夠綜合利用使用者、物品和上下文等多種不同的特徵, 生成較為全面的推薦結果, 在CTR點選率預估場景下使用較為廣泛。下面首先會介紹邏輯迴歸和GBDT模型各自的原理及優缺點, 然後介紹GBDT+LR模型的工作原理和細節。

相關文章