資深演算法專家解讀CTR預估業務中的深度學習模型

2021-09-11 09:08:11 字數 2531 閱讀 8350

ppt

t.cn/rdotf8u

本次演講主要分享深度學習在ctr預估業務中的應用,分別介紹了fm模型以及如何解決深度學習中ctr模型所面臨的各種問題。

上圖的ctr任務例子對應著應用場景中的推薦系統——電影推薦。機器學習中最核心的是訓練資料,它分為輸入資料(對應圖中的feature vector x),**資料(對應圖中的target y)。在這個推薦系統中feature vector x的每一行表示乙個使用者的各種特徵(圖中不同的顏色區域表示不同特徵),通過特徵資訊可以**出target y數值,target y數值越高表示越感興趣。

ctr任務有三個特點,一是包含大量離散特徵,上圖中的user id和movie id就是離散特徵,與之對的是連續特徵。二是有大量高緯度稀疏特徵,比如假設乙個**有10億使用者,這意味著單單user特徵就有10億度。三是特徵工程,確切說是特徵組合,它對ctr任務效果起到非常關鍵的作用。

在講factorization machine模型之前這裡先說下線性模型,它是機器學習中最簡單的乙個模型,公式是圖中的linear,xi表示有哪些特徵,是分布特徵,wi是特徵權重。在計算廣告中是使用最多的則是下方的lr模型,它對比linear模型區別在於多了非線性變換。lr模型優勢在於簡單,能很容易看出每個特徵所代表的含義,同時也很容易擴充套件,缺點則是難以捕獲特徵組合。

上圖是針對lr模型缺陷的改進版本,公式的前半部分不變,後面增加了任意兩個特徵的組合,也就是xixj, wij是提取出放入新特徵。這樣就直接將兩兩組合特徵引入到模型中,但是還是存在另乙個問題——組合特徵泛化能力弱。機器學習中泛化指的是模型在訓練的時候如果有未曾碰到過的資料,那麼在使用時碰到該資料**效果就會不佳。在該模型中對於訓練時未碰到過的xixj特徵組合,其對應的wij就一定是0。

fm模型著手解決的就是上文改進版本泛化能力弱的問題,重點在於標紅的地方,之前的模型中wij是乙個數值,而現在的是兩個向量的乘積。vi和vj表示針對每個特徵所取的一維向量,通過他們的乘積來表示特徵重要程度。

由於fm模型針對每個特徵都會取一維向量,所以即使在使用的時候出現沒有見過的組合,也可以根據特徵的一維向量進行計算。這就是fm模型泛化能力強的原因。

首先是大量離散特徵的表示問題,典型的就是如何將向user id、性別之類的資料輸入到神經網路中並讓它理解。第二是如何快速處理高緯度稀疏特徵。第三是如何從手工到自動,簡單來說就是如何擺脫人工尋找特徵的過程,轉而使用機器完成。最後是如何捕獲和表達兩兩組合特徵以及多組組合特徵。

深度學習中特徵分為兩類,一類是連續特徵,比如收入、身高、體重等這類有著含義的特徵。另一類是離散特徵,比如職業、性別、畢業學校等一些神經網路無法直接理解的特徵。

對離散特徵的處理一種最直觀的思路是使用onehot表達。上圖是用onehot表達的三個特徵,分別是星期、專案和產品id。這裡星期被表示為乙個七維向量,向量中每一位對應一星期中的一天,比如星期五的時候第五位為1,其他為都為0。性別和產品id的表示方式同樣如此,通過將這三個特徵的onehot表達組合起來就得到了輸入,這樣形式的輸入神經網路是可以識別的。

onehot表達雖然很直觀,但是並不能實際應用。我們計算一下就會明白了,通過onehot表達的輸入層一般來說會有1000萬節點,另外神經網路還有隱層神經元,它通過全連線的方式與輸入層連線,也就是每個隱層的神經元與輸入層的任意神經元都會有連線。這裡假設神經元有500個節點,這樣與輸入層一組合就會得到50億引數,很顯然如此多的引數對於機器學習來說很難選出乙個好的模型。

解決onehot所面臨的問題的基本思路是避免全鏈結,分而治之(從onehot到dense vector)。儘管輸入層的維度很多,但是種類有限,而我們可以將每個種類分開,讓輸入層只和隱層神經元的一小部分連線,這樣就解決了全鏈結造成的引數過多的問題。

這張圖表示的就是優化之後的最終結構——dnn結構,也是典型的深度學習神經網路模型,它是目前所有深度學習方案中最核心的一部分。

之前討論的是如何解決離散特徵輸入問題,那麼如何將連續特徵也加入進來?其實有兩種方案,一是新增到dense層,二是新增到上方的隱層中。

前面提到過特徵組合對ctr很關鍵,而dnn結構的兩個隱層網路已經實現了低階和高階特徵組合,這是由於dense層和上方的兩個隱層是全鏈結的,使得上層要獲取的兩個特徵在隱層一定會發生互動作用。

雖然特徵組合已經被實現,但是我們還想做的更進一步,將低階特徵組合和高階特徵組合分開。要想將它們分開首先要設計乙個低階組合的神經網路模組,這個模組需要滿足三個要求。第一它要表示兩兩特徵組合,第二要具有神經網路的表現形式,第三要能夠體現fm思想,即兩兩特徵組合中每個特徵體現為乙個一維向量。

低階組合模組被分離出來後,面臨的下乙個問題是如何與原先的模型組合,對此也有兩種典型組合方式。

第一種組合方式是並行結構,目前很多模型都採用這種方式,包括deepfm、deep&cross、wide&deep等。

第二種組合方式是序列結構,這種模式的實現有pnn模型、nfm模型、afm模型。

對於wide & deep模型、序列結構模型以及類似fnn的模型等,它們的dense層都需要預訓練,這種情況下用fm初始化onehot到dense層的對映效能能夠明顯提公升。

一般的隱層結構是梯形的,即上層最少,中間次之,底層最多。但是經過試驗發現平行結構或者菱形結構效果會更好。關於隱層的層深,一般建議是兩到三層。

專家解讀 依賴關係 Dependence

依賴關係是乙個很簡單的在兩個類別之間的關係。它可以被描述成 uses a 關係。通常情況下兩者的關係是短期的。乙個物件在方法呼叫中作為乙個引數被通過,一旦這個方法完成,物件也會被丟棄。例如,想象乙個可以允許使用者打 的telephone class 這是乙個預付系統。只允許至少在賬戶中有5美元的使用...

阿里技術專家對 SRE 的解讀

簡介 產品 基礎技術研發 和 sre 這兩類角色是相互協作 相互服務的關係,擁有共同的目標 滿足業務需求,更好服務業務。在技術工作中,對於產品 基礎技術研發和 sre 兩種角色,通常會有基於 是否側重編碼 的理解。對於產品研發轉做 sre 經常會產生是否要 脫離編碼工作 的看法,或者認為是否要 偏離...

專家解讀 如何選擇負載均衡裝置?

近年來,隨著雲計算與大資料的爆發式增長,眾多大型資料中心都在積極部署或是公升級負載均衡裝置,以保障資料中心更加通暢可靠的執行。然而,負載均衡作為一種集硬體裝置和解決方案於一體的系統型程式設計客棧產品,並不像伺服器或jyeozlirld是pc那樣可通過配置引數來辨別。在一大堆廠商負載均衡裝置引數中,究...