深度学习:图神经网络——在推荐系统中的应用

news2024/11/19 7:25:50

PinSage是工业界应用图神经网络完成推荐任务的第一个成功案例,其从用户数据中构造图(graph)的方法和应对大规模图而采取的实现技巧都值得我们学习。PinSage被应用在图片推荐类Pinterest上。在Pinterest中,每个用户可以创建并命名图板(board),并将感兴趣的图片(pins)添加进图板。推荐系统的任务是为每个图片生成高质量的表示向量,并据此为每位用户推荐其可能感兴趣的图片。

1.PinSage的模型设计和实现细节

PinSage的输入数据是一张根据用户行为和各类特征生成的大规模网络(graph)。网络的构造主要包含两个步骤:第一步是网络结构方面,如何定义边;第二步是节点特征方面,各种复杂的特征如何表示。

  • 对于第一步,Pinterest的应用场景很自然地对应一个二部图,一部分节点是图片(pins),另一部分节点是用户定义的各种图板(boards),二部图的边对应着图片被添加进图板。通过这种方式,全体用户的行为被一个巨大的二部图表示出来。
  • 对于第二步,每个图片对应多种特征,包括图片本身的视觉特征、与图片内容相关的文本标注信息、图片的流行度、图板的文本标注信息等。PinSage利用深度神经网络、预训练的词向量等技术将这些特征整合成节点表示向量。值得注意的是,上述的特征提取器是所有图片共享的,因此对于那些没有出现在训练过程中的“新图片”来说,我们也可以利用训练好的特征提取模型来计算该图片的向量表示。换句话说,PinSage不需要在这个巨大的二部图的全图上进行训练,只需要在一个规模较小的子图上进行训练即可。

PinSage基本遵循GraphSAGE的框架,但在以下三个地方有独特的设计:

  1. 每个节点领域的定义。由于网络规模巨大,如果按照GraphSAGE那样将每个节点的所有邻居节点特征进行融合,则计算量太大。PinSage通过随机游走的方式从每个节点的K度邻居中抽取出T个重要的节点,其中的“重要性”定义为从目标节点出发的随机游走访问到邻居节点的概率。
  2. aggregate操作的具体实现。具体来说,以加权平均的方式来实现aggregate操作。这里,每个邻居节点的“权重”即为其相对于目标节点的重要性。这一操作为模型效果带来了46%的提升。
  3. 训练过程中负样本的选取。在训练过程中,PinSage优化一个最大间隔函数(max-margin loss),尽可能地使正样本和负样本的差距大于预设的间距。出于效率的考虑,PinSage为每个正样本抽取500个负样本。不过500个负样本对于庞大的图片集(200万的规模)来说太过渺小,抽取出的负样本与正样本有很大概率完全不相关,这使得学习的过程过于简单,模型的训练效果不好。PinSage采用课程学习(Curriculum Learning)的方式进行训练,在每轮训练中选取难以分辨的负样本。这一操作为模型效果带来了12%的提升。

基于图的机器学习任务主要有:点分类、边预测和图分类3大类。记h_i\in \mathbb{R}^{1\times d}为节点 i 最终的融合特征,下面分别是这三类任务具体形式化的例子。

  • 点分类:p(v_i)=\mbox{Softmax}(h_i)
  • 边预测:p(A_{ij})=\sigma(h_ih_j^T)
  • 图分类:p(G)=\mbox{Softmax}(\sum_{i\in V}h_i)

除了PinSage模型,图神经网络目前在工业界的应用还不多。不过,学术界对图神经网络在多个领域中的应用已经做出了一些探索,表3-2列出了一些代表性的应用论文,供感兴趣的读者继续探索。

另一个与图神经网络技术十分相关的话题是网络表示学习(Network Representation Learning),也就是为图(graph)中每个节点生成一个固定维数的向量表示,使得节点在图上的临近关系可以通过向量距离表现出来。感兴趣的读者可以进一步思考网络表示学习技术和图神经网络的关系。

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

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

相关文章

工程管理系统功能设计与实践:实现高效、透明的工程管理

在现代化的工程项目管理中,一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统,结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…

深入了解网络流量清洗--使用免费的雷池社区版进行防护

​ 随着网络攻击日益复杂,企业面临的网络安全挑战也在不断增加。在这个背景下,网络流量清洗成为了确保企业网络安全的关键技术。本文将探讨雷池社区版如何通过网络流量清洗技术,帮助企业有效应对网络威胁。 ![] 网络流量清洗的重要性&#x…

Wpf 使用 Prism 实战开发Day08

备忘录页面设计 1.效果图 一.布局设计跟第7章节一样&#xff0c;只是内容方面发生变化&#xff0c;其他样式都一样。直接把代码粘出来了 MemoView.xaml 页面代码 <UserControl x:Class"MyToDo.Views.MemoView"xmlns"http://schemas.microsoft.com/winfx/2…

jQuery页面整屏滚动

效果展示 jQuery页面整屏滚动 Html代码块 <div id"fullpage" class"fullpage-index"><!-- index01 --><div class"indexitem index01 section" id"#page1"><img src"img/img01.jpg"/></div>…

设计模式——工厂方法模式(Factory Method Pattern)

简单工厂模式 概述 说工厂方法模式之前&#xff0c;先说下简单工厂模式&#xff0c;简单工厂模式并不属于GoF 23个经典设计模式&#xff0c;但通常将它作为学习其他工厂模式的基础&#xff0c;它的设计思想很简单&#xff0c;其基本流程如下&#xff1a;首先将需要创建的各种不…

NODE笔记 0

一些简单的node学习笔记记录&#xff0c;是Vue等前端框架的基础 入门学习备忘录 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 node.js 内置网络服务器&#xff0c;是前端框架学习的基础&#xff1a; 概念&#xff1a;…

大模型机器人发展史:从VoxPoser、RT2到斯坦福Mobile ALOHA、Google机器人

前言 23年7月&#xff0c;我在朋友圈评估Google的RT2说道&#xff1a; “大模型正在革新一切领域啊&#xff0c;超帅&#xff0c;通过大模型不仅能理解“人话”&#xff0c;还能对“人话”进行推理&#xff0c;并转变为机器人能理解的指令&#xff0c;从而分阶段完成任务。回…

Web前端-jQuery

文章目录 jQuery1.1 jQuery 介绍1.1.1 JavaScript 库1.1.2 jQuery的概念1.1.3 jQuery的优点 1.2 jQuery 的基本使用1.2.1 jQuery 的下载1.2.2 jQuery快速入门1.2.3 jQuery入口函数1.2.4 jQuery中的顶级对象$1.2.5 jQuery 对象和 DOM 对象1.2.6. jQuery 对象和 DOM 对象转换 1.3…

二叉树OJ练习(二)

1. 二叉树的最近公共祖先 题目描述&#xff1a; ​ 题解: 1.p或者q其中一个等于root&#xff0c;那么root就是最进公共祖先 2.p和q分布在root的左右两侧&#xff0c;那么root就是最进公共祖先 3.p和q在root的同一侧&#xff0c;就是要遍历这棵树&#xff0c;遇到p或者q返回 ​…

数据结构—图(下)

文章目录 12.图(下)(4).生成树和最小生成树#1.什么是生成树和最小生成树&#xff1f;i.生成树ii.最小生成树 #2.Prim算法i.算法思想ii.看看例子iii.代码实现 #3.Kruskal算法i.算法思想ii.看看例子iii.代码实现 #4.次小生成树 (5).最短路径问题#1.加权有向图的最短路径问题#2.单…

(Matlab)基于CNN-Bi_LSTM的多维时序回归预测(卷积神经网络-双向长短期记忆网络)

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码展示&#xff1a; 四、完整代码数据下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平…

鹦鹉目标检测数据集VOC格式600张

鹦鹉&#xff0c;一种色彩鲜艳、聪明伶俐的鸟类&#xff0c;以其模仿人类语言的能力和独特的喙形而广受喜爱。 鹦鹉属于鸟纲、鹦鹉科&#xff0c;是热带和亚热带地区的常见鸟类。它们的喙弯曲呈钩状&#xff0c;非常适合啄食种子、果实和坚果等食物。鹦鹉的羽毛通常非常鲜艳&a…

精进单元测试技能——Pytest断言的艺术

本篇文章主要是阐述Pytest在断言方面的应用。让大家能够了解和掌握Pytest针对断言设计了多种功能以适应在不同测试场景上使用。 了解断言的基础 在Pytest中&#xff0c;断言是通过 assert 语句来实现的。简单的断言通常用于验证预期值和实际值是否相等&#xff0c;例如&#xf…

腾讯云域名外部入库流程

注册商是腾讯云&#xff0c;且在腾讯云管理的&#xff0c;请使用此教程外部入库。 如您的域名注册商是腾讯云但在聚名管理&#xff0c;请参考教程&#xff1a;https://www.west.cn/faq/list.asp?unid2539 在外部入库操作之前&#xff0c;请先登录腾讯云获取账号ID信息。…

人类认知中的等价机理与机器智能中等价机理

人类认知中的等价机理是指人们在认知过程中&#xff0c;通过将不同的概念、事物或情境进行等价替代&#xff0c;从而实现思维的连贯和理解的补充。例如&#xff0c;当人们看到一个陌生的动物时&#xff0c;可以将它与已知的动物进行等价对应&#xff0c;从而理解其特征和行为。…

社交心不死:支付宝内测兴趣社交

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 支付宝又双叒做社交了&#xff0c;这次的“兴趣社区”能成吗&#xff1f; 支付宝做社交心不死&#xff0c;近期支付宝又开始内测名为“兴趣社区”的功能。主打找同频玩伴&#xff0c;徒步、骑行、钓鱼&#xff0c…

将本地文件传到远程仓库

工具&#xff1a;gitee、visual studio 2022 语言&#xff1a;C语言 1、在创建项目的时候&#xff0c;将项目存储于自己创建的仓库的本地存储位置&#xff0c;并编写代码 2、先选择仓库&#xff0c;然后单击鼠标右键——>TortoiseGit——>Add..&#xff08;将代码添加到…

Spring 见解 6 Spring事务控制

Spring事务控制 事务介绍 什么是事务&#xff1f; 当你需要一次执行多条SQL语句时&#xff0c;可以使用事务。通俗一点说&#xff0c;如果这几条SQL语句全部执行成功&#xff0c;则才对数据库进行一次更新&#xff0c;如果有一条SQL语句执行失败&#xff0c;则这几条SQL语句…

Android Studio安卓读写NFC Ntag标签源码

本示例使用的发卡器&#xff1a; https://item.taobao.com/item.htm?spma1z10.5-c-s.w4002-21818769070.11.3513789erHXVGx&id615391857885 <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout x…

5.2 Android BCC环境搭建(adeb版,下)更新中

五&#xff0c;运行adeb shell adeb shell 六&#xff0c;其他指令 6.1 从开发机移除adeb adeb remove 6.2 更新开发机adeb deb git-pull 6.3 使用ssh替代adeb进行与android设备的通信 adeb --ssh <uri> --sshpass <pass> <cmd> 七&#xff0c;BCC配置…