深度興趣網路DIN DIEN DSIN

2022-08-10 06:15:09 字數 3753 閱讀 1691

看看阿里如何在**做推薦,實現「一人千物千面」的使用者多樣化興趣推薦,首先總結下din、dien、dsin:

傳統深度學習在推薦就是稀疏到embedding編碼,變成稠密向量,餵給nn

din引入attention機制,捕獲候選商品和使用者瀏覽過的商品之間的關係(興趣)

dien在din基礎上引入序列概念,將使用者歷史行為序列納入到網路內

dsin將行為序列劃分為session,更符合rnn概念

大多推薦場景下資料下都包含如下資訊,使用者內在屬性資訊、使用者行為資訊、商品資訊、上下文資訊,乙個明顯區別是不同使用者的行為資訊差異很大。

稀疏向量 -- embedding -- fixed-length稠密向量 --- mlp

這樣做有什麼問題?

乙個明顯的問題是不同使用者的行為序列長度是不同的,fixed-length資訊表達不全面

使用者最終的行為只和歷史行為中的部分有關,因此對歷史序列中商品相關度應有區分

根據上述問題,有兩個解決思路:

對不同使用者嘗試不同維度的向量,導致訓練困難

如何在有限的維度表示使用者的差異化興趣?

din從第二個問題出發,引入區域性啟用單元,對特定的ad自適應學習使用者興趣表示向量。即同一使用者在獲選ad不同時,embedding向量不同。

使用attention機制捕獲ad和使用者行為序列商品之間的關係

看結果

和ad相似度搞得物品擁有更高的權重

不相關物品的相似度低

下面是兩個小tricks,對結果提公升有幫助:

mini-batch aware regularization

dice activation function

tricks的細節可以參考原**。

dien使用了gru來建模使用者行為序列,在din基礎上考慮序列資訊

使用gru建模序列資訊,即用gru最後時刻的隱狀態表示序列資訊

修改gru為augru

看下augru部分:

\[a_=\frac_ w \mathbf_\right)}^ \exp \left(\mathbf_ w \mathbf_\right)}

\]\[\begin&\tilde}_^=a_ * \mathbf_^\\&\mathbf_^=\left(1-\tilde}_^\right) \circ \mathbf_^+\tilde}_^ \circ \tilde}_^\end

\]根據attention score控制更新門。

看模型,直觀的思考貌似很合理,但是有兩個問題:

序列資訊包含多長?即短期興趣還是長期興趣的問題

序列連續否?不同時期的興趣不一樣,序列間隔過大相關性可能很低

使用者是否一定服從嚴格的序列?先點那個和後點那個的區別大嗎

1.dien使用過去14天資訊行為序列,從rnn角度來說可能短期內行為資訊更重要,但長期資訊是否引入了噪音?

2.過去14天內使用者需求會變。比如第一天買了衣服、可能十天後買的是書

3.使用者點選順序不一定重要,自己想一想好像是

關於使用rnn是否合適,rnn只關心t-1(上一步)和t(當前步),而沒有涉及t-1和t之間的時間間隔。沒涉及不代表不重要,反而是因為其使用前提就是假定各步驟之間是等間距的,見維基百科。

atime seriesis a series of data points indexed (or listed or graphed) in time order. most commonly, a time series is a sequence taken at successiveequally spacedpoints in time"

以上部分內容摘自[3].

dsin進一步做出優化,在每個會話中的行為是相近的,而在不同會話之間差別是很大的,如下圖的例子:

模型架構

1.會話分割層

將使用者的點選行為按照時間排序,判斷每兩個行為之間的時間間隔,前後的時間間隔大於30min,就進行切分。

2.興趣提取層

用tansformer編碼使用者行為序列,簡單來說就是輸入乙個序列,輸出乙個對應的embedding序列。

引入了偏置編碼(bias encoding),實質上是對序列中位置資訊的編碼

原始做法:

\[\begin&p e_, 2 i)}=\sin \left(\text / 10000^}}\right)\\&p e_=\cos \left(p o s / 10000^}\right)\end

\]bias encoding:

\[\mathbf_=\mathbf_^+\mathbf_^+\mathbf_^

\]第一項表示處於第幾個session,第二項表示session的第幾個行為,第三項表示整體位置的embedding。關於這三項其實不是很明確,知道的同學麻煩幫忙解答下,貼上原圖

3.興趣互動層

捕獲序列的順序關係,文中使用bi-lstm

4.興趣啟用層

和din中一樣,使用attention捕捉商品相關性

模型思想大概就這麼多,細節部分可以參考原**。

具體應用

充分了解領域資料特點,根據場景定製適合具體問題的網路結構

需要有豐富的特徵

[3]也評deep interest evolution network .

深度興趣網路 din dien

業務思考 兩篇 貢獻點 din 引入attention dice啟用函式 自適應正則化 dien 引入gru 設計augru融合attention 本文不考慮啟用函式和自適應正則化的分析,著重於模型結構。din dien attention中的 形式將embedding後的結果從sum poolin...

深度網路pre train對於深度網路的意義

1 pre train 帶來更好的優化還是更好的泛化?pre train是乙個尋網路權值初值的過程,將pre train的結果作為bp演算法的權值的初值,能夠解決深度網路在非凸目標函式上陷入區域性最優的問題。從這個角度理解更象是帶來更好的優化能力。在帶有pre train的深度網路的泛化表現上不僅僅...

深度學習 深度神經網路

神經網路是由乙個個神經元相互連線並按層次排列構成的,深度神經網路是有任意層的神經網路,這裡的深度是指層次的多,而不是神經元數量的多。有任意層,那麼就要有乙個迴圈來負責遍歷每一層進行計算。所以深度神經網路的計算形式,就必須要適應這個迴圈結構。我們先來說說神經元吧 對於多神經元神經網路,其實也是一樣的。...