這篇文章發佈於2018年9月,是以前的DIN的改進版。咱們在阿里的CTR預測(一):Deep Interest Network中提到過,他們嘗試使用LSTM來學習序列化數據的特徵,可是對DIN的結果沒有改善。DIEN在這一點上作了改善。網絡
咱們略去背景介紹,尤爲是Base Model的部分,若是你們想看的話,能夠去前一篇文章中找。如今咱們直接介紹DIEN的結構。DIEN最大的特色是不但要找到用戶的interest,還要抓住用戶interest的進化過程。做者們將GRU融合到網絡中,從而抓出變化的sequence。關於GRU的介紹有興趣的話不妨看看這篇Understanding GRU networks。函數
能夠看到,DIEN仍然存在Embedding Layer,而且Embedding的方法也和以前一致。其餘User profile, target AD和context feature的處理方式二者都是一致的,只是把user behavior組織成了序列數據的形式,並把簡單的使用外積完成的activation unit變成了一個attention-based GRU網絡。post
如今咱們具體來講Interest Extractor Layer,也就是GRU單元在的那個layer。顧名思義,這個Layer的主要目標是從embedding數據中提取出interest來。但一個用戶在某一時間的interest不只與當前的behavior有關,也與以前的behavior相關,因此做者們使用GRU單元來提取interest。學習
這是一個GRU單元的表達式,其中表明一個t時刻behaviour的embedding,
是sigmoid函數,
表明element-by-element乘法。.net
他們在這一步還引入了一個,用來輔助進行Interest Extractor。由於普通的
只能從embedding中提取信息,提取的卻不必定是interest。最後的action只由final interest決定,要保留中間狀態的interest須要其餘的激勵。經過引入
以下
3d
並將最終的模型目標設爲,可讓GRU在中間狀態提取出interest信息。rest
以用戶對衣服的interest爲例,隨着季節和時尚風潮的不斷變化,用戶的interest也會不斷變化。cdn
爲了利用這兩個時序特徵,咱們須要再增長一層GRU的變種,並加上attention機制以找到與target AD相關的interest。其中,attention function能夠表示爲: blog
是target AD的embedding。ci
把Attention和GRU結合起來的機制有不少種,
文章中嘗試了這三種機制。
文章在公共數據和本身的數據集上都作了實驗,離線實驗的結果以下: