首页 > 其他分享 >UaG论文阅读笔记

UaG论文阅读笔记

时间:2024-06-23 22:32:55浏览次数:3  
标签:异构 新闻 论文 矩阵 用户 笔记 建模 节点 UaG

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的损失函数。

标签:异构,新闻,论文,矩阵,用户,笔记,建模,节点,UaG
From: https://www.cnblogs.com/anewpro-techshare/p/18264024

相关文章

  • 高校毕业设计管理系统的设计与实现(论文+源码)_kaic
     目  录第1章绪  论1.1课题研究目的和意义1.2国外发展状况1.3开发环境1.4本文研究的主要内容第2章技术概述2.1设计原理2.2系统设计模式选定2.3数据库介绍2.4Struts介绍2.5系统中所应用的脚本和Ajax技术第3章需求分析3.1项目概述3.1.......
  • springboot+vue+mybatis流浪宠物领养管理系统+PPT+论文+讲解+售后
    互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对宠物领养信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用宠物领养系统可以有效管理,使信息管理能够......
  • python学习笔记-09
    面向对象编程-中面向对象三大特征:封装、继承、多态。封装:把内容封装起来便于后面的使用。对于封装来讲,就是使用__init__方法将内容封装道对象中,然后通过对象直接或者self获取被封装的内容。继承:子继承父的属性和方法。多态:所谓多态就是定义时的类型和运行时的类型不一样......
  • 【python】python海底捞门店营业数据分析与可视化(数据集+源码+论文)【独一无二】
    ......
  • 各种“熵”的理解——最新版《数学之美》第六章读书笔记
    目录1.信息熵1.1 数学表达1.2理解NLP中的信息熵概念2.消除不确定性2.1条件熵2.1.1数学表达2.1.2 理解NLP中的条件熵概念2.2互信息2.2.1数学表达2.2.2 理解NLP中的互信息概念3.相对熵3.1数学表达3.2理解NLP中的相对熵概念4.引用 1.信息熵1.1......
  • 【python】python 大型商超会员数据研究分析可视化 (源码+数据集+论文)【独一无二】
    ......
  • 2024/06/23笔记随笔
    创建文本输入框:````plaintextTextFieldtextField=newTextField();textField.setPromptText("请输入文字");//提示信息textField.setMaxWidth(100);*设置按钮的点击事件处理器:````plaintext//创建按钮的点击事件处理器Buttonbutton=newButton("Clickme");......
  • [模式识别复习笔记] 第9章 神经网络及BP算法
    1.基本概念1.1神经元神经网络是很多的神经元模型按照一定的层次结构连接起来所构成的。1.2激活函数\(\text{ReLU}\)函数:修正线性单元ReLU,是一种人工神经网络中常用的激活函数。\[\text{ReLU}(x)=\max(0,x)\]\(\text{sgn}\)阶跃函数:它将输入值映射为......
  • 【Unity&&C#】委托与事件笔记
    委托委托的定义委托是个类,分为Delegate自定义委托类型,Func有返回值的委托类型,Action无返回值的委托类型Func和Action的底层原理便是用Delegate声明一个委托类型(有返回值和无返回值),并且通过泛型参数(最多十六个)来实现自定义参数类型和参数委托的两种使用情况:模板方法(一般是......
  • 力扣刷题笔记
    记录5-6月力扣刷题,持续刷题中~2024.0515.三数之和双指针或者哈希表,注意去重的操作要考虑仔细classSolution{public:vector<vector<int>>threeSum(vector<int>&nums){vector<vector<int>>result;sort(nums.begin(),nums.end());......