推荐系统基础知识——深度推荐模型(三)

深度推荐模型

注意力机制与推荐模型的结合

AFM

Paper : Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks

Attention Neural Factorization Machine

  • 在NFM中,两两特征交叉向量之间可能有不同的权重,某些交叉特征可能更重要,某些则不那么重要。所以AFM在NFM的基础上引入了Attention机制,给交叉特征向量加上了不同的Attention Score

    f Att  ( f P I ( E ) ) = ∑ ( i , j ) ∈ R x a i j ( v i ⊙ v j ) x i x j f_{\text {Att }}\left(f_{P I}(\mathcal{E})\right)=\sum_{(i, j) \in \mathcal{R}_{x}} a_{i j}\left(\mathbf{v}_{i} \odot \mathbf{v}_{j}\right) x_{i} x_{j} fAtt (fPI(E))=(i,j)Rxaij(vivj)xixj

    f a i j ′ = ( v i ⊙ v j ) x i x j f'_{a_{ij}} = \left(\mathbf{v}_{i} \odot \mathbf{v}_{j}\right) x_{i} x_{j} faij=(vivj)xixj

    在这里插入图片描述

    • 对于 a i j a_{ij} aij来说,最简单的方式就是用一个单一的、只与当前交叉特征向量有关而与其他交叉向量无关的可学习参数来表示,但这存在一个问题:由于推荐系统领域输入特征的稀疏性,可能有一些交叉特征向量本身就是稀疏的(即为0向量),采用这种方式时,在梯度反向传播时,对应交叉特征的权重可能不会被有效更新

    • AFM使用了一个简单的AttentionNet来解决上述梯度的问题:一个简单的单全连接层+Softmax的结构

    a i j ′ = h T Re ⁡ L U ( W ( v i ⊙ v j ) x i x j + b ) a i j = exp ⁡ ( a i j ′ ) ∑ ( i , j ) ∈ R x exp ⁡ ( a i j ′ ) \begin{aligned} &a_{i j}^{\prime}=\mathbf{h}^{T} \operatorname{Re} L U\left(\mathbf{W}\left(\mathbf{v}_{i} \odot \mathbf{v}_{j}\right) x_{i} x_{j}+\mathbf{b}\right) \\ &a_{i j}=\frac{\exp \left(a_{i j}^{\prime}\right)}{\sum_{(i, j) \in \mathcal{R}_{x}} \exp \left(a_{i j}^{\prime}\right)} \end{aligned} aij=hTReLU(W(vivj)xixj+b)aij=(i,j)Rxexp(aij)exp(aij)
    其中, W W W为全连接层的权重矩阵, b b b为偏置向量, h h h为权重向量

    在这里插入图片描述

    • 由于全连接层中每个输出神经元都与所有输入神经元(即特征交叉向量)相连,所以在反向传播时,有一些稀疏向量存在并不影响参数的更新(因为存在多条梯度路径,一条为0还可以用其余几条的梯度去更新)

    在这里插入图片描述

DIN

Paper : Deep Interest Network for Click-Through Rate Prediction

Deep Interest Network

  • DIN引入attention机制,计算用户特征与候选广告之间的关联程度,从而表达用户特征之间的不同权重关系

    v U ( A ) = f ( v A , e 1 , e 2 , … , e H ) = ∑ j = 1 H a ( e j , v A ) e j = ∑ j = 1 H w j e j \boldsymbol{v}_{U}(A)=f\left(\boldsymbol{v}_{A}, \boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \ldots, \boldsymbol{e}_{H}\right)=\sum_{j=1}^{H} a\left(\boldsymbol{e}_{j}, \boldsymbol{v}_{A}\right) \boldsymbol{e}_{j}=\sum_{j=1}^{H} \boldsymbol{w}_{j} \boldsymbol{e}_{j} vU(A)=f(vA,e1,e2,,eH)=j=1Ha(ej,vA)ej=j=1Hwjej

    在这里插入图片描述

  • 自适应激活函数(Dice)

    • 普通的激活函数的分割点一般为 0 0 0,而DICE不固定为 0 0 0,而是伴随着数据的改变而动态变化

    f ( s ) = p ( s ) ⋅ s + ( 1 − p ( s ) ) ⋅ α s , p ( s ) = 1 1 + e − s − E [ s ] Var ⁡ [ s ] + ϵ f(s)=p(s) \cdot s+(1-p(s)) \cdot \alpha s, p(s)=\frac{1}{1+e^{-\frac{s-E[s]}{\sqrt{\operatorname{Var}[s]+\epsilon}}}} f(s)=p(s)s+(1p(s))αs,p(s)=1+eVar[s]+ϵ sE[s]1

    在这里插入图片描述

  • 一种高效正则化方法(Mini-batch Aware Regularization)

    • DNN模型往往参数量大且推荐系统模型输入十分稀疏,在SGD优化器设置下,只有非零元素才能被有效更新。这时若使用普通的 L 1 L_1 L1 L 2 L_2 L2正则化对所有的参数都进行计算正则化项并更新,则会增加很多非必要的计算量,因此DIN运用了一种正则化方法使得只有那些非零元素才被计算正则化项进行更新

      L 2 ( W ) = ∑ j = 1 K ∑ m = 1 B ∑ ( x , y ) ∈ B m I ( x j ≠ 0 ) n j ∥ w j ∥ 2 2 L_{2}(\mathbf{W})=\sum_{j=1}^{K} \sum_{m=1}^{B} \sum_{(\boldsymbol{x}, y) \in \mathcal{B}_{m}} \frac{I\left(\boldsymbol{x}_{j} \neq 0\right)}{n_{j}}\left\|\boldsymbol{w}_{j}\right\|_{2}^{2} L2(W)=j=1Km=1B(x,y)BmnjI(xj=0)wj22

AutoInt

Paper : AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks

AutoInt

  • 模型结构

    • 主要引入Self-Attention计算高阶交叉特征,引入残差计算最后的特征表示

    α m , k ( h ) = exp ⁡ ( ψ ( h ) ( e m , e k ) ) ∑ l = 1 M exp ⁡ ( ψ ( h ) ( e m , e l ) ) ψ ( h ) ( e m , e k ) = ⟨ W Query  ( h ) e m , W K e y ( h ) e k ⟩ \begin{gathered} \alpha_{\mathrm{m}, \mathrm{k}}^{(\mathrm{h})}=\frac{\exp \left(\psi^{(h)}\left(\mathbf{e}_{\mathrm{m}}, \mathbf{e}_{\mathrm{k}}\right)\right)}{\sum_{l=1}^{M} \exp \left(\psi^{(h)}\left(\mathbf{e}_{\mathrm{m}}, \mathbf{e}_{\mathrm{l}}\right)\right)} \\ \psi^{(h)}\left(\mathbf{e}_{\mathrm{m}}, \mathbf{e}_{\mathrm{k}}\right)=\left\langle\mathbf{W}_{\text {Query }}^{(\mathrm{h})} \mathbf{e}_{\mathrm{m}}, \mathbf{W}_{\mathrm{Key}}^{(\mathrm{h})} \mathbf{e}_{\mathrm{k}}\right\rangle \end{gathered} αm,k(h)=l=1Mexp(ψ(h)(em,el))exp(ψ(h)(em,ek))ψ(h)(em,ek)=WQuery (h)em,WKey(h)ek

    e ~ m ( h ) = ∑ k = 1 M α m , k ( h ) ( W Value  ( h ) e k ) \widetilde{\mathrm{e}}_{\mathrm{m}}^{(\mathrm{h})}=\sum_{k=1}^{M} \alpha_{\mathrm{m}, \mathrm{k}}^{(\mathrm{h})}\left(\mathbf{W}_{\text {Value }}^{(\mathrm{h})} \mathbf{e}_{\mathrm{k}}\right) e m(h)=k=1Mαm,k(h)(WValue (h)ek)

    e ~ m = e ~ m ( 1 ) ⊕ e ~ m ( 2 ) ⊕ ⋯ e ~ m ( H ) \widetilde{\mathrm{e}}_{\mathrm{m}}=\widetilde{\mathrm{e}}_{\mathrm{m}}^{(1)} \oplus \widetilde{\mathrm{e}}_{\mathrm{m}}^{(2)} \oplus \cdots \widetilde{\mathrm{e}}_{\mathrm{m}}^{(\mathrm{H})} e m=e m(1)e m(2)e m(H)

    e m Res ⁡ = ReLU ⁡ ( e m + W Res ⁡ e m ) \mathbf{e}_{\mathbf{m}}^{\operatorname{Res}}=\operatorname{ReLU}\left(\mathbf{\mathbf { e }}_{\mathbf{m}}+\mathbf{W}_{\operatorname{Res}} \mathbf{e}_{\mathbf{m}}\right) emRes=ReLU(em+WResem)

    y ^ = σ ( w T ( e 1 Res ⁡ ⊕ e 2 Res ⁡ ⊕ ⋯ ⊕ e M Res ⁡ ) + b ) \hat{y}=\sigma\left(\mathbf{w}^{\mathbf{T}}\left(\mathbf{e}_{1}^{\operatorname{Res}} \oplus \mathbf{e}_{2}^{\operatorname{Res}} \oplus \cdots \oplus \mathbf{e}_{\mathbf{M}}^{\operatorname{Res}}\right)+b\right) y^=σ(wT(e1Rese2ReseMRes)+b)

    在这里插入图片描述

序列模型与推荐模型的结合

DIEN

Paper : Deep Interest Evolution Network for Click-Through Rate Prediction

Deep Interest Evolution Network

  • 模型架构

    • 由于用户历史数据是有前后时间关联的,所以DIEN考虑使用RNN模型来建模用户的行为模式

    • 由于GRU只能学习到用户行为之间的依赖关系,无法直接反应出用户的兴趣,所以DIEN使用了一个辅助Loss来帮助学习

    L a u x = − 1 N ( ∑ i = 1 N ∑ t log ⁡ σ ( h t i , e b i [ t + 1 ] ) + log ⁡ ( 1 − σ ( h t i , e ^ b i [ t + 1 ] ) ) ) , \begin{array}{r} L_{a u x}=-\frac{1}{N}\left(\sum_{i=1}^{N} \sum_{t} \log \sigma\left(\mathbf{h}_{t}^{i}, \mathbf{e}_{b}^{i}[t+1]\right)\right. \\ \left.+\log \left(1-\sigma\left(\mathbf{h}_{t}^{i}, \hat{\mathbf{e}}_{b}^{i}[t+1]\right)\right)\right), \end{array} Laux=N1(i=1Ntlogσ(hti,ebi[t+1])+log(1σ(hti,e^bi[t+1]))),

    L = L target  + α ∗ L aux  L=L_{\text {target }}+\alpha * L_{\text {aux }} L=Ltarget +αLaux 
    正样本即为下一个真实点击的item,负样本从非正样本中随机采样

    • DIEN修改GRU结构,引入Attention机制,Attention Score计算公式如下

      a t = exp ⁡ ( h t W e a ) ∑ j = 1 T exp ⁡ ( h j W e a ) a_{t}=\frac{\exp \left(\mathbf{h}_{t} W \mathbf{e}_{a}\right)}{\sum_{j=1}^{T} \exp \left(\mathbf{h}_{j} W \mathbf{e}_{a}\right)} at=j=1Texp(hjWea)exp(htWea)

      • GRU with Attentional Input(AIGRU)

        • 将Attention直接作用于GRU的输入,无需修改GRU结构

        i t ′ = h t ∗ a t \mathbf{i}_{t}^{\prime}=\mathbf{h}_{t} * a_{t} it=htat

      • Attention based GRU(AGRU)

        • 将Attention机制应用于GRU的update gate

        h t ′ = ( 1 − a t ) ∗ h t − 1 ′ + a t ∗ h ~ t ′ \mathbf{h}_{t}^{\prime}=\left(1-a_{t}\right) * \mathbf{h}_{t-1}^{\prime}+a_{t} * \tilde{\mathbf{h}}_{t}^{\prime} ht=(1at)ht1+ath~t

      • GRU with Attentional Update Gate(AUGRU)

        u ~ t ′ = a t ∗ u t ′ h t ′ = ( 1 − u ~ t ′ ) ∘ h t − 1 ′ + u ~ t ′ ∘ h ~ t ′ \begin{aligned} \tilde{\mathbf{u}}_{t}^{\prime} &=a_{t} * \mathbf{u}_{t}^{\prime} \\ \mathbf{h}_{t}^{\prime} &=\left(1-\tilde{\mathbf{u}}_{t}^{\prime}\right) \circ \mathbf{h}_{t-1}^{\prime}+\tilde{\mathbf{u}}_{t}^{\prime} \circ \tilde{\mathbf{h}}_{t}^{\prime} \end{aligned} u~tht=atut=(1u~t)ht1+u~th~t

    在这里插入图片描述

强化学习与推荐模型的结合

DRN

Paper : DRN: A Deep Reinforcement Learning Framework for News Recommendation

Deep Reinforcement Learning Network

  • 强化学习概念在推荐系统领域的解释

    在这里插入图片描述

  • DQN的结构如下所示

    在这里插入图片描述

  • DRN的迭代学习过程

    • 在离线部分,根据历史数据训练模型,作为智能体的初始化模型

    • 在两个时间戳间的时段,利用模型进行PUSH服务,同时积累FEEDBACK

    • 在每个时间戳上,利用上一阶段积累的反馈数据进行MINOR UPDATE

    • 每隔一段时间,利用历史收集的数据以及用户活跃度数据使用Experience Replay进行MAJOR UPDATE

    • 重复上述2~4步

    在这里插入图片描述

  • MINOR UPDATE——Dueling Bandit Gradient Descent

    微更新——竞争梯度下降

    • 对当前网络 Q Q Q的模型参数 W W W添加一个较小的随机扰动 Δ W \Delta W ΔW,得到新的模型参数 W ~ \widetilde{W} W ,对应于探索网络 Q ~ \widetilde{Q} Q

      Δ W = α ⋅ rand ⁡ ( − 1 , 1 ) ⋅ W \Delta \mathrm{W}=\alpha \cdot \operatorname{rand}(-1,1) \cdot \mathrm{W} ΔW=αrand(1,1)W
      α \alpha α为探索因子,决定探索力度大小

    • 对当前网络 Q Q Q与探索网络 Q ~ \widetilde{Q} Q 分别生成推荐列表 L L L L ~ \widetilde{L} L ,用Interleaving将两个推荐列表组合成一个推荐列表后推送给用户

    • 实时收集用户反馈。如果探索网络 Q ~ \widetilde{Q} Q 生成内容的效果好于当前网络 Q Q Q,则用探索网络代替当前网络,进入下一轮迭代

      W ′ = W + η W ~ \mathrm{W}^{\prime}=\mathrm{W}+\eta \tilde{\mathrm{W}} W=W+ηW~
      否则保留当前网络不变。

    在这里插入图片描述

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于关注和分享TensorFlow深度学习算法设计的人工智能学习者来说,《深入理解人工智能算法设计》这本书是一本非常宝贵的学习资源。TensorFlow是一个开源的机器学习框架,它提供了丰富的工具和库,可以帮助开发者设计和训练高效的深度学习模型。 这本书对于TensorFlow深度学习的算法设计提供了详细、系统的解读,对于想要深入学习和掌握TensorFlow的人来说非常有帮助。书中包含了各种不同的算法设计案例,从基础的神经网络模型到复杂的深度学习网络,涵盖了各个方面的知识。 通过关注和分享《深入理解人工智能算法设计》这本书,可以帮助更多的人了解和学习TensorFlow深度学习的算法设计。同时,分享这本书也可以推广和宣传TensorFlow这个强大的工具,让更多的人受益于人工智能算法设计的知识。 为了方便更多人获取这本书,《深入理解人工智能算法设计》的PDF版本可以通过下载来获得。PDF格式的书籍可以在各种电子设备上阅读,包括电脑、平板和手机。通过下载PDF版本,学习者可以随时随地地查阅这本书,提高学习效率。 因此,我鼓励大家关注和分享《深入理解人工智能算法设计》这本书,通过深入学习TensorFlow深度学习的算法设计,提升自己在人工智能领域的技能和能力。同时,也希望更多人可以通过下载PDF版本的方式获取这本书,便捷地进行学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值