AGNN论文阅读笔记

Attention-Based Graph Neural Network for News Recommendation论文阅读笔记

Abstract

存在的问题:

​ 用户的历史点击序列信息对用户兴趣的影响也不尽相同,简单地将它们结合起来并不能反映这种差异。

提出方法:

​ 我们提出了一种基于注意力的图神经网络新闻推荐模型。在我们的模型中,多通道卷积神经网络用于生成新闻表征,循环神经网络用于提取用户点击的新闻序列信息。用户、新闻和主题被建模为异构图中的三种节点,它们之间的关系被建模为边。图神经网络可有效提取异构图中的结构信息,帮助解决数据稀疏的问题。考虑到不同信息对推荐结果的不同影响,我们利用注意力机制对这些信息进行了独特的融合。

Introduction

​ 再次强调存在的问题:

​ 首先,如果没有大量的用户交互数据,这些方法很难引起用户的兴趣。其次,用户在线阅读的新闻通常与特定主题相关。 因此,将话题信息与用户历史点击信息整合起来作为用户兴趣表征是非常必要的。 然而,这些模型通常将用户的历史点击序列信息作为用户兴趣表达的模型,而忽略了用户的新闻主题信息。因此,这些方法忽略了丰富的主题结构信息

​ 为了解决新闻推荐过程中的上述问题,本文提出了一种基于注意力的图神经网络新闻推荐模型,简称 AGNN。其主要贡献概述如下:

  • 基于注意力的多通道 CNN 用于生成相应的新闻向量。改进的 LSTM 用于提取用户点击新闻的历史记录。
  • 为了提取丰富的信息,我们绘制了用户-新闻-话题异构图。同时,我们还在图中融合了用户的邻居信息,即新闻和话题,以缓解数据稀疏问题。然后,通过关注机制将这些信息与用户点击的新闻进行整合。

Method

​ 在本节中,我们将首先介绍所提出的 AGNN 框架,然后解释其细节,包括:新闻表征学习、序列特征学习和用户兴趣学习: 新闻表征学习、序列特征学习和用户兴趣学习。

AGNN的概览

​ 图 1 显示了 AGNN 的框架。首先,NPL 结合实体和相应的实体类型作为新闻内容的表示。它将结果和新闻标题分别传递给基于注意力的多通道卷积神经网络,以获得相应的嵌入表示。其次,CLSTM 提取用户序列信息,HANN 从用户-新闻-主题图中学习结构特征。最后,这些信息将与自适应权重融合。

pkgvbMn.png

NPL:新闻表示学习

​ 这里我们就是获取新闻标题的嵌入T,实体的嵌入E,和实体类型的嵌入C。然后因为新闻的实体和实体类型之间存在一些对应关系,我们结合这两个嵌入数据,结合后为J,来表示新闻内容信息,

​ 然后,我们通过多通道 CNN 提取特征。 每个 CNN 都包括一个卷积层和一个池化层。 在卷积层中,新闻标题和新闻内容分别通过两个具有不同权重参数的基于注意力的异构 CNN,并获取相应的特征图。

CLSTM:序列特征学习

​ 作为对 RNN 的改进,LSTM 可以有效提取序列信息。标准的 LSTM 包含三个门,分别对应于遗忘、选择记忆和输出三个阶段。然而,LSTM 在处理不连续输入流时存在明显缺陷。

​ 在序列处理中,如果没有复位,状态可能会无限增长,最终导致网络崩溃。 一种新颖的方法是使用自适应 "遗忘门 "函数,使 LSTM 单元能在适当的时候复位。在 中,他们在 LSTM 的基础上增加了单元状态,这在一定程度上提高了序列特征提取的性能。在本文中,我们使用这种改进的 LSTM 进行序列特征提取。

HANN:用户兴趣建模

​ 受深度学习领域分类方法的影响,我们构建了一个异构主题 GNN 来学习用户、新闻和主题之间的表征。异构图的节点集包括用户节点集,新闻节点集和主题节点集。我们建立边缘集的方法如下:每次用户 i 点击新闻 n,我们就在该用户和新闻之间建立一条边缘。最后,我们通过 LDA 模型建立新闻 n 和话题 t 之间的边集。

​ 首先,我们聚合邻居节点,并将不同类型的邻居节点映射到同一空间。然后,我们通过 GNN 更新中心节点。生成节点嵌入的具体步骤如下:

\(E_u=\mathrm{Relu}(\mathbf{W}*(\mathrm{Mean}(\mathbf{M}\boldsymbol{E}_u))+\boldsymbol{b})\)

​ 我们可以用非常相似的方式获得主题嵌入\(E_t\)。然后,我们对这两个嵌入向量进行了归一化和组合:

\(E_N=\frac1{|V_u|}\Sigma_{u\in V_u}W_uE_u+\frac1{|V_t|}\Sigma_{t\in V_t}W_tE_t\)

​ 然后,通过邻居节点嵌入对候选新闻嵌入进行更新:

\(E=\mathrm{Relu}(W_rE_N+b_r)\)

​ 同时,考虑到用户的点击序列对用户兴趣的反映不同,我们利用注意力机制将这一信息添加到用户的兴趣表征中。给定用户、交互历史序列和候选新闻,我们使用以下关注机制来区分用户历史点击的影响。

\[\begin{aligned} &\boldsymbol{h}_j^i=\mathrm{tanh}(\boldsymbol{W}_\delta\boldsymbol{c}_j^i+\boldsymbol{b}_\delta) \\ &\boldsymbol{h}_Q^i=\tanh(\boldsymbol{W}_\varepsilon\boldsymbol{c}_Q^i+\boldsymbol{b}_\varepsilon) \\ &\mathcal{H}_{j,Q}=\frac{exp(v^T(h_j^i+h_Q^i))}{\sum_jexp(v^T(h_j^i+h_Q^i))} \\ &u^i=\sum_j\mathcal{H}_{j,Q}c_j^i \end{aligned} \]

\(u_i\)表示用户当前的兴趣向量,\(\mathcal{H}_{j,Q}\)反映了用户点击序列对用户当前兴趣的影响

​ 不同方面的信息对用户兴趣有不同的影响。我们使用自我关注机制来融合从不同层面提取的信息,并得到最终的嵌入信息 F。

预测

​ 这里不是传统的预测,而是使用了一个神经网络来进行预测,F表示用户的兴趣,E表示候选的新闻嵌入:

\(\check{\mathbf{y}}=\mathrm{DNet}(\boldsymbol{F};\check{\boldsymbol{E}})\)

训练

​ 训练时用的是比较常见的做法,这里就不展开讲了

\(L=-\{\sum_{X\in\triangle^+}ylog\breve{y}+\sum_{X\in\triangle^-}(1-y)\mathrm{log}(1-\breve{y})\}\)

总结

​ 最后来整理一下,整体看来这篇文章还是描述的比较清晰的,首先是使用MCNN进行相关新闻表示的学习,学习之后经过一层注意力层。然后是采用CLSTM对用户的历史新闻交互序列进行新闻特征的学习,对候选新闻,使用HANN和用户交互的历史新闻作为输入进行学习,然后再将获取到的候选新闻的表示与获得的用户交互的历史新闻的表示一起再经过一层注意力层,这样就获取到了最终的用户表示。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工程安全监测仪器:振弦采集仪的应用与发展

工程安全监测仪器:振弦采集仪的应用与发展 河北稳控科技振弦采集仪是一种常见的工程安全监测仪器,广泛应用于建筑、桥梁、隧道、地铁等工程项目中。它通过监测振弦的振动变化,可以及时发现结构变形或损坏情况,为工程的安全运行提供重要数据支持。在工程安全监测领域,振弦采…

农业数据智能化:免费可视化工具助力精准农业

免费的可视化工具的应用,不仅极大地提升了农作物监测的效率和准确性,更为智慧农业的发展注入了强劲动力。从传统的“靠天吃饭”到如今的“智慧农业”,数据成为了驱动这一转变的关键力量。随着物联网、大数据、云计算等技术的深入应用,农业生产过程中的各类数据如雨后春笋般…

深度学习--模型优化--模型的剪枝--92

目录1. 模型压缩2. 神经网络剪枝4. 非结构化剪枝4. Pruning neurons结构化剪枝 1. 模型压缩 目的:使得模型体积更小,模型推理速度更快评估指标: Compression Ratio 压缩率 = 总参数量 / 非0参数量 原始网络参数量 / 优化后的网络模型中非0参数量 脱水前的重量 / 脱水后的重量…

thinkphp6 使用FFMpeg获取视频信息

1.本地安装 FFMpeg,官网下载地址:https://ffmpeg.org/download.html#build-windows 解压后,把文件夹放到自定义目录,添加系统变量 2.安装依赖,composer.json 添加"php-ffmpeg/php-ffmpeg": "^0.19.0",3.封装class类<?php namespace app\api\cont…

JDK导入Lets Encrypt根证书

项目在调用https接口时报错:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 原因可能是更新换新证书后,HTTPS 域名的公钥证书不在 JDK/JRE 的证书库中,被Java认为是…

element plus 日历组件默认中文样式,配置日期周一为周起始日

element ui 或者 plus 其实都是西方的展示方式,日立组件的周日视为每一周的开始日期,我们则是周日为每周的最后一天。那咱们要改成周一为每周的开始日期,如下图:elementui 是可以直接属性配置的,element plus不得行,但是配置下面代码到main.ts就可以了~ import ElementPl…

Codeforces Global Round 26 A~C2

惹啊啊啊啊,这场做得我发昏,最近总感觉不在状态,但还是再在冲击1600-1800的题目. A. Strange Splitting---------------------------------题解--------------------------------------------------- 给你一个数组,让你自己构造一个RB字符串让R位置的数组中的数字的最大值-…

搭建工程之一 eclipse 中基于 maven 的 webapp工程能基于tomcat运行

一、背景作为开发人员,开发的web(运行在tomcat 容器中)希望能够在本地开发工具(eclipse)中运行调试,加快开发测试进度。 二、操作步骤 1、创建maven工程 在 eclipse 上右键,选择"New"---"Other" --- "Maven" ---- " Maven Project &…

【PythonGIS】基于Geopandas和Shapely计算矢量面最短路径

在GIS进行空间分析时经常会需要计算最短路径,我也是最近在计算DPC的时候有这方面的需求,刚开始直接是用面的中心点求得距离,但其对不规则或空洞面很不友好。所以今天跟大家分享一下基于Geopandas和Shapely计算矢量面最短路径,这里的最短即点/边的最短!​ 在GIS进行…

ls 设置颜色

1 查看别名对应的真实命令 2 设置颜色 格式: alias 别名=命令 示例 3 取消颜色 示例

主键Id自增,如何获取Id(Dapper)

这里用的是Dapper,以前用EF的时候好像有用到过db.savechanges(). 但是项目中没有这个,所以用以下的方法去获取id 背景:涉及到多表入库,需要获取主表的Id,所以用到了这个(timeFields 可以忽略)/// <summary>/// 单个添加/// </summary>/// <typeparam name…

JDK、Tomcat、Maven配置

一、JDK安装及配置 1.下载地址:https://www.oracle.com/java/technologies/downloads/2.下载后直接本地安装,选择路径默认即可,类似如下路径:C:/Program Files/Java/jdk_1.8.0_301 3. 配置环境变量路径:程序->计算机->右键->属性->高级系统设置->高级->…

VSCode + Qt + QMake 开发编译环境搭建

鉴于Qt官方IDE太过难用,VSCode+各种插件功能强大,遂采用VSCode来写Qt项目; 本博客在 Windows 平台进行指导操作,Mac、Linux 平台配置方式类似,学习其本质就可。前置准备VSCode,最新版本即可 本地 Qt 环境,版本随意,本文主要针对较老版本使用Qmake构建系统的项目环境变…

eclipse设置的Alt+/出现卡顿问题解决。

eclipse的设置中快捷键【Alt+/】只留下这个。可能会有Alt+Ctrl+/什么的,都改成别的。否则会出现冲突卡顿。

面试官:JVM调优,主要针对是哪一个区域?JVM内存结构是怎样的?

作为一个Java程序员,在日常的开发中,不必像C/C++程序员那样,为每一个内存的分配而操心,JVM会替我们进行自动的内存分配和回收,方便我们开发。但是一旦发生内存泄漏或者内存溢出,如果对Java内存结构不清楚,那将会是一件非常麻烦的事情!本文笔者将为大家详解Java内存结构…

Jenv和JDK安装与配置指南

介绍如何在Windows系统上安装和配置Jenv和JDK。步骤包括从GitHub下载并解压Jenv,配置环境变量;从Oracle官网下载安装JDK,设置系统环境变量。使用Jenv命令管理JDK版本,包括添加、列出、切换、设置全局或局部版本及删除版本。提供Jenv常用命令和帮助信息供参考。一、Jenv安装…