IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 19【CTR15】会话兴趣?络 -> 正文阅读

[人工智能]19【CTR15】会话兴趣?络

1、前言

在CTR预估中,从用户的行为序列中捕捉用户动态变化的兴趣一直是一个热门课题。然而现在大部分研究都集中在Sequence中而不是Session。观察到,每个Session 中的用户行为都是高度同构的,而Session之间都是异构的。

基于这一发现,提出了一种新的CTR模型――深度会话兴趣网络(Deep Session Interest Network,DSIN)。该模型主要是基于用户的行为序列来构建多个Session,利用带有带有偏置的self-attention 来提取用户的在每个Session中兴趣,然后利用Bi-LSTM来建模用户兴趣的发展和演化,最后利用局部激活单元自适应的学习各种兴趣对目标item 的影响。

self-attention :5.1注意力机制 Attention is all you need

先来介绍一下 Sequence和 Session的概念。

Sequence是指用户总的行为序列,而Session会考虑给定时间内发生的行为序列。简单来说,Sequence是由多个 Session组成的。(虽然之前就有Session的概念,但是这里作者强调了一下Session的重要性)

作者发现单个Session 内的具有高度的同构性,而Session间则具有高度的异构性。图1是一个从真实的工业应用程序中收集的Session演示。图片下方的数字表示点击当前商品和点击第一个商品之间的时间间隔,单位为秒。Session按照时间间隔超过30分钟的原则进行划分。

image-20210823152344533

图 1 图1 1

我们可以看到该用户在Session 1是点击的都是裤子,Session 2是戒指,Session 3就变成了衣服,这反应用户兴趣的明确性(Session内)和变化性(Session间)。

2、相关知识

为什么提出DSIN?

经过观察,发现每个会话内的行为比较相近,不同会话之间差别较大。【说明数据分析的重要性,结合对业务的认知,对session进行建模,提出DSIN】

DSIN模型来对用户的多重Session进行建模,建模步骤如下:

  1. 首先将用户的顺序行为自然的划分为多个Session;
  2. 然后使用带有偏置的Self-Attention网络去编码每个 Session,self-attention可以捕捉Session内部的关联,进而提取用户的兴趣;
  3. 接着利用 Bi-LSTM来捕捉用户不同历史session兴趣间的发展和演化;
  4. 由于不同的session对目标项有不同的影响,利用局部激活单元来学习目标项与session之间的关系,得到最终的行为序列表示
  • 文章贡献:
  1. 强调了用户在同一个session中相似度较高,在不同session中差异较大的问题,提出DSIN模型用于CTR任务
  2. 设计了偏移的自注意力机制得到每个session的表示;Bi-LSTM捕捉session之间的关系;利用局部激活单元学习不同session对目标项的影响
  3. 利用两个数据集实验,和多种模型比较并进行可视化分析,证明模型效果较好

3、模型结构

图2展示了 DSIN 模型的架构

image-20210823153136498
图 2 : ?? D S I N 模 型 D S I N 。 总 的 来 说 , 在 M L P 层 之 前 , D S I N 有 两 个 主 要 组 成 部 分 。 一 个 是 稀 疏 特 征 , 另 一 个 处 理 用 户 行 为 序 列 。 从 下 至 上 , 首 先 将 用 户 行 为 序 列 S 划 分 为 s e s s i o n ? Q , 然 后 通 过 偏 置 编 码 和 s e l f ? a t t e n t i o n 意 提 取 s e s s i o n 兴 趣 I 。 通 过 B i ? L S T M , 融 合 s e s s i o n 兴 趣 I 与 上 下 文 信 息 隐 状 态 H . I 和 隐 状 态 H 和 用 户 特 征 嵌 入 向 量 和 商 品 嵌 入 向 量 连 接 , 然 后 送 入 M L P 层 最 后 预 测 。 图2:~~DSIN模型DSIN。总的来说,在MLP层之前,DSIN有两个主要组成部分。\\ 一个是稀疏特征,另一个处理用户行为序列。从下至上,首先将用户行为序列S\\ 划分为 session ~Q,然后通过偏置编码和 self-attention意提取 session 兴趣 I。 \\ 通过Bi-LSTM, 融合session 兴趣 I与上下文信息隐状态H .\\ I 和隐状态H 和 用户特征嵌入向量 和商品嵌入向量连接\\,然后送入MLP层最后预测。 2??DSINDSINMLPDSINSsession?Qself?attentionsessionIBi?LSTM,sessionIH.IH,MLP
DSIN的最上面的是一个MLP结构,其输入由两部分组成,一个是由User Profile 和 ltem Profile 的Embedding 特征组成的;另一块基于用户行为提取到的特征.

基于用户行为提取到的特征从低到上分为四层,分别为∶

  1. Session division layer:将用户的行为序列(sequence)划分为会话session;.
  2. Session interest extractor layer:抽取用户会话的兴趣;
  3. Session interest interacting layer:捕获会话兴趣之间的顺序关系;
  4. Session interest activating layer:利用局部激活单元自适应目标ltem。

Session division layer

首先是划分层, 输入一段用户的行为序列, 然后基于 30 分钟的时间间隔将用户的行为序列划分为多个session, 第 k \mathrm{k} k 个 session 表达为 Q k = [ b 1 ; … ; b i ; … ; b T ] ∈ R T × d model? , T \mathbf{Q}_{k}=\left[\mathbf{b}_{1} ; \ldots ; \mathbf{b}_{i} ; \ldots ; \mathbf{b}_{T}\right] \in \mathbb{R}^{T \times d_{\text {model }}}, \mathrm{T} Qk?=[b1?;;bi?;;bT?]RT×dmodel??,T 是该 session 所含行为的长度, d model? d_{\text {model }} dmodel?? 为行为 Embedding 后的长度。

Session interest extractor layer

同一session 中的行为之间有着密切的联系,但其中也会包含一些用户随意行为带来的噪声。为了捕捉到同一session中行为之间的内在联系,减少不相关行为的影响,作者使用了带有偏置的多头自注意力机制来达到这一目的。

该层的架构如下图所示,从下往上看(multi-head attention层到add & norm层少了一个箭头)∶

image-20210823154602540

5.3 Transformer意境级讲解

Bias Encoding:在 Transformer 中, self-attention 使用 positional encoding 来考虑 sequence 的顺序性。这里作者设计 Bias Encoding 代替 positional encoding , 来捕捉 session 的顺序性和表示空间中的偏置。第k个session中第t个行为向量的第c个位置的偏移 :
B E k , t , c = w k K + w t T + w c C \mathbf{B} \mathbf{E}_{k, t, c}=\mathbf{w}_{k}^{K}+\mathbf{w}_{t}^{T}+\mathbf{w}_{c}^{C} BEk,t,c?=wkK?+wtT?+wcC?
其中, w k K ∈ R K \mathbf{w}_{k}^{K} \in \mathbb{R}^{K} wkK?RK 表示第 k \mathrm{k} k 个 session 的偏置向量; w t T ∈ R T \mathbf{w}_{t}^{T} \in \mathbb{R}^{T} wtT?RT 表示 session 中第 t \mathrm{t} t 个行为的偏置向量; w c C ∈ R d model? \mathbf{w}_{c}^{C} \in \mathbb{R}^{d_{\text {model }}} wcC?Rdmodel?? 为第C个位置的偏移量。 B E k , t , c ∈ R K × T × d model? \mathbf{B E}_{k, t, c} \in \mathbb{R}^{K \times T \times d_{\text {model }}} BEk,t,c?RK×T×dmodel??

所以用户行为 session 为:
Q = Q + B E \mathbf{Q}=\mathbf{Q}+\mathbf{B} \mathbf{E} Q=Q+BE
Multi-head Self-attention:作者利用多头自注意力机制来捕获不同特征子空间对的关系。用户的第 k \mathrm{k} k 个session 为:

Q k = [ Q k 1 ; … ; Q k h ; … ; Q k H ] \mathbf{Q}_{k}=\left[\mathbf{Q}_{k 1} ; \ldots ; \mathbf{Q}_{k h} ; \ldots ; \mathbf{Q}_{k H}\right] Qk?=[Qk1?;;Qkh?;;QkH?]
其中, Q k h ∈ R T × d h \mathbf{Q}_{k h} \in \mathbb{R}^{T \times d_{h}} Qkh?RT×dh? Q k \mathbf{Q}_{k} Qk? 的第 h \mathrm{h} h 个 head, H \mathrm{H} H 为 head 的数量, d h = d model? / h \boldsymbol{d}_{h}=\boldsymbol{d}_{\text {model }} / \boldsymbol{h} dh?=dmodel??/h

输出 h e a d h head_{h} headh? 为:
?head? h = ?Attention? ( Q k h W Q , Q k h W K , Q k h W V ) = softmax ? ( Q k h W Q W K T Q k h T d model? ) Q k h W V \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?
其中, W Q , W K , W V \mathbf{W}^{Q}, \mathbf{W}^{K}, \mathbf{W}^{V} WQ,WK,WV? 为线性矩阵。

简单回顾下 self-attention 的原始公式,以帮助我们进行理解上面公式:
?Attention? ( Q , K , V ) = Q K T d k V \text { Attention }(Q, K, V)=\frac{Q K^{T}}{\sqrt{d_{k}}} V ?Attention?(Q,K,V)=dk? ?QKT?V
然后将各个 head 的得到向量拼接到一起送入到前馈网络中:
I k Q = ?FFN? ( ?Concat? ( ?head? 1 , … , ?head? H ) W O ) \mathbf{I}_{k}^{Q}=\text { FFN }\left(\text { Concat }\left(\text { head }_{1}, \ldots, \text { head }_{H}\right) \mathbf{W}^{O}\right) IkQ?=?FFN?(?Concat?(?head?1?,,?head?H?)WO)
其中, F F N \mathrm{FFN} FFN 为前馈网络, W O \mathbf{W}^{O} WO 为线性矩阵。

此外, 作者还进行了残差连接和逐层归一化。用户第 k \mathrm{k} k 个 session 的兴趣 I k \mathbf{I}_{k} Ik?? 计算如下:
I k = Avg ? ( I k Q ) \mathbf{I}_{k}=\operatorname{Avg}\left(\mathbf{I}_{k}^{Q}\right) Ik?=Avg(IkQ?)
其中, A v g \mathrm{Avg} Avg 为平均池化层。

Session interest interacting layer

接下来作者利用Bi-LSTM来捕捉用户不同Session间的顺序关系,从而建模用户的兴趣变换。其架构如下图所示:

image-20210823155728020

LSTM公式如下:
i t = σ ( W x i I t + W h i h t ? 1 + W c c c t ? 1 + b i ) f t = σ ( W x f I t + W h f h t ? 1 + W c f c t ? 1 + b f ) c t = f t c t ? 1 + i t tanh ? ( W x c I t + W h c h t ? 1 + b c ) o t = σ ( W x o I t + W h o h t ? 1 + W c o c t + b o ) h t = o t tanh ? ( c t ) \begin{aligned} \mathbf{i}_{t} &=\sigma\left(\mathbf{W}_{x i} \mathbf{I}_{t}+\mathbf{W}_{h i} \mathbf{h}_{t-1}+\mathbf{W}_{c \mathbf{c}} \mathbf{c}_{t-1}+\mathbf{b}_{i}\right) \\ \mathbf{f}_{t} &=\sigma\left(\mathbf{W}_{x f} \mathbf{I}_{t}+\mathbf{W}_{h f} \mathbf{h}_{t-1}+\mathbf{W}_{c f} \mathbf{c}_{t-1}+\mathbf{b}_{f}\right) \\ \mathbf{c}_{t} &=\mathbf{f}_{t} \mathbf{c}_{t-1}+\mathbf{i}_{t} \tanh \left(\mathbf{W}_{x c} \mathbf{I}_{t}+\mathbf{W}_{h c} \mathbf{h}_{t-1}+\mathbf{b}_{c}\right) \\ \mathbf{o}_{t} &=\sigma\left(\mathbf{W}_{x o} \mathbf{I}_{t}+\mathbf{W}_{h o} \mathbf{h}_{t-1}+\mathbf{W}_{c o} \mathbf{c}_{t}+\mathbf{b}_{o}\right) \\ \mathbf{h}_{t} &=\mathbf{o}_{t} \tanh \left(\mathbf{c}_{t}\right) \end{aligned} it?ft?ct?ot?ht??=σ(Wxi?It?+Whi?ht?1?+Wcc?ct?1?+bi?)=σ(Wxf?It?+Whf?ht?1?+Wcf?ct?1?+bf?)=ft?ct?1?+it?tanh(Wxc?It?+Whc?ht?1?+bc?)=σ(Wxo?It?+Who?ht?1?+Wco?ct?+bo?)=ot?tanh(ct?)?
其中, σ ( ? ) \sigma(\cdot) σ(?) 为 logistic 函数, i , f , o , c \mathbf{i}, \mathbf{f}, \mathbf{o}, \mathbf{c} i,f,o,c 分别为输入门、遗忘门、输出门和单位向量。都与 I t \mathbf{I}_{t} It? 具有同样的大小。

隐藏层 H \mathbf{H} H 计算如下:
H t = h f t → ⊕ h b t ← \mathbf{H}_{t}=\overrightarrow{\mathbf{h}_{f t}} \oplus \overleftarrow{\mathbf{h}_{b t}} Ht?=hft? ?hbt? ?
其中, h f t → \overrightarrow{\mathbf{h}_{f t}} hft? ? 表示 LSTM 的正向传播的隐藏层状态; h b t ← \overleftarrow{\mathbf{h}_{b t}} hbt? ?? 表示 LSTM 的反向传播的隐藏层状态。

Session Interest Activating Layer

与用户兴趣更相关的 Item 更可能被用户点击,所以作者使用注意力机制来刻画 item 和用户兴趣之间的权重。其架构如下所示:

image-20210823160023660

该层接受了 item 的特征,然后分别与兴趣抽取层的特征和兴趣演化层的特征分别进行自适应学习。

其目的在于,每接收一个 item,模型都会考虑用户的兴趣,并利用 item 的特征和用户的兴趣特征进行加权来控制用户多种兴趣的不同权重,放大相关兴趣,并缩小不相关的兴趣。

兴趣抽取层的特征为:
a k I = exp ? ( I k W I X I ) ) ∑ k K exp ? ( I k W I X I ) U I = ∑ k K a k I I k \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}^{K} a_{k}^{I} \mathbf{I}_{k} \end{aligned} akI?UI?=kK?exp(Ik?WIXI)exp(Ik?WIXI))?=kK?akI?Ik??
兴趣演化层的特征为:
a k I = exp ? ( H k W H X I ) ) ∑ k K exp ? ( H k W H X I ) a_{k}^{I}=\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)} akI?=kK?exp(Hk?WHXI)exp(Hk?WHXI))?
U H = ∑ k K a k H H k \mathbf{U}^{H}=\sum_{k}^{K} a_{k}^{H} \mathbf{H}_{k} UH=kK?akH?Hk?

后面的话,就是把四部分的向量:用户特征向量、待推荐物品向量、会话兴趣加权向量 U I \mathbf{U}^{I} UI、带上下文信息的会话兴趣加权向量 U H \mathbf{U}^{H} UH进行横向拼接,输入到MLP层中,得到输出。

参考

Deep Session Interest Network for Click-Through Rate Prediction

GitHub - DSIN

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:33:09  更:2021-08-24 15:34:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:36:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码