推薦系統(4)-邏輯回歸LR、POLY2、FM、FFM

邏輯回歸LR、POLY2、FM、FFM

  • 1.邏輯回歸LR
  • 2.辛普森悖論
  • 3.POLY2
  • 4.FM-2010
  • 5.FFM
  • 6.GBDT+LR-2014
  • 7.LS-PLM-2017

《深度學習/推薦系統》讀書筆記

1.邏輯回歸LR

Logistic Regression – 融合多種特征,通過sigmoid 函數,預測樣本的被點擊的概率。樣本用特征向量x=[x1,x2,...,xn]x=[x_1,x_2,...,x_n]x=[x1?,x2?,...,xn?]表示,n為不同特征的數量。
f(z)=11+e?zf(z)=\frac{1}{1+e^{-z}}f(z)=1+e?z1?

z=w0+∑i=1nwixi(1)z=w_0+\sum_{i=1}^nw_ix_i\tag{1}z=w0?+i=1n?wi?xi?(1)
(每個特征如何編碼[性別,年齡,身高],這里應該默認每一維度就是一個特征吧,而不是每個特征one-hot 編碼的拼接。)
CTR-Click Through Rate

  1. 將用戶的年齡、性別、物品屬性、描述、時間、地點等特征數值化成特征向量
  2. 確定羅輯回歸模型的優化目標(點擊率模型就是最大似然函數),訓練模型權重參數
  3. 推斷階段,輸入特征向量,得到某個用戶對物品點擊的概率
  4. 對物品點擊概率進行排序后推薦。

記樣本被點擊的概率為P(y=1∣x,w)=fw(x)P(y=1|x,w)=f_w(x)P(y=1x,w)=fw?(x),
樣本不被點擊的概率為P(y=0∣x,w)=1?fw(x)P(y=0|x,w)=1-f_w(x)P(y=0x,w)=1?fw?(x)
那么樣本被點擊的概率分布為:P(y∣x,w)=[fw(x)]y[1?fw(x)]1?yP(y|x,w)=[f_w(x)]^y[1-f_w(x)]^{1-y}P(yx,w)=[fw?(x)]y[1?fw?(x)]1?y
最大似然估計的目標函數為:
L(w)=∏i=1mP(y∣xi,w)L(w)=\prod_{i=1}^mP(y|x^i,w)L(w)=i=1m?P(yxi,w)

邏輯回歸模型做推薦的優勢

  1. 點擊率與羅輯回歸模型的數據假設一直,都是伯努利分布
  2. 可解釋性強,邏輯回歸模型是廣義的線性回歸模型,能夠通過特性向量各個維度權重的大小來反映各個維度的作用
  3. 模型簡單,易于并行,訓練開銷小

邏輯回歸的局限性:無法進行特征交叉組成高維特征

后續的POLY2,FM,FFM 用于CTR預測時,都可以看作在LR目標函數的基礎上,研究不同的特征組合方式。訓練參數的方法都與上述LR中的最大似然一致。

2.辛普森悖論

在對樣本進行分組研究時,在分組比較中占優勢的一方,在總評中有時反而是失勢的一方。

demo:按性別分組后的數據,男女都是推薦視屏B;但是將所有的數據合并在一起后,卻得出推薦視頻A的結論。

獲取特征非線性組合的一個常用方法和核方法(核方法計算量大,內存需求大)

3.POLY2

Degree-2 Polynomial Margin–度為2多項式特征

考慮所有二階特征組合方式,并且為所有的二階特征構建可學習參數。
z=w0+∑i=1nwixi+∑i=1n?1∑j=i+1nwi,jxixjz=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^nw_{i,j}x_ix_jz=w0?+i=1n?wi?xi?+i=1n?1?j=i+1n?wi,j?xi?xj?

相比于原始LR的式子(1),新增組合特征n(n?1)2\frac{n(n-1)}{2}2n(n?1)?

缺點:

  1. 參數數量指數增加,極大增加了訓練的復雜度
  2. 數據稀疏特征使得大部分交叉特征權重缺乏有效訓練數據,無法收斂。

4.FM-2010

Factorization Machine–因子分解機(原來因子分解機本身是一個可以展開研究的內容,本博文注重FM特征組合方式,)

2010年提出,2012-2014年,成為業內主流的推薦模型之一。原文–《Fast Context-aware Recommendations with Factorization Machines》

FM為每個特征學習一個隱權重向量(latent vector), 在做特征交叉時,使用兩個特征隱權重向量的內積作為交叉特征的曲子權重(權重向量的學習,后續補上好吧)

z=w0+∑i=1nwixi+∑i=1n?1∑j=i+1n<wj1,wj2>xixjz=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n<w_{j_1},w_{j_2}>x_ix_jz=w0?+i=1n?wi?xi?+i=1n?1?j=i+1n?<wj1??,wj2??>xi?xj?

優點:

  1. 把權重參數的數量從Poly2的n2n^2n2降到的knknkn(k為特征向量的維度)
  2. 能夠很好的解決數據稀疏問題,隱向量的學習不僅依賴某個稀疏特征。

5.FFM

Field-aware Factorization Machine
不同特征在組合時,隱向量的作用域應該不同;也就是說不同的特征不止一個隱權重向量。

z=w0+∑i=1nwixi+∑i=1n?1∑j=i+1n<wj1,f2,wj2,f1>xixjz=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n<w_{j_1,f_2},w_{j_2,f_1}>x_ix_jz=w0?+i=1n?wi?xi?+i=1n?1?j=i+1n?<wj1?,f2??,wj2?,f1??>xi?xj?

適用于離散特征聚合,連續特征最好使用FM 。


參考博文:CTR預估傳統模型

6.GBDT+LR-2014

2014-Facebook 提出利用GBDT自動進行特征篩選和組合,進而形成新的離散特征向量,將該特征向量當作LR模型的輸入。

用GBDT構建特工程和利用LR預估CTR這兩步是獨立訓練的,不存在將LR的梯度回傳到GBDT的復雜問題。

GBDT-梯度上升決策樹。每棵樹都是一棵標準的回歸樹生成過程,其目標是上一棵樹的預測值D(x)D(x)D(x)與樣本標簽f(x)f(x)f(x)之間的殘差:
R(x)=f(x)?D(x)R(x)=f(x)-D(x)R(x)=f(x)?D(x)
每棵樹每個節點分裂是一個自然的特征選擇的過程,多層結點結構則對特征進行了有效的自動組合。(沒法產生新的特征)

每個樣本轉換成特征向量的方式很巧妙–樣本落入的葉子結點為1,沒有落入的結點為0,構成一個類似于one-hot編碼的向量,把所有子樹編碼向量串在一起,構成了該樣本的特征向量。

迷惑點1:GBDT模型的訓練過程沒有實驗過,特征分裂與一般回歸樹一樣么?殘差有什么用呢?
迷惑點2:樣本特征轉換,最終特征向量與原始特征的關聯不是很強了,可解釋性減弱。

7.LS-PLM-2017

2017年-阿里巴巴公布大規模分段線性模型(Large Scale Piece-wise Linear Model)。其實早在2012年他就成為了阿里巴巴主流的推薦模型。

LS-PLM 又被稱作混合羅輯回歸(Mixed Logistic Regression),先對樣本進行分片(聚類操作?),在樣本分片中應用羅輯回歸。

靈感來源很重要:女性受眾點擊女裝廣告的CTR,顯然不希望把男性用戶點擊數碼產品的樣本數據也考慮進來。

某個樣本被點擊的概率為分片加權平均:
f(x)=∑i=1mπi(x)ηi(x)=∑i=1meμix∑j=1meμjx11+e?wixf(x)=\sum_{i=1}^m\pi_i(x)\eta_i(x)=\sum_{i=1}^m\frac{e^{\mu_ix}}{\sum_{j=1}^me^{\mu_jx}}\frac{1}{1+e^{-w_ix}}f(x)=i=1m?πi?(x)ηi?(x)=i=1m?j=1m?eμj?xeμi?x?1+e?wi?x1?
其中m為分片數。μi\mu_iμi?wiw_iwi?的學習同時進行么? 阿里巴巴給出m的經驗值12最佳。LS-PLM適用于工業級推薦、廣告等大規模稀疏數據場景。

主要優點:

  1. 端到端非線性學習能力
  2. 模型系數性強

LS-PLM可以看作加入了注意力機制的三層神經網絡:輸入層為樣本特征,隱藏層為m個以sigmoid為激活函數的神經元,輸出層為單個神經元。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444720.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444720.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444720.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode125驗證回文串

給定一個字符串&#xff0c;驗證它是否是回文串&#xff0c;只考慮字母和數字字符&#xff0c;可以忽略字母的大小寫。 說明&#xff1a;本題中&#xff0c;我們將空字符串定義為有效的回文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 …

配置 Elastic Beanstalk 環境負載均衡器以終止 HTTPS

&#xfeff;&#xfeff;配置 Elastic Beanstalk 環境負載均衡器以終止 HTTPS 要更新您的 AWS Elastic Beanstalk 環境以使用 HTTPS&#xff0c;您需要為您的環境中的負載均衡器配置 HTTPS 偵聽器。以下兩種類型的負載均衡器支持 HTTPS 偵聽器&#xff1a;傳統負載均衡器和應用…

AWS 給負載均衡器配置偵聽器并上傳IAM證書

&#xfeff;&#xfeff;1.打開EC2的負載均衡器&#xff1a;添加偵聽器&#xff0c;選擇https&#xff0c;ssl證書需要有一個CA證書&#xff0c;可以去阿里云申請&#xff0c;也可以從亞馬遜獲取&#xff1a;注意&#xff0c;這里的ssl證書要這樣寫其中私有密鑰不是那種xxxxxx…

PaperNotes(19)-Learning Lane Graph Representations for Motion Forecasting

Learning Lane Graph Representations for Motion Forecasting1.ActorNet2.MapNet3.FusionNet4.Prediction Header5.模型參數學習自動駕駛論文閱讀筆記2 Uber–ECCV2020–論文文章代碼 模型的作用&#xff1a;Motion Forecasting &#xff08;這個motion都包括什么呢&#xff…

leetcode41 缺失的第一個正數

給定一個未排序的整數數組&#xff0c;找出其中沒有出現的最小的正整數。 示例 1: 輸入: [1,2,0] 輸出: 3 示例 2: 輸入: [3,4,-1,1] 輸出: 2 示例 3: 輸入: [7,8,9,11,12] 輸出: 1 說明: 你的算法的時間復雜度應為O(n)&#xff0c;并且只能使用常數級別的空間。 思路&am…

Linux(10)-Make編譯,Configure

Make編譯機制,Configure1.Make機制demo1.make編譯demo2.make清理demo3:make 安裝demo4:make 卸載2.configure2.1 Autoconf2.2 軟件的源碼安裝軟件發布的一些基礎知識。gcc, cpp, as, ld–施工隊&#xff0c;底層干活工人make --包工頭&#xff0c;指揮工人工作configure–分析師…

redis排行榜之日排行周排行設計

排行榜功能是一個很普遍的需求。使用 Redis 中有序集合的特性來實現排行榜是又好又快的選擇。 一般排行榜都是有實效性的,比如“用戶積分榜”。如果沒有實效性一直按照總榜來排,可能榜首總是幾個老用戶,對于新用戶來說,那真是太令人沮喪了。 首先,來個“今日積分榜”吧,…

Linux(11)-Ubuntu裝系統

Ubuntu18.04裝系統單系統雙系統啟動項dell 5820進不去bios。單系統 裝過好多次ubuntu系統&#xff0c;每次要重裝之前總是得搜索各種教程。現在總結一份簡略教程如下&#xff0c;以備哪天裝系統之需。 1.官網上下載Ios文件:https://ubuntu.com/download/desktop 2.找一個U盤…

最近準備學習下mongodb(一 Windows安裝篇)

1 先安裝mongodb 的windows版本&#xff0c;Linux的我后期會加上的。 https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.0-signed.msi/download 2.安裝php擴展插件&#xff1a; https://pecl.php.net/package/mongo 根據自己的…

leetcode139 單詞拆分

給定一個非空字符串 s 和一個包含非空單詞列表的字典 wordDict&#xff0c;判定 s 是否可以被空格拆分為一個或多個在字典中出現的單詞。 說明&#xff1a; 拆分時可以重復使用字典中的單詞。 你可以假設字典中沒有重復的單詞。 示例 1&#xff1a; 輸入: s "leetcode…

Linux(12)-Ubuntu裝機后的基礎應用

Ubuntu裝機ssh服務器 sudo ps -e |grep ssh # 查看ssh 服務安裝情況 ssh-agent--ssh客戶端&#xff0c;連別人&#xff1b; sshd--ssh服務器&#xff0c; 被別人連 sudo apt-get update # 更新軟件源 sudo apt-get install openssh-server # 安裝ssh服務端ssh設置別…

OpenSSL編寫SSL,TLS程序

一、簡介:SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信標準,分為2.0版和3.0版.TLS(Transport Layer Security)是IETF的TLS 工作組在SSL3.0基礎之上提出的安全通信標準,目前版本是1.0,即RFC2246.SSL/TLS提供的安全機制可以保證應用層數據在互聯網絡傳輸不…

PRML(3)--Chapter2(上)-概率分布-二元變量、多項式變量、高斯分布、指數族分布

PRML第二章上-概率估計2.1二元變量2.1.1 beta 分布2.2 多項式變量2.3 高斯分布2.3.1條件高斯分布、2.3.2邊緣高斯分布2.3.3 高斯變量的貝葉斯定理2.3.4 高斯分布的最大似然估計2.3.5 順序估計2.3.6 高斯分布的貝葉斯推斷2.3.7 學生t分布2.3.8周期性變量2.3.9混合高斯分布2.4 指…

leetcode27 移除元素

給定一個數組 nums 和一個值 val&#xff0c;你需要原地移除所有數值等于 val 的元素&#xff0c;返回移除后數組的新長度。 不要使用額外的數組空間&#xff0c;你必須在原地修改輸入數組并在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮數組中超出新…

Harris的角點檢測和特征匹配

一.特征檢測&#xff08;提取&#xff09; 基于特征的圖像配準方法是圖像配準中最常見的方法之一。它不是直接利用圖像像素值&#xff0c;二十通過像素值導出的符號特征&#xff08;如特征點、特征線、特征區域&#xff09;來實現圖像配準&#xff0c;因此可以克服利用灰度信息…

開始入坑深度學習(DeepLearning)

現在游戲越來越難做,國家廣電總局審核越來越變態,國家各種打壓游戲,游戲產業也成為教育失敗的背鍋俠,所以本人現在開始做深度學習方向。 深度學習研究的熱潮持續高漲,各種開源深度學習框架也層出不窮,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、The…

PRML(4)--Chapter2(下)-非參數估計

PRML第二章下-非參數估計1.直方圖2. 核方法3. K近鄰概率密度建模-參數化方法-概率密度的形式一定&#xff0c;由數據集確定密度中的參數即可。 局限性–概率模型選的不對&#xff0c;不能夠描述數據模態 此時&#xff0c;介紹一下非參數方法–直方圖&#xff0c;核方法&#…

《盤點那些秀你一臉的秒天秒地算法》(1)

本系列堅持格式&#xff1a;1個抖機靈算法2個較簡單但是天秀的算法1個較難天秀算法。 bogo排序 Bogo排序(Bogo-sort)&#xff0c;又被稱為猴子排序&#xff0c;是一種惡搞排序算法。 將元素隨機打亂&#xff0c;然后檢查其是否符合排列順序&#xff0c;若否&#xff0c;則繼續…

caffe安裝篇(一)

caffe我選擇使用ubuntu源碼安裝,所以先執行: sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev protobuf-compiler libhdf5-serial-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev prot…

caffe2安裝篇(三)通過docker安裝

用普通的安裝方式走了不少彎路,感覺還是用docker方便: 參考的是https://hub.docker.com/r/caffe2ai/caffe2/ Latest docker pull caffe2ai/caffe2 Comes with GPU support, CUDA 8.0, cuDNN 7, all options, and tutorial files. Uses Caffe2 v0.8.1. GPU images (for us…