1. 程式人生 > >深度學習在CTR預估的應用

深度學習在CTR預估的應用

深度學習在各個領域的成功

深度學習在影象和音訊等方向比傳統方向有大的提升,導致很多產品能快速落地

第一行三張圖片代表圖片和音訊方向相比傳統提升30%-50%,第二行第一張代表深度學習在自然語言處理方面方向的應用(相比傳統學習方法有提升,但是提升效果有限),後兩張代表生成式模型(生成圖片比較火的是GAN)

例如:寫好故事框架有時間地點等,GAN自動生成視訊(未來)

ctr:點選率

給定使用者商品看使用者點選的概率是多少

User、Movie採用one-hot編碼,黃色部分代表歷史看過電影向量

傳統預測CTR方法:

LR和線性模型關係:LR是sigmoid函式,將數值壓縮到0-1之間

LR模型

     優點:簡單、可解釋(權值大)、易擴充套件、效率高、易並行

     缺點:難以捕獲特徵組合(公式沒有特徵相關聯部分)

針對缺點改進:

特徵兩兩組合,一共有n方種可能,缺點:泛化能力弱(訓練資料沒看見特徵組合權值為0,將來預測時候權值還是0)

改進泛化能力強一些:

改動地方是標紅的地方,原來是某個數值,現在是低維向量內積

GBDT很容易找到有效組合特徵,GBDT先找到有效的組合特徵加到LR模型當中

目前最好的效果之一

FM:有n個特徵有n*n種特徵組合,GBDT找到有效的組合,降低不必要的組合,增加效率

深度學習基礎模型

MLP

隱層神經元:加權求和、非線性變換

現在用的比較多的啟用函式:RELU

層數比較多,用上述傳統的啟用函式,前面淺層權重學不到東西,所以用的比較多的是RELU,導數是常數

CNN(主要用於圖片)

解釋:輸出一張圖片,卷積層、下采樣、卷積層、下采樣、全連線、輸出層

對整體模型引數量有效的降低,引數數量少不容易過擬合

每個卷積核捕獲什麼特徵那

最底層學到線段 、高層圖片紋理、再高一層模式、部件、實際物體輪廓

 

RNN(一維序列型資料,適合解決序列問題)

輸入層、隱層、輸出層,不同之處隱層之間有個傳遞過程(第t步不僅包括當前步的輸入還包括上一層的輸出)

RNN改進:

LSTM:

深度學習ctr預估模型

離散特徵輸入問題解決啦

Wide&Deep是目前比較低階的結構,由於上述幾個原因

低階特徵晒到模型當中

 

加個attention對特徵組合賦予一定的權重,表示哪些重要,哪些特徵組合不重要,對特徵組合做個甄別(AFM思想)

經驗:

某些模型需要預訓練

平行結構或菱形結構效果比較好(可能跟資料集有關)

深度網路深度(一般ctr兩層或三層,不需要層數太多)

值得研究的地方是FM_Function這個部分到底怎麼做?

深度學習做ctr模型比較單一

CTR預估案例:

目的:視訊推薦使用者能看,高點選率

問題:在幾億中找到使用者喜歡的東西,進行推送,時間要求比較高

解決該問題分兩步:

        第一步:初篩,篩選可能感興趣的內容,為後面篩選一個小集合

        第二步:排序,排序,特徵比較多,要求精度比較高

初篩

輸入:使用者歷史行為(看過某個視訊列表的輸入向量轉化dense),搜尋詞、群體性統計特徵(性別、中老年等)

歸為兩大類:行為特徵、統計特徵

average把輸入向量搞成定長的

給使用者推薦資訊,目前只有使用者歷史資訊

給定使用者興趣向量對視訊1000萬視訊進行投票,轉化為一個分類問題

學使用者的興趣怎麼用向量來表達

初篩:向量表達使用者興趣(篩選出50個)

訓練過程:某個使用者的embedding 、某個視訊的embedding,之後算餘弦,排序

預測使用者觀看時長架構如下:(時間越長越排到前面推薦給使用者)

一個人多種興趣,多種興趣某一時刻只體現某一興趣(區域性啟用)

流程:線上收集很多使用者歷史資料,點過哪些、看過哪些、買過哪些、建模,之後對使用者興趣進行了解,有很多廣告,把最可能點的廣告進行推送

收集的使用者特徵:

基礎模型:

推送廣告和歷史進行算一下距離

出發點:剛才出發點怎麼改進模型讓ctr效果更好,jd 圖片資訊能否柔到模型當中

兩階段:初篩:精度不要求那麼高,但是要求快;排序:精排,選取k個

網路結構

右面一部分:深度網路,可以認為是wide & deep 網路

左側一部分:圖片資訊,怎麼柔到模型當中,1-N表示過去點過N個商品圖片,CNN提取圖片特徵

A|B test對比7天對比結果,引入圖片對效果增大比較大

相同商品通過聚類,都可以聚到一類