推薦算法與推薦系統--1 LR模型


1. LR介紹

  邏輯回歸(logistics regression)作為廣義線性模型的一種,它的假設是因變量y服從伯努利分布。那么在點擊率預估這個問題上,“點擊”這個事件是否發生就是模型的因變量y。而用戶是否點擊廣告這個問題是一個經典的擲偏心硬幣(二分類)問題,因此CTR模型的因變量顯然應該服從伯努利分布。所以采用LR作為CTR模型是符合“點擊”這一事件的物理意義的。LR模型的主要發展趨勢為:

  1. 2012年之前LR模型占據了計算廣告領域的極大部分市場,目前仍廣泛應用於大部分推薦系統中。
  2. 2014年Facebook提出GBDT+LR,利用GBDT(Gradient Boosting Decision Tree)自動進行特征篩選和組合,進而生成新的離散特征向量,再把該特征向量當作LR模型輸入。
  3. 2017年阿里公開了5年前已經在廣泛使用的MLR模型,MLR模型首先使用分割函數將數據分成多個子區域,然后針對子區域單獨使用LR建模,最后再用函數將多個子區域的模型融合成一個。

 LR模型的算法說明可以參考:https://www.cnblogs.com/laojifuli/p/11982764.html

2.系統架構圖

  邏輯回歸算法的線上調用流程圖如下所示:

  實現非常簡單,只需要離線計算好邏輯回歸模型的權重,並將其保存到redis數據庫中。線上觸發該模型后,先獲取item的特征、用戶和item的交互特征、模型權重,再將對應的特征和權重進行加權求和,並將求和的結果過一層sigmoid函數,即可得到每個item的邏輯回歸得分。

3. 特征構建及更新

3.1 item和交叉特征

  LR模型需要使用到的特征為:item特征,user和item的交叉特征(user的單獨特征不會對排序結果產生影響)。

  1. item特征:item固定屬性,如item的價格、折扣率、類目、品牌等;item的質量屬性,如昨天/過去一周/過去一個月的銷量、ctr、cvr等;其他屬性,如item的標題、文本描述、圖片等。

  2. user和item的交叉特征:商品價格是否與用戶價格便好相匹配、用戶歷史上是否點擊/訂購過該商品,用戶是否對相應的類目感興趣等。

  3. user單獨的特征不會對排序結果產生影響,舉例如下:

    假設有兩個item,分別記為\(i_1\)\(i_2\),根據前兩類特征已經計算出i1和i2的得分,分別記為\(s_1\)\(s_2\),且設\(s_1>s_2\)。此時加入用用戶特征記為\(f_u\),加入用戶特征后的商品得分為\(snew_1=s_1+w_u*f_u\)\(snew_2=s_2+w_u*f_u\),由於兩個得分都加入了相同的值\(w_u*f_u\),因此最終得分的大小順序是不變的。

3.2 實時特征

 使用Flink對item和user的實時信息進行提取。

4. 模型調用和權重更新

 模型使用時,只需要系統從redis數據庫中讀取到模型最新的參數,記為 w
之后讀取用戶和物品的離線特征
使用storm對用戶近實時特征進行處理
對上述特征進行交叉操作
使用公式計算每個商品的得分

權重如何更新
每天增量更新一次參數
從數據庫中提取前一天用戶的所有行為數據,並按照訓練集的清洗方法獲得當天的模型數據
使用前一天的數據進行訓練,得到新的模型參數 w_new
采用增量更新的方式 w = a * w + (1-a) * w_new

5. 服務端提供排序能力

線上如何調用特征
如何計算得分
結果打散


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM