1. 项目概述当会话推荐遇上图与注意力在电商、新闻流或短视频平台我们常常遇到这样的场景一个匿名用户比如未登录的访客在短时间内进行了一系列点击、浏览或购买操作形成了一个“会话”。平台的任务就是在用户即将离开或进行下一次交互时精准地猜出他下一个可能感兴趣的东西是什么。这就是会话推荐Session-Based Recommendation的核心挑战。它不像传统的协同过滤那样依赖用户长期、丰富的画像数据而是要在“一瞥之间”仅凭一个短暂的、匿名的行为序列捕捉到用户飘忽不定的兴趣点。早期的解决方案比如基于马尔可夫链的方法试图用“下一步只跟上一步有关”的假设来建模但面对用户兴趣的多样性和跳跃性常常力不从心。后来循环神经网络RNN及其变体如GRU、LSTM被引入它们能更好地处理序列的时序依赖但本质上还是将用户行为看作一个线性的“链条”忽略了物品之间可能存在的复杂、非顺序的关联。比如用户可能反复在几个同类商品间比较这种“回头”行为蕴含了强烈的偏好信号但在线性序列模型里容易被稀释。WGIN模型的提出正是为了打破这种线性思维的局限。它的核心思想很直观为什么不把用户的一次会话看作一张由物品节点和转移关系边构成的图呢在这个“会话图”里节点是用户点击过的物品边代表用户从一件物品跳转到另一件物品的行为。更重要的是如果用户反复在A和B之间跳转这条边的“权重”就应该更重因为它更可能反映了用户稳定的偏好或决策模式——这就是模型名称中“重复链接效应”的由来。WGIN通过一个精心设计的加权图神经网络来学习这种带权重的图结构信息。同时用户兴趣有长有短长期兴趣可能体现在整个会话的浏览主题上而短期兴趣则聚焦于最近点击的那一两件物品。WGIN巧妙地借用了Transformer架构中的多头注意力机制用两套并行的注意力来分别捕捉这两种兴趣最后融合成一个更全面的会话表示来进行预测。简单说WGIN试图同时回答两个问题1在这个会话里物品之间是怎么“勾连”在一起的图结构视角2在整个行为序列中哪些物品更能代表用户的长期品味而最近的行为又暗示了什么即时需求序列注意力视角。2. 核心思路拆解图结构建模与兴趣分离要理解WGIN我们需要拆解它的两大支柱基于重复链接加权的图神经网络RWGNN和融合长短兴趣的Transformer模块LSTransformer。这不仅仅是两个模块的简单堆叠而是一种从“空间结构”和“时间序列”两个维度协同挖掘用户偏好的设计哲学。2.1 会话图构建从序列到网络的跃迁第一步也是与传统序列方法分道扬镳的关键是将原始的点击序列转化为一个有向加权图。假设一个会话序列是[v1, v2, v4, v2, v4, v2, v3, v2, v1]其中v代表物品ID。传统的RNN会把它当作一个长度为9的序列来处理。而WGIN的做法是识别节点找出序列中所有独特的物品即{v1, v2, v3, v4}。建立边与权重顺序遍历序列。对于每一对相邻点击(v_i, v_j)就在图中创建一条从v_i指向v_j的有向边。如果同一条边多次出现例如v2 - v4出现了两次则这条边的权重就相应增加比如权重记为2。这样构建的图天然地记录了物品间的转移频率。高频转移边重复链接就像地图上的主干道可能代表了用户强烈的偏好路径比如反复对比某两款手机。而低频或单次转移边则可能是偶然的探索行为。给重复链接更高的权重是WGIN的第一个核心创新点。它让模型在学习时更关注那些稳定、重复出现的用户行为模式这比平等对待所有转移关系更能抵抗会话中的噪声比如误点击。注意在实际工程实现中这个建图过程可以非常高效地在线或离线完成。通常我们会为每个会话维护两个邻接矩阵一个出度矩阵记录从每个节点出发的边一个入度矩阵记录指向每个节点的边。矩阵中的值就是边的权重。之后会对矩阵进行行归一化使得从每个节点流出的“注意力”或“信息”总和为1这有助于训练的稳定性。2.2 RWGNN让信息在加权图中流动有了带权重的会话图接下来就是用图神经网络来学习每个物品节点的表示。WGIN使用的是重复加权图神经网络。它与普通GNN如图卷积网络GCN的关键区别在于信息传播公式。在标准GCN中一个节点从其邻居聚合信息时通常是对邻居特征做平均或求和。但在RWGNN中聚合过程考虑了边的权重。具体来说对于节点i其从邻居聚合的信息o_i计算为o_i Concat( M_in * E * W_in, M_out * E * W_out ) b这里M_in和M_out是归一化后的入度、出度加权邻接矩阵E是所有节点的嵌入矩阵W_in,W_out是可学习的参数矩阵b是偏置。Concat操作将来自入边和出边的信息拼接起来。为什么这样设计方向性用户从A跳到B和从B跳到A意义可能不同比如先看综述再看详情与先看详情再返回列表。区分入边和出边能捕捉这种有向转移的语义。加权聚合通过M_in和M_out高频边权重高在信息聚合中贡献更大从而将“重复链接效应”编码到节点的特征学习中。门控更新在聚合了邻居信息o_i后WGIN使用一个类似GRU的门控机制来更新节点自身的表示。这个机制决定保留多少旧状态、融入多少新聚合的邻居信息能有效控制信息流动防止多层传播后节点特征变得过于平滑过度平滑是GNN的常见问题。经过多轮这样的信息传播与更新每个物品节点都获得了一个融合了全局图结构信息的嵌入表示。这个表示不仅包含了物品自身的属性还编码了它在当前会话这个特定上下文中的“角色”和“关系”。2.3 LSTransformer捕捉兴趣的“焦距”与“景深”拿到所有物品的图增强表示后WGIN并没有直接把它们池化成一个会话向量。因为用户在一个会话里的兴趣可能是多层次、动态变化的。这里模型借鉴了Transformer的思想但做了针对性的改造。原始的Transformer自注意力机制可以让序列中的每个元素都与其他所有元素交互从而学习全局依赖。但在会话推荐中我们面临两个特殊需求兴趣多样性一个会话可能包含多个兴趣点例如用户可能既浏览了手机又看了耳机。我们需要一种机制来区分并提取这些不同的兴趣。兴趣演化用户最近的点击往往最能反映其即时意图短期兴趣而整个会话则勾勒出其相对稳定的偏好轮廓长期兴趣。为此WGIN提出了LSTransformer模块它包含两个并行的注意力头组长时多兴趣注意力LMIA这就是一个标准的多头自注意力机制。它将整个物品序列已包含图结构信息作为输入通过多个“头”从不同子空间可以理解为不同角度来审视序列。有的“头”可能关注电子品类目的关联有的“头”可能关注价格区间的跳跃。最终LMIA输出一个加权后的序列表示其中对预测下一个点击更重要的物品可能是用户反复查看的、或处于兴趣核心的会被赋予更高的权重。这相当于捕捉了用户的长期、多元兴趣。短时单兴趣注意力SSIA这个设计非常简洁而有效。它认为用户最后一次点击的物品是当前意图最强烈的信号。因此SSIA直接将会话中最后一个物品的节点表示作为短期兴趣的表示。这避免了复杂计算直接抓住了最显著的近期信号。最后将LMIA输出的“长期兴趣会话表示”和SSIA输出的“短期兴趣最后一个物品表示”拼接起来再通过一个全连接层融合就得到了最终的会话嵌入。这个嵌入同时蕴含了用户兴趣的“景深”长期偏好和“焦距”当前焦点。2.4 训练与预测从表示到推荐列表得到会话嵌入S_f后推荐就变成了一个匹配问题。对于候选物品池中的每一个物品v_i计算其嵌入向量e_i通常在模型开始时随机初始化并与所有节点共享。然后计算会话嵌入与物品嵌入的点积或余弦相似度作为得分score_i S_f^T · e_i。为了缓解热门物品的偏差在训练时会对S_f和e_i进行L2归一化。模型通过交叉熵损失进行端到端训练。给定一个会话序列[v1, v2, ..., v_t]其训练标签就是下一个点击的物品v_{t1}。模型的目标是最大化v_{t1}的预测概率。训练完成后对于一个新的会话模型计算所有候选物品的得分取Top-K如K20作为推荐列表。3. 实操要点与模型实现细节理解了核心思路我们来看看如果要复现或深入理解WGIN有哪些关键的实操细节和“坑”需要注意。这部分内容往往在论文中一笔带过但却是工程落地的关键。3.1 数据预处理与图构建的工程实现论文中使用的YOOCHOOSE和DIGINETICA是会话推荐领域的基准数据集。预处理步骤包括过滤出现次数少于5次的物品和长度小于2的会话这是为了去除噪声和过于稀疏的数据。但实际操作中还有几个要点会话划分如何定义一次“会话”论文默认使用固定的时间窗口如30分钟或显式的会话ID。在实际应用中这可能需要对业务日志进行仔细分析确定合适的会话切割规则。不合理的切割会破坏序列的连贯性。图构建的效率对于超长会话例如包含上百次点击构建全连接图或基于序列的转移图的邻接矩阵可能非常稀疏。在实现时通常使用稀疏矩阵格式如COO或CSR格式来存储M_in和M_out可以极大节省内存和计算资源。对于海量会话的离线训练可以预先为每个会话计算好其邻接矩阵并存储。权重计算与归一化边权重的计算就是简单统计转移频次。行归一化使得每个节点发出的边权重和为1是稳定训练的关键。这可以理解为一个节点将其“影响力”按权重大小分配给它的所有出边邻居。3.2 RWGNN层的实现与超参数选择RWGNN的核心是带权重的信息传播和门控更新。在实现时传播层数论文中的消融实验表明2层RWGNN效果最好3层性能下降。这是一个非常重要的经验。GNN层数不是越多越好。过多的层数会导致所有节点的表示变得相似过度平滑丢失区分度。对于大多数会话推荐任务2-3层足以捕获一跳和两跳的邻居信息。节点表示的聚合在每一层GNN后我们都会得到一个节点表示e_i^(l)。WGIN采用了LightGCN中的思路对不同层的表示进行加权求和作为最终节点表示e_i Σ (a_l * e_i^(l))其中a_l是可学习或预设的权重。实验发现聚合前2层或前3层的信息效果优于只用最后一层。这是因为浅层保留了更多局部信息深层包含了更多全局信息聚合它们能获得更丰富的特征。门控机制更新公式中的GRU单元是标准实现。需要注意的是这里GRU的输入是当前节点的上一轮表示e_i^(l-1)和聚合的邻居信息o_i^(l)。重置门r控制有多少旧状态被用于计算候选状态更新门z控制新旧状态的融合比例。这部分参数需要随模型一起训练。3.3 LSTransformer模块的配置技巧位置编码Transformer本身不考虑顺序但会话的顺序很重要。WGIN在将节点序列输入LSTransformer前为每个节点添加了位置编码。论文采用了一个简单的从后往前编码的方式最后一个物品位置为1倒数第二个为2以此类推并设定最大位置为6。这是一种逆向位置编码强调了靠近预测点序列末端的位置更重要。在实际中也可以尝试正弦余弦位置编码等更复杂的方式。多头注意力的头数LMIA中多头注意力的头数是一个超参数。论文实验发现在YOOCHOOSE数据集上4个或8个头效果较好。头数并非越多越好过多的头可能导致模型过拟合或计算效率降低。一般需要在小规模验证集上进行调优。SSIA的简化SSIA直接取最后一个物品的表示这看似简单实则有效。它避免了引入额外的复杂参数强制模型将短期兴趣信号明确地锚定在最后一个动作上。在实现时直接从经过RWGNN和位置编码后的序列[e1, e2, ..., e_n]中取出e_n即可。3.4 训练技巧与损失函数损失函数使用标准的交叉熵损失这是多分类任务的常见选择。标签是下一个点击物品的one-hot向量。归一化与缩放因子在计算得分score_i前对会话嵌入S_f和物品嵌入e_i进行L2归一化这是为了减轻流行度偏差热门物品的嵌入范数可能更大。此外论文还引入了一个缩放因子γ一个可学习的标量参数用于在归一化后再次放大点积得分增大正负样本之间的差距有助于模型学习更判别性的特征。优化器与正则化使用Adam优化器初始学习率设为0.001并配合学习率衰减如每3个epoch衰减为原来的0.1。L2权重衰减论文中设为10^-5用于防止过拟合。Batch Size通常设置为100或更大具体取决于GPU内存。数据增强论文采用了序列切片的数据增强方法。对于一个长度为n的会话[v1, v2, ..., v_n]可以生成n-1个训练样本([v1], v2), ([v1, v2], v3), ..., ([v1,..., v_{n-1}], v_n)。这能显著增加训练数据量尤其对于短会话较多的数据集提升模型泛化能力。4. 实验结果分析与模型对比论文在YOOCHOOSE和DIGINETICA两个公开数据集上进行了充分的实验以Recall20和MRR20作为主要评价指标。我们来深入解读一下这些结果背后的含义。4.1 与基线模型的全面对比下表概括了WGIN与各类基线模型的性能对比基于论文数据模型类别代表模型核心思想在WGIN对比中的表现原因分析传统/非序列POP, S-POP推荐最热门或会话内最频繁的物品性能最差完全忽略个性化与序列信息无法应对复杂需求。基于邻域Item-KNN基于物品相似度如余弦相似度进行推荐优于POP但有限考虑了物品共现但仍是静态的、非序列化的建模。基于矩阵分解BPR-MF基于贝叶斯个性化排名的矩阵分解效果一般适合静态评分预测对动态序列建模能力弱。基于马尔可夫链FPMC融合一阶马尔可夫链与矩阵分解比Item-KNN差仅建模相邻转移无法捕获长程依赖和复杂兴趣。基于RNN/GRUGRU4REC, NARM使用RNN/GRU建模序列NARM加入注意力显著优于传统方法能建模序列时序依赖NARM的注意力能捕捉主要兴趣。但本质是线性序列模型。基于注意力/MLPSTAMP使用注意力捕捉长期兴趣MLP捕捉短期兴趣效果优秀明确区分长短兴趣但未建模物品间复杂的图结构关系。基于GNNSR-GNN, GACOforRec, AUTOMATE将会话建图用GNN学习节点表示优于多数RNN模型核心进步通过图结构建模物品间非顺序的复杂转移。SR-GNN是开创性工作。WGIN (本文)-加权GNN (RWGNN) 双注意力Transformer (LSTransformer)最优1. 加权图强调重复链接更贴合真实用户行为。2. 分层聚合融合不同GNN层信息。3. 兴趣分离LMIASSIA更精细地建模长短兴趣。关键结论实验结果表明基于GNN的方法普遍优于基于RNN的方法这验证了用图结构建模会话比用线性序列更有效。而WGIN在GNN方法中又更进一步其设计的加权机制和双注意力融合策略带来了显著的性能提升。这说明了在会话推荐中对用户行为进行更细粒度、多视角的建模空间结构时间序列长期短期是有效的方向。4.2 消融实验的深度解读消融实验是理解模型每个组件贡献度的关键。WGIN论文做了以下几组重要的消融会话嵌入方法消融 (WGIN-S, WGIN-L, WGIN-AVG, WGIN-ATT)WGIN-S (只用SSIA)性能下降说明仅依赖最后一次点击的短期兴趣是不足的长期兴趣提供了重要的背景信息。WGIN-L (只用LMIA)性能也低于完整模型说明忽略最近的强信号短期兴趣会损失预测精度。长短兴趣结合是必要的。WGIN-AVG (用平均池化代替LMIA)效果差证明会话中不同物品的重要性差异很大简单的平均会模糊关键信息。WGIN-ATT (用软注意力代替多头注意力)效果不如完整模型表明多头注意力能从不同子空间提取多样化的兴趣比单一的软注意力更具表达力。图神经网络模块消融将RWGNN替换为GCN、GAT、GGNN等经典GNN变体性能均有下降。这验证了门控机制GGNN优于GCN和边权重RWGNN优于GGNN的重要性。特别是GAT效果不佳论文分析是因为在会话推荐任务中节点特征物品嵌入是随机初始化并通过结构学习的GAT基于特征相似度的注意力机制可能无法有效利用图的结构信息。GNN层数与信息聚合层数实验表明2层是最佳选择3层开始出现过平滑导致性能下降。这符合大多数GNN在简单图上的经验。分层信息聚合实验表明聚合前2层或前3层的信息优于只用第2层。这提示我们在构建最终节点表示时保留一些局部低层信息是有益的可以防止高层信息过于全局化而丢失细节。多头注意力头数头数需要调优在YOOCHOOSE上4或8头效果最好。这需要根据数据集中兴趣的复杂度和序列长度来调整。头数太少可能无法充分解耦不同兴趣头数太多则可能增加过拟合风险并降低计算效率。5. 实战心得与拓展思考基于对WGIN模型的拆解和实验分析结合我在推荐系统领域的实践经验分享几点更深层次的思考和实操建议。5.1 WGIN的优势与潜在局限优势建模全面同时从图结构空间和序列注意力时间两个维度建模会话理论框架完整。强调重复模式通过加权GNN显式地强调重复链接抓住了用户行为中“反复比较”、“回头再看”这一关键模式这是很多模型忽略的。兴趣解耦清晰LMIA和SSIA的设计清晰地将长/短期兴趣分离使得模型的可解释性相对增强。我们可以通过分析LMIA的注意力权重了解哪些历史物品对长期兴趣贡献大。潜在局限与挑战计算复杂度对于每个会话都要构建图并运行GNN和Transformer在线推理时延可能高于纯序列模型如GRU。对于超长会话需要设计截断或采样策略。对非常短会话的适应性如果会话长度只有2-3次点击图结构非常简单GNN的优势可能无法充分发挥此时模型更依赖注意力机制和物品嵌入本身。物品冷启动问题和大多数嵌入模型一样对于新出现的、交互数据极少未出现在训练集的物品模型难以学习其有效的嵌入表示。这需要结合物品侧属性信息或使用元学习等技术。仅利用会话内信息WGIN是完全基于会话内信息的模型没有利用任何额外的用户画像、物品属性或跨会话信息。在实际系统中这些信息对于提升推荐精度和多样性至关重要。5.2 工程落地与优化建议离线训练与在线服务WGIN模型适合离线训练生成物品嵌入和模型参数。在线服务时对于一个新的用户会话实时构建或更新会话图可维护一个会话状态。用训练好的RWGNN和LSTransformer模块快速计算当前会话嵌入。与会话无关的物品嵌入可以预先计算并缓存。通过高效的向量检索如Faiss从海量物品库中检索Top-K候选。这一步是性能瓶颈需要重点优化。处理超长会话可以设定一个滑动窗口只考虑最近N次交互来建图以控制计算复杂度。或者对历史交互进行采样但要注意保持核心的重复链接模式。融入外部信息这是最重要的改进方向。可以在物品嵌入初始化时融入物品的属性特征类别、价格、品牌等。更进阶的做法是构建包含物品、属性、用户的异构图使用更复杂的GNN如RGCN、HGT进行建模这将使模型能够利用丰富的边信息并一定程度上缓解冷启动问题。多目标优化实际推荐系统不仅关心点击率CTR还关心转化率、时长、多样性等。可以在WGIN的会话嵌入基础上增加多个预测头进行多任务学习例如同时预测点击、购买、停留时长等。5.3 未来方向的个人思考WGIN为我们提供了一个强大的基线框架。在此基础上我认为有几个值得探索的方向动态图与持续学习当前WGIN将会话视为静态图。实际上用户兴趣在会话中是演化的。可以探索动态图神经网络将会话图随着每次新点击而动态更新更精细地模拟兴趣漂移过程。可解释性增强虽然注意力权重提供了一些可解释性但还不够直观。可以尝试结合图注意力不仅解释哪个物品重要还能解释是通过哪条重要的转移路径图上的边影响了预测。这对于理解用户决策路径、进行推荐解释非常有价值。与检索-排序两阶段架构的融合在工业界大规模系统中WGIN这类复杂模型通常作为精排阶段模型。可以探索如何将其与召回阶段结合例如用WGIN学习到的会话嵌入或物品嵌入来指导向量化召回如通过ANN检索相似物品或会话形成端到端的优化。探索更高效的架构Transformer的计算复杂度是序列长度的平方级。对于长序列可以考虑使用线性注意力、稀疏注意力等变体或者将图神经网络的信息传播与更轻量的序列模型结合在保证效果的同时提升推理速度。WGIN模型的价值在于它清晰地指出了一个方向会话推荐不是一个单纯的序列预测问题而是一个结构化的序列挖掘问题。将图神经网络对复杂关系的建模能力与Transformer对序列全局依赖的捕捉能力相结合并针对用户行为中“重复”这一关键模式进行强化是提升模型性能的有效途径。在实际应用中我们需要根据业务场景、数据特点和性能要求对这套框架进行灵活的调整、简化和增强。
WGIN模型解析:加权图神经网络与注意力机制在会话推荐中的应用
发布时间:2026/6/1 15:59:54
1. 项目概述当会话推荐遇上图与注意力在电商、新闻流或短视频平台我们常常遇到这样的场景一个匿名用户比如未登录的访客在短时间内进行了一系列点击、浏览或购买操作形成了一个“会话”。平台的任务就是在用户即将离开或进行下一次交互时精准地猜出他下一个可能感兴趣的东西是什么。这就是会话推荐Session-Based Recommendation的核心挑战。它不像传统的协同过滤那样依赖用户长期、丰富的画像数据而是要在“一瞥之间”仅凭一个短暂的、匿名的行为序列捕捉到用户飘忽不定的兴趣点。早期的解决方案比如基于马尔可夫链的方法试图用“下一步只跟上一步有关”的假设来建模但面对用户兴趣的多样性和跳跃性常常力不从心。后来循环神经网络RNN及其变体如GRU、LSTM被引入它们能更好地处理序列的时序依赖但本质上还是将用户行为看作一个线性的“链条”忽略了物品之间可能存在的复杂、非顺序的关联。比如用户可能反复在几个同类商品间比较这种“回头”行为蕴含了强烈的偏好信号但在线性序列模型里容易被稀释。WGIN模型的提出正是为了打破这种线性思维的局限。它的核心思想很直观为什么不把用户的一次会话看作一张由物品节点和转移关系边构成的图呢在这个“会话图”里节点是用户点击过的物品边代表用户从一件物品跳转到另一件物品的行为。更重要的是如果用户反复在A和B之间跳转这条边的“权重”就应该更重因为它更可能反映了用户稳定的偏好或决策模式——这就是模型名称中“重复链接效应”的由来。WGIN通过一个精心设计的加权图神经网络来学习这种带权重的图结构信息。同时用户兴趣有长有短长期兴趣可能体现在整个会话的浏览主题上而短期兴趣则聚焦于最近点击的那一两件物品。WGIN巧妙地借用了Transformer架构中的多头注意力机制用两套并行的注意力来分别捕捉这两种兴趣最后融合成一个更全面的会话表示来进行预测。简单说WGIN试图同时回答两个问题1在这个会话里物品之间是怎么“勾连”在一起的图结构视角2在整个行为序列中哪些物品更能代表用户的长期品味而最近的行为又暗示了什么即时需求序列注意力视角。2. 核心思路拆解图结构建模与兴趣分离要理解WGIN我们需要拆解它的两大支柱基于重复链接加权的图神经网络RWGNN和融合长短兴趣的Transformer模块LSTransformer。这不仅仅是两个模块的简单堆叠而是一种从“空间结构”和“时间序列”两个维度协同挖掘用户偏好的设计哲学。2.1 会话图构建从序列到网络的跃迁第一步也是与传统序列方法分道扬镳的关键是将原始的点击序列转化为一个有向加权图。假设一个会话序列是[v1, v2, v4, v2, v4, v2, v3, v2, v1]其中v代表物品ID。传统的RNN会把它当作一个长度为9的序列来处理。而WGIN的做法是识别节点找出序列中所有独特的物品即{v1, v2, v3, v4}。建立边与权重顺序遍历序列。对于每一对相邻点击(v_i, v_j)就在图中创建一条从v_i指向v_j的有向边。如果同一条边多次出现例如v2 - v4出现了两次则这条边的权重就相应增加比如权重记为2。这样构建的图天然地记录了物品间的转移频率。高频转移边重复链接就像地图上的主干道可能代表了用户强烈的偏好路径比如反复对比某两款手机。而低频或单次转移边则可能是偶然的探索行为。给重复链接更高的权重是WGIN的第一个核心创新点。它让模型在学习时更关注那些稳定、重复出现的用户行为模式这比平等对待所有转移关系更能抵抗会话中的噪声比如误点击。注意在实际工程实现中这个建图过程可以非常高效地在线或离线完成。通常我们会为每个会话维护两个邻接矩阵一个出度矩阵记录从每个节点出发的边一个入度矩阵记录指向每个节点的边。矩阵中的值就是边的权重。之后会对矩阵进行行归一化使得从每个节点流出的“注意力”或“信息”总和为1这有助于训练的稳定性。2.2 RWGNN让信息在加权图中流动有了带权重的会话图接下来就是用图神经网络来学习每个物品节点的表示。WGIN使用的是重复加权图神经网络。它与普通GNN如图卷积网络GCN的关键区别在于信息传播公式。在标准GCN中一个节点从其邻居聚合信息时通常是对邻居特征做平均或求和。但在RWGNN中聚合过程考虑了边的权重。具体来说对于节点i其从邻居聚合的信息o_i计算为o_i Concat( M_in * E * W_in, M_out * E * W_out ) b这里M_in和M_out是归一化后的入度、出度加权邻接矩阵E是所有节点的嵌入矩阵W_in,W_out是可学习的参数矩阵b是偏置。Concat操作将来自入边和出边的信息拼接起来。为什么这样设计方向性用户从A跳到B和从B跳到A意义可能不同比如先看综述再看详情与先看详情再返回列表。区分入边和出边能捕捉这种有向转移的语义。加权聚合通过M_in和M_out高频边权重高在信息聚合中贡献更大从而将“重复链接效应”编码到节点的特征学习中。门控更新在聚合了邻居信息o_i后WGIN使用一个类似GRU的门控机制来更新节点自身的表示。这个机制决定保留多少旧状态、融入多少新聚合的邻居信息能有效控制信息流动防止多层传播后节点特征变得过于平滑过度平滑是GNN的常见问题。经过多轮这样的信息传播与更新每个物品节点都获得了一个融合了全局图结构信息的嵌入表示。这个表示不仅包含了物品自身的属性还编码了它在当前会话这个特定上下文中的“角色”和“关系”。2.3 LSTransformer捕捉兴趣的“焦距”与“景深”拿到所有物品的图增强表示后WGIN并没有直接把它们池化成一个会话向量。因为用户在一个会话里的兴趣可能是多层次、动态变化的。这里模型借鉴了Transformer的思想但做了针对性的改造。原始的Transformer自注意力机制可以让序列中的每个元素都与其他所有元素交互从而学习全局依赖。但在会话推荐中我们面临两个特殊需求兴趣多样性一个会话可能包含多个兴趣点例如用户可能既浏览了手机又看了耳机。我们需要一种机制来区分并提取这些不同的兴趣。兴趣演化用户最近的点击往往最能反映其即时意图短期兴趣而整个会话则勾勒出其相对稳定的偏好轮廓长期兴趣。为此WGIN提出了LSTransformer模块它包含两个并行的注意力头组长时多兴趣注意力LMIA这就是一个标准的多头自注意力机制。它将整个物品序列已包含图结构信息作为输入通过多个“头”从不同子空间可以理解为不同角度来审视序列。有的“头”可能关注电子品类目的关联有的“头”可能关注价格区间的跳跃。最终LMIA输出一个加权后的序列表示其中对预测下一个点击更重要的物品可能是用户反复查看的、或处于兴趣核心的会被赋予更高的权重。这相当于捕捉了用户的长期、多元兴趣。短时单兴趣注意力SSIA这个设计非常简洁而有效。它认为用户最后一次点击的物品是当前意图最强烈的信号。因此SSIA直接将会话中最后一个物品的节点表示作为短期兴趣的表示。这避免了复杂计算直接抓住了最显著的近期信号。最后将LMIA输出的“长期兴趣会话表示”和SSIA输出的“短期兴趣最后一个物品表示”拼接起来再通过一个全连接层融合就得到了最终的会话嵌入。这个嵌入同时蕴含了用户兴趣的“景深”长期偏好和“焦距”当前焦点。2.4 训练与预测从表示到推荐列表得到会话嵌入S_f后推荐就变成了一个匹配问题。对于候选物品池中的每一个物品v_i计算其嵌入向量e_i通常在模型开始时随机初始化并与所有节点共享。然后计算会话嵌入与物品嵌入的点积或余弦相似度作为得分score_i S_f^T · e_i。为了缓解热门物品的偏差在训练时会对S_f和e_i进行L2归一化。模型通过交叉熵损失进行端到端训练。给定一个会话序列[v1, v2, ..., v_t]其训练标签就是下一个点击的物品v_{t1}。模型的目标是最大化v_{t1}的预测概率。训练完成后对于一个新的会话模型计算所有候选物品的得分取Top-K如K20作为推荐列表。3. 实操要点与模型实现细节理解了核心思路我们来看看如果要复现或深入理解WGIN有哪些关键的实操细节和“坑”需要注意。这部分内容往往在论文中一笔带过但却是工程落地的关键。3.1 数据预处理与图构建的工程实现论文中使用的YOOCHOOSE和DIGINETICA是会话推荐领域的基准数据集。预处理步骤包括过滤出现次数少于5次的物品和长度小于2的会话这是为了去除噪声和过于稀疏的数据。但实际操作中还有几个要点会话划分如何定义一次“会话”论文默认使用固定的时间窗口如30分钟或显式的会话ID。在实际应用中这可能需要对业务日志进行仔细分析确定合适的会话切割规则。不合理的切割会破坏序列的连贯性。图构建的效率对于超长会话例如包含上百次点击构建全连接图或基于序列的转移图的邻接矩阵可能非常稀疏。在实现时通常使用稀疏矩阵格式如COO或CSR格式来存储M_in和M_out可以极大节省内存和计算资源。对于海量会话的离线训练可以预先为每个会话计算好其邻接矩阵并存储。权重计算与归一化边权重的计算就是简单统计转移频次。行归一化使得每个节点发出的边权重和为1是稳定训练的关键。这可以理解为一个节点将其“影响力”按权重大小分配给它的所有出边邻居。3.2 RWGNN层的实现与超参数选择RWGNN的核心是带权重的信息传播和门控更新。在实现时传播层数论文中的消融实验表明2层RWGNN效果最好3层性能下降。这是一个非常重要的经验。GNN层数不是越多越好。过多的层数会导致所有节点的表示变得相似过度平滑丢失区分度。对于大多数会话推荐任务2-3层足以捕获一跳和两跳的邻居信息。节点表示的聚合在每一层GNN后我们都会得到一个节点表示e_i^(l)。WGIN采用了LightGCN中的思路对不同层的表示进行加权求和作为最终节点表示e_i Σ (a_l * e_i^(l))其中a_l是可学习或预设的权重。实验发现聚合前2层或前3层的信息效果优于只用最后一层。这是因为浅层保留了更多局部信息深层包含了更多全局信息聚合它们能获得更丰富的特征。门控机制更新公式中的GRU单元是标准实现。需要注意的是这里GRU的输入是当前节点的上一轮表示e_i^(l-1)和聚合的邻居信息o_i^(l)。重置门r控制有多少旧状态被用于计算候选状态更新门z控制新旧状态的融合比例。这部分参数需要随模型一起训练。3.3 LSTransformer模块的配置技巧位置编码Transformer本身不考虑顺序但会话的顺序很重要。WGIN在将节点序列输入LSTransformer前为每个节点添加了位置编码。论文采用了一个简单的从后往前编码的方式最后一个物品位置为1倒数第二个为2以此类推并设定最大位置为6。这是一种逆向位置编码强调了靠近预测点序列末端的位置更重要。在实际中也可以尝试正弦余弦位置编码等更复杂的方式。多头注意力的头数LMIA中多头注意力的头数是一个超参数。论文实验发现在YOOCHOOSE数据集上4个或8个头效果较好。头数并非越多越好过多的头可能导致模型过拟合或计算效率降低。一般需要在小规模验证集上进行调优。SSIA的简化SSIA直接取最后一个物品的表示这看似简单实则有效。它避免了引入额外的复杂参数强制模型将短期兴趣信号明确地锚定在最后一个动作上。在实现时直接从经过RWGNN和位置编码后的序列[e1, e2, ..., e_n]中取出e_n即可。3.4 训练技巧与损失函数损失函数使用标准的交叉熵损失这是多分类任务的常见选择。标签是下一个点击物品的one-hot向量。归一化与缩放因子在计算得分score_i前对会话嵌入S_f和物品嵌入e_i进行L2归一化这是为了减轻流行度偏差热门物品的嵌入范数可能更大。此外论文还引入了一个缩放因子γ一个可学习的标量参数用于在归一化后再次放大点积得分增大正负样本之间的差距有助于模型学习更判别性的特征。优化器与正则化使用Adam优化器初始学习率设为0.001并配合学习率衰减如每3个epoch衰减为原来的0.1。L2权重衰减论文中设为10^-5用于防止过拟合。Batch Size通常设置为100或更大具体取决于GPU内存。数据增强论文采用了序列切片的数据增强方法。对于一个长度为n的会话[v1, v2, ..., v_n]可以生成n-1个训练样本([v1], v2), ([v1, v2], v3), ..., ([v1,..., v_{n-1}], v_n)。这能显著增加训练数据量尤其对于短会话较多的数据集提升模型泛化能力。4. 实验结果分析与模型对比论文在YOOCHOOSE和DIGINETICA两个公开数据集上进行了充分的实验以Recall20和MRR20作为主要评价指标。我们来深入解读一下这些结果背后的含义。4.1 与基线模型的全面对比下表概括了WGIN与各类基线模型的性能对比基于论文数据模型类别代表模型核心思想在WGIN对比中的表现原因分析传统/非序列POP, S-POP推荐最热门或会话内最频繁的物品性能最差完全忽略个性化与序列信息无法应对复杂需求。基于邻域Item-KNN基于物品相似度如余弦相似度进行推荐优于POP但有限考虑了物品共现但仍是静态的、非序列化的建模。基于矩阵分解BPR-MF基于贝叶斯个性化排名的矩阵分解效果一般适合静态评分预测对动态序列建模能力弱。基于马尔可夫链FPMC融合一阶马尔可夫链与矩阵分解比Item-KNN差仅建模相邻转移无法捕获长程依赖和复杂兴趣。基于RNN/GRUGRU4REC, NARM使用RNN/GRU建模序列NARM加入注意力显著优于传统方法能建模序列时序依赖NARM的注意力能捕捉主要兴趣。但本质是线性序列模型。基于注意力/MLPSTAMP使用注意力捕捉长期兴趣MLP捕捉短期兴趣效果优秀明确区分长短兴趣但未建模物品间复杂的图结构关系。基于GNNSR-GNN, GACOforRec, AUTOMATE将会话建图用GNN学习节点表示优于多数RNN模型核心进步通过图结构建模物品间非顺序的复杂转移。SR-GNN是开创性工作。WGIN (本文)-加权GNN (RWGNN) 双注意力Transformer (LSTransformer)最优1. 加权图强调重复链接更贴合真实用户行为。2. 分层聚合融合不同GNN层信息。3. 兴趣分离LMIASSIA更精细地建模长短兴趣。关键结论实验结果表明基于GNN的方法普遍优于基于RNN的方法这验证了用图结构建模会话比用线性序列更有效。而WGIN在GNN方法中又更进一步其设计的加权机制和双注意力融合策略带来了显著的性能提升。这说明了在会话推荐中对用户行为进行更细粒度、多视角的建模空间结构时间序列长期短期是有效的方向。4.2 消融实验的深度解读消融实验是理解模型每个组件贡献度的关键。WGIN论文做了以下几组重要的消融会话嵌入方法消融 (WGIN-S, WGIN-L, WGIN-AVG, WGIN-ATT)WGIN-S (只用SSIA)性能下降说明仅依赖最后一次点击的短期兴趣是不足的长期兴趣提供了重要的背景信息。WGIN-L (只用LMIA)性能也低于完整模型说明忽略最近的强信号短期兴趣会损失预测精度。长短兴趣结合是必要的。WGIN-AVG (用平均池化代替LMIA)效果差证明会话中不同物品的重要性差异很大简单的平均会模糊关键信息。WGIN-ATT (用软注意力代替多头注意力)效果不如完整模型表明多头注意力能从不同子空间提取多样化的兴趣比单一的软注意力更具表达力。图神经网络模块消融将RWGNN替换为GCN、GAT、GGNN等经典GNN变体性能均有下降。这验证了门控机制GGNN优于GCN和边权重RWGNN优于GGNN的重要性。特别是GAT效果不佳论文分析是因为在会话推荐任务中节点特征物品嵌入是随机初始化并通过结构学习的GAT基于特征相似度的注意力机制可能无法有效利用图的结构信息。GNN层数与信息聚合层数实验表明2层是最佳选择3层开始出现过平滑导致性能下降。这符合大多数GNN在简单图上的经验。分层信息聚合实验表明聚合前2层或前3层的信息优于只用第2层。这提示我们在构建最终节点表示时保留一些局部低层信息是有益的可以防止高层信息过于全局化而丢失细节。多头注意力头数头数需要调优在YOOCHOOSE上4或8头效果最好。这需要根据数据集中兴趣的复杂度和序列长度来调整。头数太少可能无法充分解耦不同兴趣头数太多则可能增加过拟合风险并降低计算效率。5. 实战心得与拓展思考基于对WGIN模型的拆解和实验分析结合我在推荐系统领域的实践经验分享几点更深层次的思考和实操建议。5.1 WGIN的优势与潜在局限优势建模全面同时从图结构空间和序列注意力时间两个维度建模会话理论框架完整。强调重复模式通过加权GNN显式地强调重复链接抓住了用户行为中“反复比较”、“回头再看”这一关键模式这是很多模型忽略的。兴趣解耦清晰LMIA和SSIA的设计清晰地将长/短期兴趣分离使得模型的可解释性相对增强。我们可以通过分析LMIA的注意力权重了解哪些历史物品对长期兴趣贡献大。潜在局限与挑战计算复杂度对于每个会话都要构建图并运行GNN和Transformer在线推理时延可能高于纯序列模型如GRU。对于超长会话需要设计截断或采样策略。对非常短会话的适应性如果会话长度只有2-3次点击图结构非常简单GNN的优势可能无法充分发挥此时模型更依赖注意力机制和物品嵌入本身。物品冷启动问题和大多数嵌入模型一样对于新出现的、交互数据极少未出现在训练集的物品模型难以学习其有效的嵌入表示。这需要结合物品侧属性信息或使用元学习等技术。仅利用会话内信息WGIN是完全基于会话内信息的模型没有利用任何额外的用户画像、物品属性或跨会话信息。在实际系统中这些信息对于提升推荐精度和多样性至关重要。5.2 工程落地与优化建议离线训练与在线服务WGIN模型适合离线训练生成物品嵌入和模型参数。在线服务时对于一个新的用户会话实时构建或更新会话图可维护一个会话状态。用训练好的RWGNN和LSTransformer模块快速计算当前会话嵌入。与会话无关的物品嵌入可以预先计算并缓存。通过高效的向量检索如Faiss从海量物品库中检索Top-K候选。这一步是性能瓶颈需要重点优化。处理超长会话可以设定一个滑动窗口只考虑最近N次交互来建图以控制计算复杂度。或者对历史交互进行采样但要注意保持核心的重复链接模式。融入外部信息这是最重要的改进方向。可以在物品嵌入初始化时融入物品的属性特征类别、价格、品牌等。更进阶的做法是构建包含物品、属性、用户的异构图使用更复杂的GNN如RGCN、HGT进行建模这将使模型能够利用丰富的边信息并一定程度上缓解冷启动问题。多目标优化实际推荐系统不仅关心点击率CTR还关心转化率、时长、多样性等。可以在WGIN的会话嵌入基础上增加多个预测头进行多任务学习例如同时预测点击、购买、停留时长等。5.3 未来方向的个人思考WGIN为我们提供了一个强大的基线框架。在此基础上我认为有几个值得探索的方向动态图与持续学习当前WGIN将会话视为静态图。实际上用户兴趣在会话中是演化的。可以探索动态图神经网络将会话图随着每次新点击而动态更新更精细地模拟兴趣漂移过程。可解释性增强虽然注意力权重提供了一些可解释性但还不够直观。可以尝试结合图注意力不仅解释哪个物品重要还能解释是通过哪条重要的转移路径图上的边影响了预测。这对于理解用户决策路径、进行推荐解释非常有价值。与检索-排序两阶段架构的融合在工业界大规模系统中WGIN这类复杂模型通常作为精排阶段模型。可以探索如何将其与召回阶段结合例如用WGIN学习到的会话嵌入或物品嵌入来指导向量化召回如通过ANN检索相似物品或会话形成端到端的优化。探索更高效的架构Transformer的计算复杂度是序列长度的平方级。对于长序列可以考虑使用线性注意力、稀疏注意力等变体或者将图神经网络的信息传播与更轻量的序列模型结合在保证效果的同时提升推理速度。WGIN模型的价值在于它清晰地指出了一个方向会话推荐不是一个单纯的序列预测问题而是一个结构化的序列挖掘问题。将图神经网络对复杂关系的建模能力与Transformer对序列全局依赖的捕捉能力相结合并针对用户行为中“重复”这一关键模式进行强化是提升模型性能的有效途径。在实际应用中我们需要根据业务场景、数据特点和性能要求对这套框架进行灵活的调整、简化和增强。