龙空技术网

推荐算法——SUGRE论文详解及代码

勒布朗詹姆斯头号粉丝 55

前言:

现在我们对“算法分析与设计代码”可能比较关怀,朋友们都想要了解一些“算法分析与设计代码”的相关资讯。那么小编同时在网上搜集了一些对于“算法分析与设计代码””的相关资讯,希望咱们能喜欢,咱们一起来学习一下吧!

论文信息

论文:

论文代码:

模型结构:

论文详解整体概览 解决问题用户行为序列中通常存在一些隐式的和有噪声的偏好信号,这就导致无法准确的反映用户的真实偏好; 例如:用户完播了某视频并不代表用户的偏好,可能是新闻/热点/时间/事件/环境导致,不能反映出用户的真实兴趣;用户的偏好是随着时间动态变化的,因此很难从用户的行为序列中获取到用户的行为模式;在随着时间变化,用户的偏好也是随时间变化; 解决思路对用户的长行为序列进行兴趣聚类,项目按照交互时的行为表现进行兴趣簇的划分,然后通过注意力机制实现项目之间的信息流通,再通过池化操作总结得到用户的核心兴趣,然后利用CTR(click-through rate)常用的交叉熵损失进行训练 本文的大体思路是先从用户的浏览记录中进行蒸馏提取到用户交互行为序列中的核心兴趣特征,再进行项目预测。 解决方案 提出了一种基于图的利用图卷积网络来提取隐式偏好信号的方法,使用动态图池来捕获偏好的动态变化模型详解模型结构模型分为4个部分:兴趣图建设。在长期的用户行为中通过度量学习将稀疏的item序列重构为紧密的item- item的兴趣图来整合和区分不同类型的偏好 。兴趣融合图卷积层。图卷积在构造的兴趣图上的传播动态融合用户的兴趣,加强重要行为,削弱噪声行为。兴趣提取图池层。考虑到用户在不同时刻的不同偏好,采用动态图池来自适应地保留动态用户核心偏好。预测层。在合并后的图变成简化的序列后,对增强的兴趣信号的演化进行建模,并预测用户ctrInterest Graph Construction(兴趣图构建)兴趣图目的:整合和区分用户不同类型的偏好;思路:通过用户行为序列的共现关系构建兴趣图,将稀疏的行为序列转换为密集的item- item的兴趣图;方法:采用度量学习为每个交互序列自动构造图结构,来探索兴趣的分布实现方案:Raw graph construction 为每个兴趣序列构建无向图:G = {V, E, };E是要学习的图边集合;A是对应的邻接矩阵;V为交互的item;作为节点;将用户的行为序列构建为图后,更容易区分用户的核心兴趣和外围兴趣; 核心兴趣比外围兴趣有有更高的等级(相似度);因为在连接图上有更多的边,在子图上也有更多更密集的相似兴趣; 初步完成先验框架的构建Node similarity metric learning 采用度量学习来计算学习节点之间的相似度; 采用加权余弦相似度作为度量函数: 为了提高表达能力的和学习过程的稳定性,提出采用multi-head metric:Graph sparsification via -sparseness. 通常情况下,邻接矩阵的元素是一个非负的,但是由于上一步中采用了加权余弦相似度的度量方法,所以会计算出节点之间的相似度的范围在[-1,1]。在出现小于0的情况,就直接进行归一化也可以得到一个完整的全连接邻接矩阵,(简单地归一化它不会对图的稀疏性施加任何约束,并且可以产生一个完全连通的邻接矩阵)。这种方式会增加计算成本并且可能会引入噪声,并且在进行子序列的图卷机时无法聚焦到最相关的地方。 基于以上考虑: 1、从所有节点M中提取非负邻接矩阵A,只考虑最相关的节点对; 2、采用全图相对排序策略(采用绝对阈值),来保证提取阈值超参不敏感和不破坏图的稀疏性 3、设置阈值来进行提取:Interest-fusion Graph Convolutional Layer

提出了关键结构:集群和查询感知图注意卷积层(cluster- and query-aware graph attentive convolutional layer)

这个组件的作用是通过信息聚合感知用户的核心兴趣和感知与query 兴趣(实际上就target item)的相关度;Interest fusion via graph attentive convolution(图卷机)input:一个节点嵌入矩阵(向量){ℎ1,ℎ2,……,ℎ},ℎ∈R,其中是节点数(用户序列长度),是每个节点中嵌入的维数;output:大生成一个新的节点Embedding矩阵{ℎ‘1,ℎ’2,……,ℎ‘},ℎ’∈R‘,输出维度为‘ 计算来映射目标节点在其邻居节点上获取节点的重要性。归一化注意系数被用来对其对应嵌入的状态进行加权组合 ,定义应用残差连接和非线性函数 : Cluster- and query-aware attention 为了在整合兴趣时加强重要信号,削弱噪声信号,提出了一种聚类和查询感知的注意机制。 使用注意系数来重新分配权重 在信息传递过程中的边缘信息。注意机制考虑了以下两个方面: 1、假设节点的邻域将形成一个簇,并将图中的节点视为簇()的中心。 用于确定 G中代表用户多个不同兴趣的簇中心。对于任意一个节点 及其embedding ℎ,以该节点为中心,根据其 k跳接收域内所有邻居节点的embedding可以计算出一个平均值 ℎ,然后计算 ℎ 与 ℎ 的靠近程度 ,值越大则说明节点 越能代表这个接收域的平均水平(即 可以作为一个局部簇中心) 2、上面考虑了源节点之间的相关性,还需要考虑节点ℎ和目标节点ℎ的相关性。如果节点ℎ与目标节点ℎ相关性更强,则该节点在向目标节点的聚合中的权重更大 ,反之亦然。只有相关的行为才能在最终的预测中起作用,所以我们只保留相关的信息,在聚合过程中,不相关的信息将被丢弃。 最终目标节点i对其邻居 j 的关注程度计算为上述两个注意力系数之和,通过softmax进行归一化Interest-extraction Graph Pooling LayerInterest extraction via graph pooling 由上一步实现的了兴趣分簇,确定了每个簇中心,通过簇中的节点计算簇的范围;簇的范围由节点属于这个簇的概率来确定,多个簇节点概率进行池化后,结合池化的特性(扩大感受野、降维去除冗余信息等),即可确定簇的范围(个人观点); 计算节点i在m个不同兴趣簇的概率,softmax: 池化:

Assignment regularization 只有下游推荐系统传过来的梯度信息很难去训练概率矩阵S,提出了三种正则化方法:

Graph readout. 剩余的环节就属于最终的输出环节了,没有什么特殊的理解了,主要在于实现了Prediction Layer

采用ARGRU来学习用户兴趣进化:

最终效果:

标签: #算法分析与设计代码 #算法比较论文怎么写 #算法应用论文怎么写 #推荐算法论文有编数据的吗为什么