动机:为了推断用户动态偏好的演变,更多的关注到基于序列的推荐系统

最近的研究:注意到可以从显示和隐式反馈序列更好的理解用户偏好

现有方法存在的问题:

  1. 没有考虑在隐式反馈中包含的噪声 ⇒ 导致用户兴趣的有偏见的表示和次优的推荐性能。
  2. 利用item序列来获取用户兴趣的演变 ⇒ 性能受到序列长度的限制,并且难以在一个长的时期对长期兴趣进行有效建模

基于这些观察,提出了一个标准的CTR(Click-Through Rate)模型,叫做denoising user-aware memory network(DUMN):

  1. 基于正交映射的特征净化模块 使用显性反馈表示净化隐式反馈的表示,有效地对隐式反馈进行净化
  2. 设计了一个user memory network 通过改造记忆网络以细粒度(fine-grained)的方式对长期兴趣进行建模
  3. 偏好感知的交互表示组建 基于门控融合用户的长期和短期兴趣,以了解用户无偏见偏好的演变

CTR(Click-Through Rate)-- 广告的实际点击次数/广告的展现量:通过分析用户的历史行为数据推荐符合用户兴趣喝偏好的items

CTR prediction的关键:通过用户历史行为数据,理解用户偏好的演变

DUMN的组成:

  • embedding layer – 以user, ad, user’s click, unblock, like 和 dislike序列作为输入
  • FP(Feature Purification) layer – 使用multi-head interaction-attention组件对用户的多种隐式/显式反馈序列进行建模;使用显式反馈的表示通过正交映射来净化隐式反馈的表示
  • UMN(User Memory Network) layer – 通过改进记忆网络对所有类型的反馈获取用户细粒度的长期兴趣
  • PAIR(Preference-aware Interactive Representation) layer – 结合短期和长期兴趣表示得到交叉表示,然后使用全连接层进行CTR预测。

1. 问题定义
DUMN的表示定义为函数 F ( x ; θ ) \mathcal{F}(x;\theta) F(x;θ)
目标:令 F ( x ; θ ) \mathcal{F}(x;\theta) F(x;θ) 的预测值 y ^ \hat{y} y^ 尽可能的接近用户的实际点击偏好 y ∈ { 0 , 1 } y \in \lbrace0, 1 \rbrace y{0,1},通过最小化特定损失 L \mathcal{L} L,从而实现CTR预测的目的

2. Embedding Layer
DUMN的输入可以分为三个部分:

  • user profile – 包括user_id, gender, age等
  • ad – 是CTR预测的目标item,包括item_id和brand_id
  • user behavior sequences – 一个items列表

在本论文中,对四种行为序列进行建模:
隐式反馈:

  • click sequene C = [ C 1 , C 2 , . . . , C T ] \mathbf{C}=[C_1, C_2, ..., C_T] C=[C1,C2,...,CT]
  • unclick sequence U = [ U 1 , U 2 , . . . , U T ] \mathbf{U}=[U_1, U_2, ..., U_T] U=[U1,U2,...,UT]

显式反馈:

  • dislike sequence D = [ D 1 , D 2 , . . . , D T ] \mathbf{D}=[D_1, D_2, ..., D_T] D=[D1,D2,...,DT]
  • like dequence L = [ L 1 , L 2 , . . . , L T ] \mathbf{L}=[L_1, L_2, ..., L_T] L=[L1,L2,...,LT]

其中, T T T是模型输入的最大序列长度

使用embedding layer将高维稀疏ids转换为低维的密度表示,将输出的值拼接起来:

  • user profile ⇒ e u s e r e_{user} euser
  • ad ⇒ e i t e m e_{item} eitem

embedding后的输出:

  • C C Ce c ∈ R T × E e_c \in \mathbb{R}^{T\times E} ecRT×E
  • U U Ue u ∈ R T × E e_u \in \mathbb{R}^{T\times E} euRT×E
  • D D De d ∈ R T × E e_d \in \mathbb{R}^{T\times E} edRT×E
  • L L Le l ∈ R T × E e_l \in \mathbb{R}^{T\times E} elRT×E

其中, E E E 是embedding的统一维度

3. Feature Purification Layer
输入:

  • 隐式反馈的embedding list e c e_c ece u e_u eu
  • 显式反馈的embedding list e d e_d ede l e_l el
  • user和目标item的embedding list e u s e r e_{user} eusere i t e m e_{item} eitem

使用了两个组件:

  • 使用反馈序列学习表征的短期兴趣
  • 通过提出一种新的向量正交映射方法来净化隐式反馈的特征

3.1 Multi-head Interaction-attention Component
目标:得到细粒度的偏好表示

e c e_c ec 为例介绍该组件的工作:

  1. 使用H个heads来构建 e c \mathbf{e}_c ec e c = [ e c , 1 , . . . , e c , h , . . . , e c , H ] \mathbf{e}_c = [\mathbf{e}_{c,1}, ..., \mathbf{e}_{c,h}, ..., \mathbf{e}_{c,H}] ec=[ec,1,...,ec,h,...,ec,H]
    multi-head self-attention network 的输出:
    h e a d h = s o f t m a x ( e c , h W c , h Q ( e c , h W c , h K ) T T ) e c , h W c , h V \mathbf{head}_h = softmax(\frac{\mathbf{e}_{c,h} \mathbf{W}_{c,h}^Q(\mathbf{e}_{c,h}\mathbf{W}_{c,h}^K)^T} {\sqrt{T}})\mathbf{e}_{c,h} \mathbf{W}_{c,h}^{V} headh=softmax(T

    ec,hWc,hQ(ec,hWc,hK)T
    )ec,hWc,hV

    O c = C o n c a t ( h e a d 1 , h e a d 2 , . . . , h e a d H ) W F \mathbf{O}_c=Concat(\mathbf{head}_1, \mathbf{head}_2, ...,\mathbf{head}_H)\mathbf{W}^F Oc=Concat(head1,head2,...,headH)WF
    其中 W c , h K \mathbf{W}_{c,h}^K Wc,hK, W c , h Q \mathbf{W}_{c,h}^Q Wc,hQ, W c , h V \mathbf{W}_{c,h}^V Wc,hV 是可训练的线性矩阵
  2. 通过全连接层计算目标 ad item和与序列表示中每个位置的目标表示之间的注意力值:
    α j = R E L U ( C o n c a t ( e u s e r , e i t e m , o c j ) W c ) \alpha_j = RELU(Concat(\mathbf{e}_{user}, \mathbf{e}_{item}, \mathbf{o}_c^j)\mathbf{W}_c) αj=RELU(Concat(euser,eitem,ocj)Wc)
    α ~ j = e x p ( α j ) ∑ j ′ = 1 T e x p ( α j ′ ) \tilde{\alpha}_j = \frac{exp(\alpha_j)} {\sum_{j'=1}^{T}exp(\alpha_{j'})} α~j=j=1Texp(αj)exp(αj)
  3. 与目标item融合的点击序列表示计算为:
    f c = ∑ j = 1 T α ~ j o c j \mathbf{f}_c = \sum\limits_{j=1}^{T}\tilde{\alpha}_j\mathbf{o}_c^j fc=j=1Tα~jocj

3.2 Feature Orthogonal Mapping Component
目标:净化隐式反馈的表示 f c \mathbf{f}_c fcf u \mathbf{f}_u fu 中包含的固有噪声

显式反馈表示可以明确地表示用户偏好;隐式反馈表示不能直接表示用户偏好
可以使用显式反馈表示净化隐式反馈表示

我们抽取两组正交映射对 < c l i c k , d i s l i k e > <click, dislike> <click,dislike>< u n c l i c k , l i k e > <unclick, like> <unclick,like>,它们对应的序列表示分别是 < f c , f d > <\mathbf{f}_c,\mathbf{f}_d> <fc,fd>< f u , f l > <\mathbf{f}_u,\mathbf{f}_l> <fu,fl>
< f c , f d > <\mathbf{f}_c,\mathbf{f}_d> <fc,fd> 为例:为了净化隐式反馈序列中的噪声,我们将序列表示对中的第一个元素 f c \mathbf{f}_c fc投影到第二个元素 f d \mathbf{f}_d fd的正交方向上。原始的特征向量 f c \mathbf{f}_c fc被投影到正交特征空间去消除噪声特征。与原始向量相比,正交投影向量包含了纯粹并且有效的用户偏好。

通常,我们在一个二维空间中描述序列对 < f c , f d > <\mathbf{f}_c,\mathbf{f}_d> <fc,fd>正交映射过程,如图所示:

f c \mathbf{f}_c fc 中的噪声表示向量 f c p \mathbf{f}_c^p fcp 可以通过将向量 f c \mathbf{f}_c fc 投影到向量 f d \mathbf{f}_d fd上来得到:
f c p = p r o j e c t ( f c , f d ) \mathbf{f}_c^p = project(\mathbf{f}_c, \mathbf{f}_d) fcp=project(fc,fd)
其中,投影函数表示为 p r o j e c t ( a , b ) = a ⋅ b ∣ b ∣ b ∣ b ∣ project(a,b) = \frac{a \cdot b}{|b|} \frac{b}{|b|} project(a,b)=babbb,a 和 b是两个有着相同维度的向量。
然后,我们可以得到由正交映射净化得到的向量表示如下:
f c o = f c − f c p \mathbf{f}_c^o = \mathbf{f}_c - \mathbf{f}_c^p fco=fcfcp
显然,根据公式 f c p = p r o j e c t ( f c , f d ) \mathbf{f}_c^p = project(\mathbf{f}_c, \mathbf{f}_d) fcp=project(fc,fd),隐式反馈的表示包含用户点击和不喜欢噪声 f c p \mathbf{f}_c^p fcp的混合,它是从原始表示 f c \mathbf{f}_c fc 中过滤出来的,新的纯特征 f c o \mathbf{f}_c^o fco 可以在正交空间中有效地表示用户的纯点击偏好,这也符合用户的点击和不喜欢表示应该是独立的假设。

4. User Memory Network Layer
动机:为了从用户的角度获得比基于项目的方法更稳定、更细粒度的长期偏好表示,我们改进了 NTM 中使用的记忆网络

NTM(Neural turing machines)的memory network包含多个slots对用户的点击序列进行建模,同时,使用controller生成用户点击序列表示的读写key,从而完成memory network进行记忆读写操作。考虑到memory network可以存储特征表示,并且每个slot具有聚合相同特征表示的特点,我们对这一点进行扩展用于存储用户级别的长期兴趣,这样同一个slot中的用户特征表示可以反映用户之间相似的兴趣,这样得到的长期兴趣表示比只使用user_id embedding更通用。

改进基本memory network的步骤:

  1. 为了获取用户的细粒度无偏差的长期兴趣,我们使用四个memory network M c \mathbf{M}_c McM u \mathbf{M}_u MuM l \mathbf{M}_l MlM d \mathbf{M}_d Md 分别保存用户的点击、未点击、喜欢和不喜欢偏好,每个memory network包含m个slots,它们的输出维度为 Z Z Z
  2. controller的输入被替换为由FP得到的用户的短期表示和从item表示得到的user profile的embedding的拼接,来确保模型可以学习用户级别的长期兴趣表示。

M c \mathbf{M}_c Mc为例, M c \mathbf{M}_c Mcmemory readmemory write 如下:

Memory readf c o \mathbf{f}_c^o fcoe u s e r \mathbf{e}_{user} euser 的拼接作为输入,controller通过一个全连接层生成一个 read key k c \mathbf{k}_c kc 来寻址 memory M c \mathbf{M}_c Mc
k c = F F N ( C o n c a t ( f c o , e u s e r ) ) \mathbf{k}_c = \mathrm{FFN}(\mathrm{Concat}(\mathbf{f}_c^o, \mathbf{e}_{user})) kc=FFN(Concat(fco,euser))
最终,加权memory summary计算为输出 r c ∈ R Z \mathbf{r}_c \in \mathbb{R}^Z rcRZ:
r c = ∑ j = 1 m w c r ( j ) M c ( j ) \mathbf{r}_c = \sum_{j=1}^{m}\mathbf{w}_c^r(j)\mathbf{M}_c(j) rc=j=1mwcr(j)Mc(j)

memory write 生成memory write 的权重向量 w c w \mathbf{w}_c^w wcw 和memory read的操作相似。controller还生成了两个额外的keys,加向量(add vector) a d d c \mathbf{add}_c addc 和 清除向量(erase vector) e r a s e c \mathbf{erase}_c erasec 来控制memory的更新:
M c = ( 1 − E c ) ⊙ M c + A c \mathbf{M}_c = (1 - \mathbf{E}_c) \odot \mathbf{M}_c + \mathbf{A}_c Mc=(1Ec)Mc+Ac
其中, E c = w c w ⊗ e r a s e c \mathbf{E}_c = \mathbf{w}_c^w \otimes \mathbf{erase}_c Ec=wcwerasec 是清除矩阵(erase matrix), A c = w c w ⊗ a d d c \mathbf{A}_c = \mathbf{w}_c^w \otimes \mathbf{add}_c Ac=wcwaddc 是加矩阵(add matrix)。 ⊙ \odot ⊗ \otimes 分别表示点乘(结果是标量)和向量乘法(结果是向量)

5. Preference-aware Interactive Representation Component
动机:为了用户长期和短期的兴趣的交叉表示,设计了一个门控机制来融合有着相同类型的用户偏好的长期和短期表示。

还是以点击偏好为例得到长期和短期点击偏好的较差表示 U c \mathbf{U}_c Uc 如下:
U c = C o n c a t ( f c o ∗ s i g m o i d ( f c o W 1 ) , r c ∗ s i g m o i d ( r c W 2 ) ) \mathbf{U}_c = \mathrm{Concat}(\mathbf{f}_c^o * \mathrm{sigmoid(\mathbf{f}_c^o\mathbf{W_1}), \mathbf{r}_c * \mathrm{sigmoid}(\mathbf{r}_c\mathbf{W_2})}) Uc=Concat(fcosigmoid(fcoW1),rcsigmoid(rcW2))
其中, ∗ * 是 Hadamard乘法, W \mathbf{W} W 是维度转换矩阵,来确保两个向量的维度是一致的。

同样,我们可以得到对应于unclick, like 和 dislike 的交叉表示 U u \mathbf{U}_u Uu, U l \mathbf{U}_l Ul, U d \mathbf{U}_d Ud

因此,用户的深层表示兴趣表示为:
R c r o s s = C o n c a t ( U c , U u , U l , U d ) \mathbf{R}_{cross} = \mathrm{Concat}(\mathbf{U}_c,\mathbf{U}_u,\mathbf{U}_l,\mathbf{U}_d) Rcross=Concat(Uc,Uu,Ul,Ud)

最后,我们将用户,目标item,长期兴趣,短期兴趣以及交叉特征拼接起来作为深层表示,然后使用带有sigmoid函数的全连接层生成预测CTR:
y ^ = s i g m o i d ( F F N ( C o n c a t ( e u s e r , e i t e m , R c r o s s ) ) ) \hat{y} = \mathrm{sigmoid}(\mathrm{FFN}(\mathrm{Concat(\mathbf{e_{user}, \mathbf{e}_{item},\mathbf{R}_{cross}})})) y^=sigmoid(FFN(Concat(euser,eitem,Rcross)))

6. 损失函数
在我们的提出的模型DUMN中,我们有两个目标:

  1. 目标item的预测CTR应该静可能的接近真实的标签
  2. 我们需要确保写入这 4 个记忆网络的内容能够真实地表达用户对点击、未点击、喜欢和不喜欢的长期偏好

对于目标1,我们通过最小化平均逻辑损失如下:
L 1 = − 1 N ∑ ( x , y ) ∈ D y l o g ( y ^ + ( 1 − y ) l o g ( 1 − y ^ ) ) \mathcal{L}_1 = -\frac{1}{N}\sum_{(x,y) \in \mathcal{D}}ylog(\hat{y} + (1-y)log(1-\hat{y})) L1=N1(x,y)Dylog(y^+(1y)log(1y^))
其中, D \mathcal{D} D 是训练集的尺寸 N N Nx x x 是DUMN的输入, y ∈ { 0 , 1 } y \in \lbrace 0,1\rbrace y{0,1} 表示用户是否点击了目标item

对于目标2,我们提出了一种基于triplet loss的辅助损失来帮助完成memory write操作。对于每次内容更新,我们从每批点击、未点击、喜欢和不喜欢四个反馈序列中的每一个中随机抽取一个item,并将它们的输出 s c \mathbf{s}_c scs u \mathbf{s}_u sus l \mathbf{s}_l sls d \mathbf{s}_d sd 记录在嵌入层中。值得注意的是,样本是从所有用户交互的数据中采样的,而不仅仅是从用于短期兴趣表示的构建序列中采样。

然后,我们分别为 M c \mathbf{M}_c McM u \mathbf{M}_u MuM l \mathbf{M}_l MlM d \mathbf{M}_d Md 构建正负样本对 < s c , s u > <\mathbf{s}_c, \mathbf{s}_u> <sc,su>
< s u , s c > <\mathbf{s}_u, \mathbf{s}_c> <su,sc>< s l , s d > <\mathbf{s}_l, \mathbf{s}_d> <sl,sd>< s d , s l > <\mathbf{s}_d, \mathbf{s}_l> <sd,sl>
不是一般性,我们以 M c \mathbf{M}_c Mc 为例解释提出的triple loss:
L c = m a x ( d ( q c , s c ) − d ( q c , s u ) + m a r g i n , 0 ) \mathcal{L}_c = \mathrm{max}(d(\mathbf{q}_c, \mathbf{s}_c) - d(\mathbf{q}_c, \mathbf{s}_u) + margin, 0) Lc=max(d(qc,sc)d(qc,su)+margin,0)
q c = ∑ j = 1 m w c w ( j ) M c ( j ) \mathbf{q}_c = \sum_{j=1}^m\mathbf{w}_c^w(j)\mathbf{M}_c(j) qc=j=1mwcw(j)Mc(j)
d ( a , b ) = 1 − a ⋅ b ∥ a ∥ ∥ b ∥ \mathrm{d(a,b) = 1- \frac{a \cdot b}{\lVert a \rVert \lVert b \rVert }} d(a,b)=1abab
其中, d ( ⋅ , ⋅ ) \mathrm{d(\cdot,\cdot)} d(,) 是用于计算相似度的函数,本文中使用cosine相似度
s c \mathbf{s}_c scs u \mathbf{s}_u suq c \mathbf{q}_c qc 分别是正样本、负样本和anchor

目标2可以由这4个辅助损失累加得到:
L 2 = L c + L u + L l + L d \mathcal{L}_2 = \mathcal{L}_c + \mathcal{L}_u + \mathcal{L}_l + \mathcal{L}_d L2=Lc+Lu+Ll+Ld

最终,DUMN的损失函数表示为 L = L 1 + L 2 \mathcal{L} = \mathcal{L}_1 + \mathcal{L}_2 L=L1+L2

「论文笔记」Denoising User-aware Memory Network for Recommendation相关推荐

  1. 【论文笔记】Multi-modal Knowledge-aware Event Memory Network forSocial Media Rumor Detection

    论文标题:Multi-modal Knowledge-aware Event Memory Network forSocial Media Rumor Detection 论文链接:https://s ...

  2. 「学习笔记」黑马面面布局开发

    「学习笔记」黑马面面布局开发 黑马面面布局开发 一.目的 1.1 技术方案 1.2 代码规范 1.2 目录规范 二.流程开发 2.1 蓝湖/摹客协作平台 2.2 适配方案 2.3 初始化文件 2.4 ...

  3. 「划线高亮」和「插入笔记」—— 不止是前端知识点

    如今前端领域:serverless,low code,全栈化等概念遍布漫天.开发者们热衷于讨论「如何把前端格局做大」,「如何将高高在上的概念落地」.此时,你有没有感受到「还不知道发展方向到底是什么,就 ...

  4. 「学习笔记」多项式的蛇皮操作

    文章目录 「学习笔记」多项式的蛇皮操作 前置知识 趋近 自然常数 对数 逆元 导函数 牛顿迭代与泰勒公式 不定积分与定积分 多项式乘法 多项式求逆元 多项式除法/取模 多项式牛顿迭代法 多项式开根 「 ...

  5. 「学习笔记」移动Web开发之flex布局9

    「学习笔记」移动Web开发之flex布局9 一.flex布局体验 1.1 传统布局与flex布局 1.2 初体验 二.flex布局原理 2.1 布局原理 三.flex布局父项常见属性 3.1 常见父项 ...

  6. 「学习笔记」品优购项目-上(页面公共部分 )

    「学习笔记」品优购项目-上 品优购项目-上 目标 品优购项目规划 网站制作流程 品优购项目介绍 品优购项目的学习目的 开发工具以及技术栈 开发工具 技术栈 品优购项目搭建工作 创建的文件夹如下(称为项 ...

  7. linux加权_「学员笔记」LINUX随堂笔记(十一):LVS负载均衡群集

    第12章 LVS负载均衡群集 一.群集概述 1.1 群集的类型 无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机,根据群集所提 ...

  8. 「学习笔记」移动Web开发之rem适配布局10

    「学习笔记」移动Web开发之rem适配布局10 一.rem单位 1.1 rem 单位 二.媒体查询 2.1 什么是媒体查询 2.2 语法规范 2.2.1 mediatype 查询类型 2.2.2 关键 ...

  9. 「学习笔记」HTML5CSS3提高6(上)

    「学习笔记」HTML5&CSS3提高6(上) HTML5新特性 概述 语义化标签 (★★) 多媒体标签 视频标签- video(★★★) 基本使用 兼容写法 video 常用属性 音频标签- ...

最新文章

  1. 第三篇:时间和全局状态(三)
  2. django-ORM单表操作
  3. php网页标点前置,为什么在网页里,标点符号跑到行首了呢?_html/css_WEB-ITnose
  4. input 禁用智能提示_如何在智能手机上禁用紧急警报
  5. Linux 查看磁盘或文件夹及文件大小
  6. 小目标神器!TPH-YOLOv5:将Transformer预测加载Yolov5!
  7. 总结篇——git本地仓库上传更新到github
  8. 强大的代码编辑工具:Nova for mac v7.3中文版
  9. STM32——红外遥控器实验
  10. bboss-elasticsearch--API
  11. gentoo php,Gentoo 下安装 PHP 扩展
  12. linux低级挖矿病毒的查找定位
  13. 特朗普:我是“A+” 谷歌评价:“白痴”-千氪
  14. MySQL week()函数及参数mode详解
  15. RestTemplate的ParameterizedTypeReference
  16. c语言利用中断系统控制流水灯,基于流水灯的“微控制器应用”课程项目教学设计...
  17. CSS 发明者 Håkon Wium Lie 访谈(三)
  18. dspic33E单片机IOPUWR复位原因之一 程序监控定时器
  19. 强网杯-crypto modestudy
  20. DEDECMS安装使用教程

热门文章

  1. Android 桌面小组件
  2. 住宅家具的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  3. 130.ElasticSearch(五):es聚合查询,nested数组
  4. gradle配置 flavor和buildType小结
  5. 神鱼发怒,揭露矿圈“扣块攻击”,矿池江湖暗流涌动
  6. openstack中的flavor
  7. 孩子玩电脑游戏上瘾坏处多
  8. python中documentelement_python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)...
  9. Scala 传名参数、注解
  10. 戴尔服务器主板灯亮不显示,戴尔D600主板常见故障分析