日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

CTR深度学习模型之 DSIN(Deep Session Interest Network) 论文解读

發(fā)布時(shí)間:2023/12/19 pytorch 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CTR深度学习模型之 DSIN(Deep Session Interest Network) 论文解读 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

之前的文章講解了DIEN模型:CTR深度學(xué)習(xí)模型之 DIEN(Deep Interest Evolution Network) 的理解與示例,而這篇文章要講的是DSIN模型,它與DIEN一樣都從用戶歷史行為中抽取興趣表示,但不同的是DSIN把歷史行為劃分成了不同的Session,并且使用Transformer對每個(gè)Session內(nèi)的行為抽取特征。

模型解讀

整體模型的結(jié)構(gòu)如下:

首先看看右下部分的矩形區(qū)域,這部分主要是對用戶的行為序列建模,其中包含了4個(gè)子模塊。

1. Session Divsion Layer

從下往上看的話,最底層的粉色區(qū)域是Session分割層:

首先是把用戶的行為序列 S=b1,b2,...BNS={b_1, b_2, ... B_N}S=b1?,b2?,...BN? 劃分成K個(gè)Session會(huì)話 Q1,Q2,...QKQ_1, Q_2, ... Q_KQ1?,Q2?,...QK? ,不同的Session直接的間隔大于30分鐘,同一Session內(nèi)的序列 b1,b2,...,bT{b_1, b_2, ..., b_T}b1?,b2?,...,bT? 的間隔小于30分鐘。

2. Session Interest Extractor Layer

得到K個(gè)Session后,輸入到黃色的Session興趣抽取層,最終得到K個(gè)Session的興趣表示:

這一層把每個(gè)Session的序列數(shù)據(jù) QkQ_kQk? 和對應(yīng)的 bias encoding 結(jié)合起來,通過Transformer的 Multi-head Self-Attention機(jī)制提取Session內(nèi)部行為之間的聯(lián)系,進(jìn)而得到Session對應(yīng)的興趣表示 IkI_kIk?

2.1 bias encoding

首先,這個(gè) bias encoding 是怎么回事?

為了刻畫不同Session中不同物品的順序關(guān)系,引入了 bias encoding :
BE(k,t,c)=wkK+wtT+wcCBE_{(k,t,c)} = w_k^K + w_t^T + w_c^C BE(k,t,c)?=wkK?+wtT?+wcC?
BE(k,t,c)BE_{(k,t,c)}BE(k,t,c)? 表示第k個(gè)session中第t個(gè)物品的embedding向量的第c個(gè)位置的偏置項(xiàng),于是輸入到 Self-attention 中的數(shù)據(jù)為:
Q=Q+BEQ = Q + BE Q=Q+BE
其中,Q 包含了 Q1,Q2,...,QKQ_1, Q_2, ... , Q_KQ1?,Q2?,...,QK?

2.2 Multi-head Self Attention

然后就是每個(gè)Session的數(shù)據(jù)輸入到 Transformer 中:

對于輸入的數(shù)據(jù),首先進(jìn)入的是 Multi-head Self-Attention,不同 head 學(xué)習(xí)到的 Attention 可能有所不同,這好比是用戶對商品的注意力頭可能放在顏色,款式,價(jià)格等不同因素上。假設(shè)要使用 H 個(gè) head,那么作者把 QkQ_kQk? 中每個(gè)物品的embedding平分成了H份: Qk=[Qk1,Qk2,...,QkH]Q_k = [Q_{k1}, Q_{k2}, ..., Q_{kH}]Qk?=[Qk1?,Qk2?,...,QkH?] ,其中 Qkh∈RT×dh,dh=1HdmodelQ_{kh} \in \mathbb{R}^{T \times d_h}, d_h = \frac{1}{H} d_{model}Qkh?RT×dh?,dh?=H1?dmodel? , 然后就是計(jì)算每個(gè) head 的 attention:
head?h=Attention?(QkhWQ,QkhWK,QkhWV)=softmax?(QkhWQWKTQkhTdmodel?)QkhWV\begin{aligned} \text { head }_{h} &=\text { Attention }\left(\mathbf{Q}_{k h} \mathbf{W}^{Q}, \mathbf{Q}_{k h} \mathbf{W}^{K}, \mathbf{Q}_{k h} \mathbf{W}^{V}\right) \\ &=\operatorname{softmax}\left(\frac{\mathbf{Q}_{k h} \mathbf{W}^{Q} \mathbf{W}^{K^{T}} \mathbf{Q}_{k h}^{T}}{\sqrt{d_{\text {model }}}}\right) \mathbf{Q}_{k h} \mathbf{W}^{V} \end{aligned} ?head?h??=?Attention?(Qkh?WQ,Qkh?WK,Qkh?WV)=softmax(dmodel???Qkh?WQWKTQkhT??)Qkh?WV?
其中 WQ,WK,WVW^Q, W^K, W^VWQ,WK,WV 是線性變換矩陣,是模型需要學(xué)習(xí)的參數(shù)。然后將 QkQ_kQk? 所有的 head 拼接到一起,然后經(jīng)過 Add & Norm 層(殘差連接與層歸一化),輸入到前饋神經(jīng)網(wǎng)絡(luò)中:
IkQ=FFN(Concat(head1,head2,...,headH)Wo)I_k^Q = FFN(Concat(head_1, head_2, ..., head_H)W^o) IkQ?=FFN(Concat(head1?,head2?,...,headH?)Wo)
然后再經(jīng)過一個(gè) Add & Norm 層。需要注意的是,IkQI_k^QIkQ? 仍然是 T×dmodelT\times d_{model}T×dmodel?的大小,于是可以使用一個(gè)平均值池化把每個(gè)Session的序列轉(zhuǎn)為 dmodeld_{model}dmodel? 維向量:
Ik=Avg(IkQ)I_k = Avg(I_k^Q) Ik?=Avg(IkQ?)

3. Session Interest Interacting Layer

得到了K個(gè)Session的興趣表示 I1,I2,...,IKI_1, I_2, ..., I_KI1?,I2?,...,IK? 后,還需要輸入到 Bi-LSTM 中捕獲不同Session間的演變過程:

最終每個(gè)時(shí)刻的輸出為:
Ht=Concat(hft,hbt)H_t = Concat (h_{ft}, h_{bt}) Ht?=Concat(hft?,hbt?)
其中 hft,hbth_{ft}, h_{bt}hft?,hbt? 是前向LSTM的隱藏狀態(tài)和反向LSTM的隱藏狀態(tài)。

4. Session Interest Activating Layer

經(jīng)過上面的步驟,得到了兩種 Session表示: I1,I2,...,IKI_1, I_2, ..., I_KI1?,I2?,...,IK? 以及 H1,H2,...,HKH_1, H_2, ... , H_KH1?,H2?,...,HK?,接下來就可以分別和目標(biāo)商品計(jì)算相似度了,如下圖的紫色部分所示:

其中的 Activation Unit 結(jié)構(gòu)如下圖所示:

左邊的輸入是目標(biāo)物品的 embedding,右邊的兩個(gè)輸入都是Session表示,這個(gè)注意力單元可以給不同的 Session 分配不同的權(quán)重,用來表示某個(gè) Session 和目標(biāo)物品的相關(guān)性,進(jìn)而可以對各個(gè) Session 進(jìn)行加權(quán)求和:
akI=exp?(IkWIXI))∑kKexp?(IkWIXI)UI=∑kakIIk\begin{aligned} a_{k}^{I} &=\frac{\left.\exp \left(\mathbf{I}_{k} \mathbf{W}^{I} \mathbf{X}^{I}\right)\right)}{\sum_{k}^{K} \exp \left(\mathbf{I}_{k} \mathbf{W}^{I} \mathbf{X}^{I}\right)} \\ \mathbf{U}^{I} &=\sum_{k} a_{k}^{I} \mathbf{I}_{k} \end{aligned} akI?UI?=kK?exp(Ik?WIXI)exp(Ik?WIXI))?=k?akI?Ik??

akH=exp?(HkWHXI))∑kKexp?(HkWHXI)UH=∑kKakHHk\begin{aligned} a_{k}^{H} &=\frac{\left.\exp \left(\mathbf{H}_{k} \mathbf{W}^{H} \mathbf{X}^{I}\right)\right)}{\sum_{k}^{K} \exp \left(\mathbf{H}_{k} \mathbf{W}^{H} \mathbf{X}^{I}\right)} \\ \mathbf{U}^{H} &=\sum_{k}^{K} a_{k}^{H} \mathbf{H}_{k} \end{aligned} akH?UH?=kK?exp(Hk?WHXI)exp(Hk?WHXI))?=kK?akH?Hk??

其中的X,就是目標(biāo)item的embedding.

最后一個(gè)部分就是把用戶特征向量、待推薦物品向量、會(huì)話興趣加權(quán)向量UIU^IUI、帶上下文信息的會(huì)話興趣加權(quán)向量UHU^HUH進(jìn)行橫向拼接,輸入到全連接層中,得到輸出:

實(shí)驗(yàn)結(jié)果

使用了兩個(gè)數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),分別是阿里媽媽的廣告數(shù)據(jù)集(Advertising)和阿里巴巴的電商推薦數(shù)據(jù)集(Recommender)。如下圖所示:

對于某個(gè)商品,attention 可視化結(jié)果如下所示:

參考文章:

Deep Session Interest Network for Click-Through Rate Prediction

DSIN(Deep Session Interest Network )分享

推薦系統(tǒng)論文DSIN:Deep Session Interest Network

總結(jié)

以上是生活随笔為你收集整理的CTR深度学习模型之 DSIN(Deep Session Interest Network) 论文解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。