UaG论文阅读笔记

news/2024/9/22 15:27:00

User-as-Graph: User Modeling with Heterogeneous Graph Pooling for News Recommendation论文阅读笔记

Abstract

现存的问题

​ 现有的新闻推荐方法通常通过顺序模型或关注模型从用户行为中建立用户兴趣模型。然而,它们无法对用户行为之间的丰富关联性进行建模,而这种关联性可以为用户兴趣建模提供有用的行为背景。

解决方案

​ 在本文中,我们提出了一种用于新闻推荐的新型用户建模方法,该方法将每个用户建模为由用户行为构建的个性化异构图,从而更好地捕捉细粒度的行为关联性。此外,为了从个性化异构图中学习用户兴趣嵌入,我们提出了一种新颖的异构图池化方法,该方法可以总结节点特征和图拓扑结构,并意识到不同类型节点的不同特征。

Introduction

​ 现有的许多方法都无法有效地模拟用户行为之间的相关性,而用户行为之间的相关性通常可以为用户兴趣建模提供有用的行为上下文。事实上,用户在新闻上的行为可能有多种相关性。首先,点击的新闻可能有一些相关性。例如,如图1所示,用户点击第一个和第二个新闻都提到NFL的新闻事件。

pkrtPnx.png

​ 此外,属于同一主题类别的新闻也可能具有一定的相关性。例如,图 1 中的第一条新闻和最后一条新闻都属于 "体育 "类别,且内容相似。此外,包含相同实体的新闻在吸引新闻点击方面也有一定关系,因为新闻中的实体是用户兴趣的重要标志。例如,图 1 中的第二条和最后一条新闻都提到了实体 "Cowboys",这是一个足球队的名字。我们可以推断,该用户之所以点击这两条新闻,是因为他/她可能对这支球队感兴趣。用户行为之间的这类关系可以为行为上下文建模提供非常有用的线索,从而更准确地建立用户兴趣模型。然而,在现有的新闻推荐方法中,主要是用行为集或行为序列来表示用户,用户行为之间的丰富关联性并没有得到有效建模,这可能不是最优的。

​ 为了解决这一问题,我们在本文中提出了一种用于新闻推荐的用户建模方法,即用户作为图(User-as-Graph,UaG),该方法将每个用户表示为由其行为构建的个性化异构图,从而更好地捕捉用户建模的细粒度行为相关性。用户图节点包含被点击的新闻、主题和实体,用户相邻的被点击新闻、新闻与其主题以及新闻与其实体之间会产生边。

​ 现有的方法可以使用顺序模型或注意模型来处理行为序列或集合,与此不同的是,很难从个性化的异构图中学习用户嵌入。因此,我们提出了一种异构图池化(HG-Pool)方法,对个性化异构图进行迭代压缩,同时考虑不同类型节点的不同特征。它针对不同类型的节点使用不同的池化图神经网络,从整个图中总结出特定类型的图信息,并根据同类节点的特征和整个图的拓扑结构对其进行聚合。

​ 本文的贡献如下:

  • 我们提出了一种新的用户建模方法,它将每个用户表示为一个个性化的异构图,以更好地建模用户行为之间的相关性,以更准确的用户兴趣建模。
  • 提出了一种新的异构图池方法来从个性化异构图中学习用户兴趣嵌入。据我们所知,这是关于异构图池的第一个工作

Method

​ 我们在新闻推荐中介绍了用户即图(UaG)的用户建模方法。在用户即图中,每个用户都被表示为一个由他们的行为构建的个性化异构图。为了从个性化的异构图中学习用户对新闻推荐的兴趣嵌入,我们提出了一种新的异构图池方法来迭代地压缩该图。我们的方法的细节介绍如下。

个性化的图构建

​ 首先,我们在用户兴趣建模的UaG方法中引入了个性化图,该方法是由用户的新闻点击行为构建的。它包含三种节点,包括新闻、主题和实体。

​ 在时间上相邻的用户行为通常有一定的相关性。新闻点击的顺序信息对于建模用户的兴趣动态非常重要。因此,我们将每个被点击的新闻视为一个节点,并进一步及时链接相邻的新闻。

​ 此外,新闻主题是建模新闻内容和用户兴趣的非常有用的线索。具有相同主题类别的新闻在用户兴趣建模中也可能有一些关系。因此,我们通过将每个主题类别ci视为一个节点,将主题信息合并到用户图中,并将每个新闻节点ni与其关联的主题节点\(c_{[n_i]}\)连接起来。此外,新闻实体对于新闻和用户建模非常重要,因为用户可能会由于新闻标题中提到的实体的吸引力,如名人或组织,如运动队。

​ 为了纳入实体信息,我们将实体视为另一种节点,并将新闻 N 中提及的实体集\(\mathcal{E}=\{e_1,e_2,...,e_K\}\)(K 为实体编号)整合到用户图中。我们将每个新闻节点 ni 与其提及的实体节点连接起来,最终形成个性化异质图 G(0)。

异构图池化

​ 由于在我们的用户即图方法中,每个用户都被表示为个性化的异构图G (0),因此学习用户的兴趣以获得新闻推荐是至关重要的。 实现这一目标的自然方法就是图池化。现有的图池化方法大多是针对节点具有相似属性的同构图而设计的。然而,在异构图中,不同类型的节点具有不同的特征和拓扑结构。因此,将现有的同构图池方法直接应用于个性化的异构图并非最佳选择。为了解决这个问题,我们提出了一种异构图池(HG-Pool)方法,它可以考虑不同类型节点的不同特征,用于图表示学习。异构图池化的框架如下所示

pkrtG4g.png

​ 对于具有T个节点类型的异构图(G(0)的T为3),我们分别将其初始图邻接矩阵和节点特征分别表示为A (0)和X (0)。我们根据输入 A(0) 和 X(0) 应用多个 GNN 层来处理图,第 l 个 GNN 层的输出为\(A^{(l)}\in\mathbb{R}^{N^{(l)}\times N^{(l)}}\)\(X^{(l)}\in\mathbb{R}^{N^{(l)}\times D}\),其中\(N^{(l)}\)是每种节点的数量的总和。

​ 由于不同类型的节点可能具有不同的特征,因此我们需要按类型区分异构图中的节点。具体来说,我们根据节点类型将图相邻矩阵 A(l) 分成 \(T^2\) 个子矩阵,将节点特征矩阵 X(l) 分成 T 个子矩阵。我们将第i行和第j列中的相邻子矩阵表示为\(A_{i,j}^{(l)}\in\mathbb{R}^{N_i^{(l)}\times N_j^{(l)}}\)(表示第i个类型节点和第j个类型节点之间的连接),并且第i个特征子矩阵表示为\(X_i^{(l)}\in\mathbb{R}^{D\times N_i^{(l)}}\)。基于DiffPool ,我们建议应用T池化图神经网络来独立学习每种节点的池化矩阵,如下所示:

\(S_i^{(l)}=\text{PoolGNN}(A^{(l)},X^{(l)};\Theta_i^{(l)}),\)

​ 其中\(S_i^{(l)}\in\mathbb{R}^{N^{(l)}\times N_i^{(l+1)}}\)是第i个类型节点的池化矩阵。这样,不同类型节点的特征可以通过不同的节点特定的池化矩阵\(S_i^{(l)}\)来建模。

​ 在 DiffPool 等现有的同质图池化方法中,GNN 池化输出的汇总矩阵将应用于相邻矩阵 \(A^{(l)}\)和节点特征矩阵 \(X^{(l)}\)。但是,这种方法会将不同类型的节点不加区分地聚合在一起,不适合异构图池化,因为它们的异构属性无法保留。因此,我们建议将池化矩阵\(S_i^{(l)}\)压缩成一个概述的\(T_i^{(l)}\in\mathbb{R}^{N_i^{(l)}\times N_i^{(l+1)}}\),该矩阵传递节点特定的图信息,其表述为:

\(T_i^{(l)}=\mathrm{softmax}(W_i^{(l)}S_i^{(l)}+B_i^{(l)}),\)

​ 为避免索引操作,我们对\(T_i^{(l)}\) 进行零填充 ,得到一个对齐的集合矩阵 \(P_i^{(l)}\in\mathbb{R}^{N^{(l)}\times N_i^{(l+1)}}\)

​ 然后,我们提出了一个相邻矩阵聚合器和一个节点特征聚合器来计算新的相邻矩阵\(A^{(l+1)}\)和节点特征\(X^{(l+1)}\)。相邻的矩阵聚合器将先前的相邻矩阵\(A^{(l)}\)和T对齐的池化矩阵\([P_1^{(l)},...,P_T^{(l)}]\)作为输入。我们将第i行和第j列中新的相邻子矩阵表示为\(A_{i,j}^{(l+1)}\in\mathbb{R}^{N_i^{(l+1)}\times N_j^{(l+1)}}\),计算方式为:\(A_{i,j}^{(l+1)}=P_i^{(l)\top}A^{(l)}P_j^{(l)}.\)

​ 整个合并的相邻矩阵\(A^{(l+1)}\in\mathbb{R}^{N^{(l+1)}\times N^{(l+1)}}\)是所有相邻子矩阵的二维连接。这样,不同类型的节点就不会聚在一起,并且可以保留异构图的属性。此外,不同类型节点之间的关系也可以利用不同池化矩阵之间的交互作用来建模。节点特征聚合器接收节点特征矩阵\(X^{(l)}\)和对齐的池化矩阵作为输入。我们将第i类节点的新特征子矩阵表示为\(X_i^{(l+1)}\),其公式为:

\(X_i^{(l+1)}=P_i^{(l)\top}X^{(l)}.\)

​ 输出节点特征矩阵是T类节点的特征子矩阵的连接,即\(X^{(l+1)}=concat(X_1^{(l+1)},X_2^{(l+1)},...,X_T^{(l+1)}).\)

​ 在异构图池化模块中,我们将 HG-Pool 方法应用于每个 GNN 层,并使用它们的多个堆栈来分层学习图表示。在迭代应用 HG-Pool L 轮后,原始异构图将被浓缩成一个具有 T 个节点的小型密集连接图,其中每个节点都浓缩了原始图中相应类型节点的信息。最后,我们应用层将该图转换成一个总结整个图信息的单一节点。该节点的嵌入将作为用户兴趣嵌入 u 输出,用于新闻推荐。

​ 池化的具体流程如下:

pkr2cGR.png

节点表示学习

​ 接下来,我们将介绍如何在个性化异构图中学习初始节点表征。为了学习新闻节点表征,我们使用Transformer从新闻标题中学习单词表征,并使用注意力网络通过对重要单词的注意力形成新闻节点表征。为了表示话题节点,我们使用话题类别的嵌入作为节点表示。对于实体节点,我们首先通过 TransE方法从 WikiData 知识图谱中学习实体嵌入,并对这些嵌入应用密集层来对齐特征维度。请注意,实体嵌入是在模型训练过程中进行微调的。

新闻编码器的框架如下:

pkr2PKK.png

模型训练

​ 我们在新闻点击预测任务中训练UaG模型。我们使用新闻编码器来学习候选新闻嵌入,并根据它们与UaG模型学习到的用户兴趣嵌入的相关性来预测它们的点击得分,以便进行模型训练。更具体地说,在新闻编码器中,我们使用注意力的多视图学习框架,将新闻标题、主题类别和实体作为新闻的不同视图,如图 4 所示。与节点表示学习类似,我们使用Transformer和注意力网络来学习标题表示 nt,并通过在主题嵌入层之后应用额外的密集层来学习隐藏的主题表示 nc。

​ 此外,我们在实体嵌入层后应用一个注意网络,通过选择重要的实体来学习基于实体的新闻表示。最终统一的候选新闻嵌入nc是通过一个注意力网络从三种新闻表示中聚合出来的。用户u点击候选新闻nc的点击概率得分y由它们嵌入之间的内积计算:\(y=\mathbf{u}^\top\mathbf{n}^c\)。这些分数被用于个性化的新闻排名和显示。对于每个被点击的新闻,我们随机选择P个以相同印象显示的非被点击的新闻来构建训练样本。模型训练的损失函数公式如下:

\(\mathcal{L}=-\frac1{|\mathcal{S}|}\sum_{i=1}^{|\mathcal{S}|}\log(\frac{\exp(y_i)}{\exp(y_i)+\sum_{j=1}^P\exp(y_{i,j})}),\)

总结

​ 这里总结一下,感觉这篇文章读着比较难懂。

​ 首先是个性化的图构建,也就是将用户交互过的新闻与主题以及实体之间建立连接。

​ 然后是异构图的池化,这里是最复杂,但也是本文的核心部分。首先是将总的邻接矩阵分为多个不同的子矩阵,这里按3个来计算,然后特征矩阵也分为三个。之后按照节点的种类来学习每种节点的池化矩阵,注意,在学习的时候用的是全部的邻接矩阵以及特征矩阵,只是参数不一样。这样就获取了三个池化矩阵。然后又说获取的池化矩阵会聚合所有类型的节点,所以要对池化矩阵进行压缩。压缩后再把其余的节点类型的嵌入设置为0,得到一个集合矩阵。

​ 之后使用邻接矩阵的聚合器和特征聚合器来获取新的邻接矩阵和节点特征。最后获得了一个小型密集的连接图,采用一些方式将其总结为用户兴趣的嵌入进行输出。

​ 然后就是新闻表示学习方面,这里还是传统的三种类型,新闻,主题和实体,进行注意力网络之后再进行聚合,得到新闻的表示。

​ 最后是模型训练方面,进行了负样本采样,用的还是类似于NCE的损失函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/47020.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

搭建yolov8模型训练的环境_制作docker镜像_模型训练

搭建yolov8模型训练的环境、制作docker镜像、模型训练搭建一个能进行yolov8模型训练的环境,包括CUDA 11.x、cuDNN 8.x、Ubuntu 18.04、Python 3.8、Cython、NumPy、PyTorch、YOLOv8、Ultralytics等依赖(其实ultralytics 包会包含 YOLOv8 及其相关工具)。在 Docker 容器中,不…

OCP4.2.2 主机标准化检查系统配置项修复clocksource 报错

适应版本: 社区版本OCP:4.2.2-20240315150922 背景描述OCP纳管主机后进行主机标准化时,set clock source一直没有成功 自动修复后还是有问题 分析过程查看官方ocp.4.2文档,有相关信息 执行相关命令再次查看文件并未写入tsc 重新检查 自动修复,报错一样,说明刚设置的没有…

一款.NET开源的i茅台自动预约小助手

前言 今天大姚给大家分享一款.NET开源、基于WPF实现的i茅台APP接口自动化每日自动预约(抢茅台)小助手:HyggeImaotai。项目介绍 该项目通过接口自动化模拟i茅台APP实现每日自动预约茅台酒的功能,软件会在指定时间开始对管理的用户进行批量预约。 项目功能用户管理 预约项目 …

Rocky Linux捣鼓记录(五):安装flatpak软件仓库,并更换国内源

1、安装flatpak sudo dnf install flatpak 2、安装flatpak的官方源先安装官方仓库:注意此处命名为:flathub,这个名称是用来区分仓库的,后续修改国内源也要指定这个名称flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo 3、更改…

控制系统中的增益与控制极限环的关系

代码:s=tf(s); K=[2 4 6 8 10 12]; sysK=K(1); sysG=(s+1)^2/s^3; %sysZ=feedback(series(sysKxxl,sysGsc),1);subplot(231) rlocus(feedback(series(K(1),sysG),1)) grid on legend subplot(233) rlocus(feedback(series(K(2),sysG),1)) grid on legend subplot(232) rlocus(…

AI 大模型企业应用实战(07)-LangChain的Hello World项目

pip install --upgrade langchain==0.0.279 -i https://pypi.org/simple1 创建一个LLM自有算力平台+开源大模型(需要有庞大的GPU资源)企业自己训练数据 第三方大模型API(openai/百度文心/阿里通义千问...)数据无所谓让LLM给孩子起具有中国特色的名字。 在LangChain中最基本…

视野修炼-技术周刊第89期 | 2023 年度 JS 报告

① JavaScript 2023 年度调查报告 - Vite 赢麻了! ② Node.js setTimeout Promise ③ local-web-server ④ 尤大:Vue 10周年演讲 - Vue过去与未来 ⑤ loadership - 纯 CSS loading 动画生成 ⑥ Entity Code - 插件CV符号 ⑦ linaria - 0运行时的 CSS in JS库 ⑧ 镜头模糊效果…

小鲤AI志愿填报助手:一键探索最适合你的大学专业

背景 每年六月,随着高考的落幕,一个新的挑战随之而来——如何在全国范围内的激烈竞争中抢占一席之地。今年,超过1300万的学生参加了这场决定未来命运的考试,每一个人都希望能进入心仪的大学,学习理想的专业。然而,选择的过程并不简单,错综复杂的分数线、众多的院校和专业…