Angel图神经网络算法在推荐场景下的实践

作者:神秘网友 发布时间:2021-01-12 20:21:13

Angel图神经网络算法在推荐场景下的实践

Angel图神经网络算法在推荐场景下的实践

分享嘉宾:孙瑞鸿?腾讯大数据

编辑整理:赵文娇

出品平台:DataFunTalk、AI启蒙者

导读:随着数据多样性的发展,图计算已经成为业界的一个重要的研究方向,其中图神经网络广泛应用于图的表征学习,与传统的图学习相比,既能学习图网络的拓扑结构,也能聚合邻居特征,从而能够有效的学习到图网络中的信息,为后续的推荐工作起到关键作用。

01

图神经网络简介

1. 万物互联

Angel图神经网络算法在推荐场景下的实践

以社交网络的构建方式为例,之前主要以“关注关系”为基础进行构建,现在则会多方位的考虑到“点赞、分享、评论”等数据。图算法的实践应用在更加广泛的应用到腾讯的各个场景中都得到了广泛地应用。

2.?应用场景

Angel图神经网络算法在推荐场景下的实践
  • 基于关键人物的推荐。通过一些图结构结合一些算法,比如典型的pagerank算法,我们可以找到关键人物,通过对关键人物采取特定性策略(比如定向推广),提升推荐效果。
  • 基于圈子的推荐。基于地理、人物任务关系、兴趣爱好组成的圈子,进行产品和广告的推荐。

3.?推荐中的图挖掘算法

Angel图神经网络算法在推荐场景下的实践

图挖掘算法,包括传统的图挖掘算法,比如pagerank, closeness等;找到关键节点和关键群体的社区发现类算法,也包括,图表示学习算法deepwalk, node2vec等等,今天我们主要介绍一下图神经网络的使用。

图神经网络考虑的比较多,考虑节点的特征,边的特征,通过聚合邻居的特征同时结合自己的特征,进行的学习。图神经网络的效果也是很明显的,在不同场景下的效果如下。

02

Angel图神经网络

1. 什么是图神经网络

图神经网络就是在图上应用神经网络框架。图神经网络和神经网络的异同,例如:传统的神经网络框架处理的数据是基于标准的欧式空间,如图片数据,文本数据等;对于图神经网络则需要处理图网络拓扑数据,他是一个非欧式空间数据如下,左图是在图像分类中常见的猫咪图片,是标准的欧式空间,右边的图网络,是非欧式空间,主要是邻居节点的数目和顺序会有所不同,并且网络图数据量很大难以缩放。由于数据结构上存在着这差异,图神经网络不能沿用神经网络的处理方式,而是图神经网络通过聚合邻居节点特征来构建特征。

2.?Angel图神经网络框架

Angel图神经网络算法在推荐场景下的实践

这里不做特别详细的阐述,官方文档可以进行详细的学习。这里强调一下,在聚合邻居特征的时候有一阶邻居和二阶邻居特征,一阶邻居特征就是放在spark executor上面,采样速度很快。然后会把邻接表放到ps上,方便进行二阶采样服务器。

Angel现有的图神经网络算法有很多graphsage, 分成有监督、无监督、同构、异构等。

下面以graphsage为例介绍一下我们关注的点。

GraphSage原理:

GraphSage有两个点关键点,一个是采样,一个是聚合,如下图箭头标示。

Angel图神经网络算法在推荐场景下的实践
  • 采样。选择一个点,先对它的一阶邻居随机采样,然后根据采样得到的一阶邻居进而来采样二阶邻居,以此类推,目前,我们实验发现,二阶邻居采样就可以得到不错的效果。在获得邻居之后,下面我们开始考虑如何聚合邻居特征。
  • 聚合。首先将二阶邻居特征进行聚合,然后将聚合后的二阶邻居特征和一阶邻居特征进行融合,最后然后将融合后的特征与再和初始节点的特征进行融合。这样就获得了一个融合特征的embedding。

03

推荐场景下的实践

1.?GNN推荐场景概览

首先是构建网络,比如说例如:通过社交网络,移动支付,通信网络,电商购物等场景构建出网络结构,然后放入gnn中获取embedding,之后最后就可以应用到更多下游推荐,比如作为模型特征,推荐召回,推荐冷启动,用户画像等等。下面我们基于场景进行具体介绍:

场景一:腾讯看点视频推荐

通过用户的历史观看记录构建网络。具体说来,每个用户都有自己的观看记录,然后从视频角度,我们可以得到如下图的网络结构图,这个过程是有信息折损的,就是用户观看的历史记录不完整,我们想办法解决这个问题。

Angel图神经网络算法在推荐场景下的实践

第一步是网络构建,如上所述,另外需要加上的特征包括用户特征、视频特征、观看记录特征,我们不希望丢失序列特征,所以我们会使用一些序列算法,比如transformerTransformer处理序列的历史数据,可以得到用户的embedding,然后将视频的embedding也放入graphGraph-sageSAGE里面进行学习,这样最后学出来的东西既包含用户的历史观看记录,也包括网络结构的信息。

最后使用的是半监督GraphSAGEgraphsage,作用在千万级点上,十亿级边上。离线式表效果上,对比直接的transformer,top50命中率提升3%左右,在线指标上,短视频时长提升了0.98%,总时长提升0.34%。

场景二:微信内容推荐

这个场景是为微信用户推荐公众号,首先构建网络,如果直接利用关注关系构建网络,是有问题的。如下图,我们发现出现了“人民日报”这样超级节点,太多用户对其他进行了关注,解决办法是图转换,将图从用户和公众号的关系图,变成公众号和公众号的关系图。

Angel图神经网络算法在推荐场景下的实践

这种改变也会同样会带来其他问题,就是比如:超级大号会和其他很多点产生联系,也是从而产生有问题的,解决这个问题就是需要刻意做一些边筛选。考虑到关注只是一个行为,我们也可以将观看,点击等行为作为边的触发行为加进来。

特征工程包括:公众号的特征,用户特征,和对这些特征的去噪。

算法选择:我们可以选择GraphSAGEgraphsage或者DGI,但最终选择了DGI。

关于一阶和二阶的选择,最终确定一阶效果更好,选用二阶容易构成embedding趋同。

流程如下:

Angel图神经网络算法在推荐场景下的实践

使用dgi抽取特征后,利用itemCF,选取一些种子,从全量公众号里面圈定一个召回,然后进行排序等一些列行为。

最后使用百万级的点,亿级的边。曝光率提升2.38%,点击率提升1.61%,关注率提升+0.5%。

04

经验总结

网络构建和特征工程对任务目标是有关键影响的,主要需要注意降噪。

算法不是普适的,需要针对场景进行调整,多模型融合的效果一般来说更好,我们用过的有:

gnn+transformer,Gnn+xgboost,gnn+kmeans,gnn+itemcf等。

今天的分享就到这里,谢谢大家。

嘉宾介绍:

Angel图神经网络算法在推荐场景下的实践

孙瑞鸿

腾讯大数据 |?高级算法工程师

孙瑞鸿,腾讯大数据高级算法工程师,目前专注于Angel图算法研发与腾讯内部场景的落地。

Angel图神经网络算法在推荐场景下的实践

扫码关注 | 即刻了解腾讯大数据技术动态

Angel图神经网络算法在推荐场景下的实践 相关文章

  1. 贪心算法:我要监控二叉树!

    一路跟着「代码随想录」刷题的录友们,二叉树是不是都快忘了,哈哈,反正我讲过的内容我就默认大家都会了,来来来,本题是二叉树上的贪心。需要重温二叉树的录友,传送门: leetcode刷题最强指南(版本1.0) 通知: 一些录友表示经常看不到每天的文章,现在

  2. LeetCode中级算法-数学(2)

    Pow(x, n) [题目] 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 [输入1] 2.00000, 10 [返回1] 1024.00000 [输入2] 2.10000, 3 [返回2] 9.26100 [输入3] 2.00000, -2 [返回3] 0.25000 [解法] 无 [代码实现] package mainimport fmtfunc main() { input := floa

  3. Angel推荐算法在游戏推荐中的应用

    文章作者:王培军?腾讯 高级工程师 整理编辑:李沛欣 出品平台:DataFunTalk、AI启蒙者 导读: Angel是腾讯自研的分布式高性能的机器学习平台,支持机器学习、深度学习、图计算以及联邦学习等场景。Angel的深度学习平台已应用在腾讯的很多个场景中。本次分享

  4. 计算机算法的五个特性是什么

    计算机算法的五个特性是:1、有穷性,算法必须能在执行有限个步骤之后终止;2、确切性,算法的每一步骤必须有确切的定义;3、输入项,一个算法有0个或多个输入;4、输出项,一个算法有一个或多个输出;5、可行性,每个计算步骤都可以在有限时间内完成。 算法

  5. 一个算法示例:PHP实现开心消消乐

    本文主要介绍了关于PHP如何实现我们大家都知道的开心消消乐的算法。 推荐:《PHP视频教程》 一、需求描述: 1、在一个8*8的矩阵方格中随机出现5种颜色的色块。 2、当有三个或以上色块在横向或纵向上相连,则消除这些色块。 3、色块消除后,上方色块往下平移,

  6. LRU算法的实现

    缘由:看到redis的缓存淘汰机制,便自己实现了一下 代码实现(双向链表+HashMap) package com.jarjune.jdalao.framework.algorithm;import java.util.*;/** * LRU * @author jarjune * @version 1.0.1 * @date 2020/11/19 */public class LRUCacheK, V { //

  7. 拉斯维加斯算法之n后问题

    1、拉斯维加斯(Las Vegas)算法 舍伍德算法优点在于计算时间复杂度对所有实例相对均匀,但与其相应的确定性算法相比,其平均时间复杂度没有改进。拉斯维加斯算法则不然,它能显著改进算法的有效性,甚至对某些迄今为止找不到有效算法的问题,也能得到满意的算

  8. 拉斯维加斯随机化算法求解整数因子分解

    问题描述 设n1是一个整数。关于整数n的因子分解问题是找出n的如下形式的 唯一分解式 :。其中,p1p2…pk是k个素数,m1,m2,…,mk是k个正整数。如果n是一个合数,则n必有一个非平凡因子x,1xn,使得x可以整除n。 给定一个合数n, 求n的一个非平凡因子的问题称

  9. java面试之归并排序的应用

    文章背景: 在复习算法及数据结构时,找到了面试笔试题目,下面我们来看看题目: (学习视频分享:java教学视频) 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1

  10. 【快速因数分解】Pollards Rho 算法

    Pollard-Rho 是一个很神奇的算法,用于在 $O(n^{\frac{1}4}) $的期望时间复杂度内计算合数 n 的某个非平凡因子(除了1和它本身以外能整除它的数)。事书上给出的复杂度是 \(O(\sqrt{p})\) , p 是 n 的某个最小因子,满足 p 与 n/p 互质。虽然是随机的,但 P

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词