今天我想介紹阿里的同一推薦團隊一脈相承的兩篇文章,Deep Interest Network for Click-Through Rate Prediction和,Deep Interest Evolution Network for Click-Through Rate Prediction。這是第一部分,主要介紹前一篇文章。算法
Deep Interest Network提出於2017年。它的思路很是值得借鑑。在電子商務系統或者說全部的推薦系統中,CTR預測都是一個值得注意的問題。而在今年了,深度學習方法被普遍地應用於CTR預測中。 這篇文章認爲,大部分目前使用的深度學習模型均可以認爲是Embedding&MLP結構,即大規模的、稀疏的輸入數據首先被壓縮成低維的embedding,變成固定長度的輸入向量,被輸入到全鏈接網絡中去。這些模型大大減小了特徵工程的工做量,所以廣爲流行。網絡
但這些方法仍然有缺點,最大的缺點就是固定維數的向量不能充分地表達用戶興趣的diversity。咱們固然能夠擴大向量的維數,但這會致使模型overfitting的可能性大大增長。在推薦系統中,興趣通常由過去的行爲來表示。從另外一個角度上說,咱們也不必定非要用維數很高的向量。用戶的興趣也許很廣,可是在預測某些項目的時候咱們並不須要知道用戶所有的interest。好比說,預測一個用戶是否是要買一雙鞋子時,咱們關心她在買衣服鞋子時的興趣,而不關心她在買廚房用品時的興趣。文章把這類興趣稱爲locally activated,這個文章都是試圖利用attention機制在diversity和locally activated之間尋找較優的平衡。函數
在淘寶系統中,廣告便是商品,也就是通常推薦系統中的item。推薦系統的邏輯以下:把通常的retriever階段稱爲Matching,系統邏輯由matching和ranking組成。淘寶使用collaborative filtering來完成matching過程,選擇一些candidate,再用CTR prediction方法進行排序。 學習
輸入排序算法的feature大部分狀況下是multi-group categorical form,它們被one-hot或者multi-hot形式表示出來,一個典型的輸入以下: 翻譯
淘寶原本使用的是一個Embedding&MLP模型,咱們在這裏稱這個model爲Base Model。這個model由以下幾部分構成:rest
Embedding Layer負責將一些上面提到的高維的binary vector轉變爲稠密的低維向量。例如咱們能夠把約維的goods id向量轉化爲幾十維的embedding向量。Embedding layer使用字典查找的方法,並遵循以下規則:orm
但就像以前說的,不一樣的用戶有不一樣的行爲,咱們須要把不一樣數量的embedding向量組合成固定維數的輸入向量輸入到MLP中去,因此咱們須要一個池化層來結合它們。sum-pooling和average pooling都很經常使用。通過pooling的不一樣種類的向量會在concat layer組合起來。cdn
MLPlayer負責預測,Loss function是Log Loss。整個Model的結構如圖所示。 blog
池化層雖然能達到目的,但卻會損失很大一部分信息。DIN的關鍵就是利用attention機制學習locally activated information,從而儘量減小信息損失。DIN引入了一個激活結構,並使用了以下系統結構: 排序
文章還提出了一些訓練技巧。
咱們使用正則化方法來防止過擬合。可是L2正則化意味着在每個mini-batch的訓練中國,都須要計算所有參數的更新,這會致使沉重的計算負擔,在大規模數據集中尤爲不可接受。因此文章提出了Mini-batch Aware Regularization方法,這個方法能利用數據集的稀疏性減小計算量。這不是咱們的重點,具體細節能夠去看原文。
PReLu是一種經常使用的激活函數。它的表達式以下:
咱們通常使用AUC進行結果評估,阿里使用了weighted AUC,還提出了另外一種名叫RelaImpr的指標。
在A/B Test的結果以下: