当前位置: 首页 > news >正文

wordpress 维基主题/南宁seo推广外包

wordpress 维基主题,南宁seo推广外包,江苏省城乡和住房建设厅网站,网站备案号在哪里论文《Sequential Recommendation with Graph Neural Networks》阅读论文概况主要亮点及主要思路主要内容介绍基于度量学习的图构造GNN上的兴趣传播簇注意力和询问注意力兴趣提取正则化项相同聚类正则单一分类正则聚簇排序相关性正则预测层总结论文概况 今天带来的是清华和快手…

论文《Sequential Recommendation with Graph Neural Networks》阅读

  • 论文概况
  • 主要亮点及主要思路
  • 主要内容介绍
    • 基于度量学习的图构造
    • GNN上的兴趣传播
    • 簇注意力和询问注意力
    • 兴趣提取
    • 正则化项
      • 相同聚类正则
      • 单一分类正则
      • 聚簇排序相关性正则
      • 预测层
  • 总结

论文概况

今天带来的是清华和快手公司联合完成的作品,发表在SIGIR 2021上关于序列化推荐的论文,模型名称为SURGE

主要亮点及主要思路

  1. 作者使用GNN完成序列化推荐任务,有别于会话推荐(Session-based Recommendation, SBR),序列化推荐(Sequential Recommendation, SR)由于序列长度比较长,所以直接用GNN效果不太好(过度平滑问题导致GNN只能收集短序列信息,一般最多4跳),所以需要改造图以使图稠密。这里作者使用了度量学习(Metric Learning)完成图构造。
  2. 作者使用簇(cluster)完成兴趣抽取。

下面,进行主要内容介绍。

主要内容介绍

基于度量学习的图构造

首先模型需要将序列构造成图,但是SR中的序列是长序列且大多不重复,因此无法直接使用GNN。作者这里使用Metric Learning(或称为相似度学习)将相似物品进行靠近完成图构造。具体地,针对每个节点向量(h⃗i∈Rd\vec{h}_i \in \mathbb{R}^{d}hiRd)进行线性变换得到相似度矩阵MMM如下:
Mij=cos⁡(w⃗⊙h⃗i,w⃗⊙h⃗j)(1)M_{ij}=\cos(\vec{w} \odot \vec{h}_i, \vec{w} \odot \vec{h}_j) \tag{1}Mij=cos(whi,whj)(1)

使用多头方式完成多方面语义,改造式(1)如下(注,原文公式2应该写错了):
Mijδ=cos⁡(w⃗δ⊙h⃗i,w⃗δ⊙h⃗j),Mij=1ϕ∑δ=1ϕMijδ(2)M_{ij}^\delta = \cos(\vec{w}_\delta \odot \vec{h}_i, \vec{w}_\delta \odot \vec{h}_j), M_{ij} = \frac{1}{\phi}\sum\limits_{\delta=1}^{\phi}{M_{ij}^\delta} \tag{2}Mijδ=cos(wδhi,wδhj),Mij=ϕ1δ=1ϕMijδ(2)

根据得到的矩阵M∈Rn×nM\in \mathbb{R}^{n\times n}MRn×n 完成邻接矩阵构造(nnn为当前序列中item数量),将矩阵中排前ϵn2\epsilon n^2ϵn2的item设置为1,其余为0完成一个相对稠密的矩阵构造(A∈Rn×nA \in \mathbb{R}^{n\times n}ARn×n)方便后续GNN学习。

GNN上的兴趣传播

这部分的目的为将原来的节点向量{h⃗1,h⃗2,⋯,h⃗n}\{ \vec{h}_1, \vec{h}_2, \cdots, \vec{h}_n \}{h1,h2,,hn} 更新为 h⃗1′,h⃗2′,⋯,h⃗n′\vec{h}_1^\prime, \vec{h}_2^\prime, \cdots, \vec{h}_n^\primeh1,h2,,hn ,其中任意h⃗i′∈Rd′\vec{h}_i^\prime \in \mathbb{R}^{d^\prime}hiRd

具体的,上面通过度量学习完成了邻接矩阵AAA的构造,使用 AAA 完成节点聚合(aggregation),具体如下(EijδE_{i j}^{\delta}Eijδ的具体构造方法见后文):

h⃗i′=∥δ=1ϕσ(Waδ⋅Agg (Eijδh⃗j∣j∈Ni)+h⃗i)(3)\vec{h}_{i}^{\prime}={\mathop{\|}}_{\delta=1}^{\phi} \sigma\left(\mathrm{W}_{\mathbf{a}}{ }^{\delta} \cdot \text { Agg }\left(E_{i j}^{\delta} \ \vec{h}_{j} \mid j \in \mathcal{N}_{i}\right)+\vec{h}_{i}\right) \tag{3}hi=δ=1ϕσ(Waδ Agg (Eijδ hjjNi)+hi)(3)

∥\|表示拼接,最终完成多头整合的向量h⃗i′∈Rδd′\vec{h}_{i}^{\prime} \in \mathbb{R}^{\delta d^{\prime}}hiRδd

簇注意力和询问注意力

簇(cluster)就是指将原来序列中的nnn个物品根据兴趣整合到mmm个簇中已完成兴趣的集中,询问就是指目标物品(target item),就是将要预测的物品。

不得不说的是,文中关于询问/目标 这一部分的描述感觉上是有问题的,或至少是交代不清,具体还得看代码才能知道他要表达什么。现在按照文中想要表达的意思进行理解和梳理如下。

αi=Attc(Wch⃗i∥h⃗ic∥Wch⃗i⊙h⃗ic)(4)\alpha_{i}=\text {Att}_{c}\left(\mathbf{W}_{\mathrm{c}} \vec{h}_{i}\left\|\vec{h}_{i_{c}}\right\| \mathbf{W}_{\mathbf{c}} \vec{h}_{i} \odot \vec{h}_{i_{c}}\right) \tag{4}αi=Attc(WchihicWchihic)(4)

这里的h⃗ic\vec{h}_{i_{c}}hic 是将图 AAA 中节点 iiikkk-hop邻居节点进行平均得到,由此即可以得到αi\alpha_{i}αi
同理,
βj=Attq(Wqh⃗j∥h⃗t∥Wqh⃗j⊙h⃗t)(5’)\beta_{j}=\text {Att}_{q}\left(\mathbf{W}_{\mathbf{q}} \vec{h}_{j}\left\|\vec{h}_{t}\right\| \mathbf{W}_{\mathrm{q}} \vec{h}_{j} \odot \vec{h}_{t}\right) \tag{5'}βj=Attq(WqhjhtWqhjht)(5’)

这里ht⃗\vec{h_t}ht表示目标物品。这里就是我们提出的疑问所在,如果是target-aware,那么这个target和预测物品必须是一一对应的,那么这里的βj\beta_{j}βj应该有∣V∣|\mathcal{V}|V个(不是nnn个,是所有物品大小——∣V∣|\mathcal{V}|V个),即预测一个,就对应有一个β\betaβ,之后与β\betaβ相关的参数也都应该如此,我们这里修改原文的β\betaβ如下(后续的参数也都相应修改):

βjt=Attq(Wqh⃗j∥h⃗t∥Wqh⃗j⊙h⃗t)(5)\beta_{j}^t=\text {Att}_{q}\left(\mathbf{W}_{\mathbf{q}} \vec{h}_{j}\left\|\vec{h}_{t}\right\| \mathbf{W}_{\mathrm{q}} \vec{h}_{j} \odot \vec{h}_{t}\right) \tag{5}βjt=Attq(WqhjhtWqhjht)(5)

得到 α\alphaαβ\betaβ 后,就可以得到 EEE ,具体如下:

Eijt=softmax⁡j(αi+βjt)=exp⁡(αi+βjt)∑k∈Niexp⁡(αi+βkt)(6)E_{ij}^t = \operatorname{softmax}_{j} \left(\alpha_{i}+\beta_{j}^t\right) = \frac{\exp \left(\alpha_{i}+\beta_{j}^t \right)} {\sum_{k \in \mathcal{N}_{i}} \exp \left(\alpha_{i}+\beta_{k}^t \right)} \tag{6}Eijt=softmaxj(αi+βjt)=kNiexp(αi+βkt)exp(αi+βjt)(6)

兴趣提取

{h⃗1∗,h⃗2∗,…,h⃗m∗}=S⊤{h⃗1′,h⃗2′,…,h⃗n′},{γ1∗,γ2∗,…,γm∗}=S⊤{γ1,γ2,…,γn},(7)\begin{aligned} &\left\{\vec{h}_{1}^{*}, \vec{h}_{2}^{*}, \ldots, \vec{h}_{m}^{*}\right\} = S^{\top}\left\{\vec{h}_{1}^{\prime}, \vec{h}_{2}^{\prime}, \ldots, \vec{h}_{n}^{\prime}\right\}, \\ &\left\{\gamma_{1}^{*}, \gamma_{2}^{*}, \ldots, \gamma_{m}^{*}\right\} = S^{\top}\left\{\gamma_{1}, \gamma_{2}, \ldots, \gamma_{n}\right\}, \end{aligned} \tag{7}{h1,h2,,hm}=S{h1,h2,,hn},{γ1,γ2,,γm}=S{γ1,γ2,,γn},(7)

这里的S∈Rn×mS \in \mathbb{R}^{n \times m}SRn×m就是用来簇聚类的,将nnn个物品聚类形成mmm个簇。γi\gamma_{i}γi 表示重要性是系数,实际上是βi\beta_iβisoftmax⁡\operatorname{softmax}softmax 完成的,具体做法文中没有介绍。

对于 SSS 的学习,具体如下:
Si:t=softmax⁡(Wp⋅Agg (Aij∗h⃗j,t′∣j∈Ni))(8)S_{i:}^t = \operatorname{softmax}\left(\mathrm{W}_{\mathbf{p}} \cdot \text { Agg }\left(A_{i j} * \vec{h}_{j,t}^{\prime} \mid j \in \mathcal{N}_{i}\right)\right) \tag{8}Si:t=softmax(Wp Agg (Aijhj,tjNi))(8)

这里我们同样加上了 ⋅t\cdot ^tt 以对target进行标识。 式(8)通过 Wp\mathrm{W}_{\mathbf{p}}Wp 完成了 mmm 个聚簇关系的学习。

正则化项

相同聚类正则

LM=∥A,SS⊤∥F(9)L_M = \| A, SS^\top \|_F \tag{9}LM=A,SSF(9)

SSS 表示 nnn 个物品被分配到 mmm 个簇的概率,则 SS⊤SS^\topSS 表示两个物品被分配到同一个簇的概率。这个正则项可以保证在 AAA 中有联系的物品会被尽量分配到一个簇。

单一分类正则

同一个物品被分配到一个簇是最理想的,如果一个物品在各个簇的分配概率比较平均就不好了,因此,提出以下正则:
LA=1n∑i=1nH(Si:)(10)L_A= \frac{1}{n}\sum\limits_{i=1}^n{H\left(S_{i:}\right)} \tag{10}LA=n1i=1nH(Si:)(10)

这里的H(⋅)H\left( \cdot \right)H() 指熵函数,实现细节未给出。

聚簇排序相关性正则

物品{h⃗1′,h⃗2′,…,h⃗n′}\left\{\vec{h}_{1}^{\prime}, \vec{h}_{2}^{\prime}, \ldots, \vec{h}_{n}^{\prime}\right\}{h1,h2,,hn}之前是有时序关系的,在时序上把持先后发生,为保证映射后的聚簇embedding {h⃗1∗,h⃗2∗,…,h⃗m∗}\left\{\vec{h}_{1}^{*}, \vec{h}_{2}^{*}, \ldots, \vec{h}_{m}^{*}\right\}{h1,h2,,hm}也有相同的时序关系,使用以下正则:

LP=∥PnS,Pm∥2(11)L_P = \|P_nS, P_m\|_2 \tag{11}LP=PnS,Pm2(11)

其中,Pn=[1,2,⋯,n]P_n = [1, 2, \cdots, n]Pn=[1,2,,n]Pm=[1,2,⋯,m]P_m = [1, 2, \cdots, m]Pm=[1,2,,m]

说实话,不清楚这一步的目的是啥,不同物品映射到不同的簇已经打乱时序关系了,聚簇向量 改变顺序不也不影响吗?这个时序关系起不到作用吧感觉。

比如说,映射过去的向量如果由{h⃗1∗,h⃗2∗,…,h⃗m∗}\left\{\vec{h}_{1}^{*}, \vec{h}_{2}^{*}, \ldots, \vec{h}_{m}^{*}\right\}{h1,h2,,hm}变成{h⃗2∗,h⃗1∗,…,h⃗m∗}\left\{\vec{h}_{2}^{*}, \vec{h}_{1}^{*}, \ldots, \vec{h}_{m}^{*}\right\}{h2,h1,,hm},不只说明两个聚簇谁是谁,跟时序有关系吗?真心求问,请各位评论区指教。

预测层

通过AUGRU整合{h⃗1∗,h⃗2∗,…,h⃗m∗}\left\{\vec{h}_{1}^{*}, \vec{h}_{2}^{*}, \ldots, \vec{h}_{m}^{*}\right\}{h1,h2,,hm}得到h⃗s\vec{h}_shs,通过2-layer MLP 完成预测。使用log loss作为损失函数,这里不再赘述。

总结

本文使用Metric Learning完成图构建,使用GNN完成embedding聚合,通过cluster完成兴趣提取,总体来说工作完整。

个人感觉cluster和GNN的工作有点割裂,另外体现时序性关系的唯一一点就是正则化项LPL_PLP,感觉有点牵强附会,而且逻辑上解释不太通。

如果单纯Metric Learning+GNN,那么模型跟时序不时序的其实也没大关系,大概这样。

http://www.jmfq.cn/news/5141575.html

相关文章:

  • 深圳pc端网站开发/搜索引擎营销的常见方式
  • 青羊区定制网站建设报价/网络营销策划推广公司
  • 江阴做网站/关键词的作用
  • 海尔公司的网站建设/厦门网站关键词推广
  • 编程和做网站有关系吗/百度网盘官网下载
  • 手机怎么制作网站教程/深圳网络推广培训学校
  • 做任务免费得晋江币网站/百度号码认证申诉平台
  • 2019建设摩托官方网站/宁波seo教程
  • 58网页版登录打开/长沙专业seo优化推荐
  • 洛阳洛龙区网站建设/网站的seo是什么意思
  • 长治政府网官网/优化关键词排名工具
  • 高邑网站建设/武汉seo招聘网
  • 行业顶级域名com/免费发布网站seo外链
  • 海口市住房和城乡建设局网站/海外推广渠道都有哪些
  • 网站的风格设计有哪些/sem优化策略
  • 西安优化网站技术/深圳百度推广代理
  • 网站做不做301/线上推广平台有哪些
  • 网站图表怎么做的/新闻网最新消息
  • 大网站设计/app数据分析软件
  • 顺义网站做的比较好的公司/壹起航网络推广的目标
  • 512内存做网站/互联网营销成功案例
  • 网站建设需要哪些东西/接广告赚钱的平台
  • w78企业网站后台怎么做/电商网站建设教程
  • 找聊城做网站/东莞网站排名提升
  • 电子商务网站面临的安全隐患/网站推广策划思路的内容
  • 公司企业网站建设的建站流程解析/拉新注册app拿佣金
  • adobe 网站制作软件有哪些/中国站长站
  • 沈阳网站建设公司怎么样/百度官方推广
  • 建设部网站白蚁文件/百度搜索关键词热度
  • 外贸企业网站制作/seo兼职怎么收费