写点什么

华为云新一代黑科技核心算法揭秘

  • 2020-04-01
  • 本文字数:3697 字

    阅读完需:约 12 分钟

华为云新一代黑科技核心算法揭秘

推荐技术在社交 APP、电商、音乐视频图片平台、咨讯推送平台等场景中大展身手,带给用户便利的同时,提高了用户平台活跃度,增加了“物品”销量。但是,随着互联网技术的飞速发展,所能够获取的数据量和数据类型越来越多,如何利用这些错综复杂的数据,挖掘背后潜在关系,进行快速有效的推荐成为各公司必须思考的问题。



常见推荐应用场景


目前的推荐算法层出不穷,数据利用效率、推荐的效果、速度也不尽相同。例如,在电影推荐场景,传统基于协同过滤(CF)的方法仅考虑到左半边人对电影的 feedback 数据,而传统基于内容(CB)的方法仅考虑右半边电影的特性数据,这样单纯的依赖部分数据进行推荐难以满足用户更深层次的推荐需求,同时存在稀疏性等问题;基于深度学习的推荐是近期比较热火的方向,推荐效果较传统方法也有很大的提高,但却以牺牲时间性能为代价,推荐的结果解释性也较低。



电影推荐

1. Pixie 实时推荐算法介绍:

Pixie 实时推荐过程如图所示,主要基于对图上多起点的 Pixie Random Walk:其根据各节点的重要性给各请求节点分配不同的游走步数, 同时对各请求节点进行 Pixie Random Walk,综合各起点 Pixie Random Walk 下候选节点的得分结果,进行推荐。



Pixie 实时推荐过程示意图


其中,Pixie Random Walk 过程:从请求节点(如下图中的节点 V4)沿着边,根据一定的倾向性不断地“游走“到相邻的节点,达到一定步数(步长)时返回起点重新游走。


游走步长:CurrSteps = SampleWalkLength(α)


多次这样的游走后, 当高频率经过的点的个数超过一定数量时,或者达到分配的步数上限时结束。


Pixie Random Walk 游走过程中,随着被经过的次数的增加,候选节点被推荐的得分也相应增加;当所有的 Pixie Random Walk 结束时,Pixie 将给出各候选节点的综合得分,得分越高被推荐的程度越大。



Pixie RandomWalk 过程示意图

2. Pixie 实时推荐特点:

(1)考虑多重关系共同作用:


Pixie 推荐基于多重关系的评价,不仅仅是基于用户与商品之间的历史交互关系,同时考虑到用户之间、商品之间等多层隐含关系。推荐结果是在多重关系下共同作用的结果,推荐某种程度上相较于单纯的利用用户历史交互数据或商品属性进行推荐更为精准。同时,可以避免“信息茧房”的问题。


例如:某电影平台用户 Frank 打开电影平台,Pixe 实时推荐算法向其推荐电影:Artificial Intelligence> Lincoln>Ready Player One


这里,Pixie 首推 Artificial Intelligence,是多个重关系多个原因的叠加:


①从用户与电影交互角度,与 Frank 有相似爱好的 Sarah 观看了 Artificial Intelligence: The Sixth Sense ->Sarah-> Artificial Intelligence,


②社交关系上,Frank 的好友 Mike 也观看了此电影:Frank->Mike-> Artificial Intelligence


Frank 的好友 Sarah 也观看了此电影:Frank->Sarah-> Artificial Intelligence


③电影特性关系上,电影 Artificial Intelligence 与 The Sixth Sense 具有相同的主演: The Sixth Sense-> Haley Joel Osment ->Artificial Intelligence;


相同的主题:The Sixth Sense ->Drama->Artificial Intelligence


④更多深层潜在关系:Frank->Mike->Alice->Artificial Intelligence。


以上各种关系在 Pixie 实时推荐中进行了叠加,最终向 Frank 首推 Artificial Intelligence。



(2)支持多请求节点(qurey vertices)下综合推荐,满足各种复合型、时变、多样性推荐场景需求


例如:电影平台上的用户,小雨近期看了 2 部电影 Ready Player One、;小易刚浏览了好友 Gina 主页,添加巨星 Haley Joel Osment 的动态关注;小桐刚刚进行了关键词搜索 Drama,Sci-Fi;等等,对于用户一些列实时的多样性组合操作行为,Pixie 实时推荐算法均可以综合各类操作,考虑各请求类型起点出发的多重关系,快速给出最相关的推荐排序。



不仅如此, Pixie 不同于以往那种单一性的推荐方法, 其推荐的范围更加多样,可以是不同类的商品,也可以是人,避免推荐结果局限于单一类型。同样以电影推荐场景为例,针对同一组数据,不需要重新建模,只需要改变输入参数,即可推荐电影,兴趣好友(Sarah>Alice>Gina), 甚至系列主演(Haley Joel Osment>Tye Sheridan)等等。


(3)可扩展性更强,对大数据量依然能够满足实时性推荐需求


社交巨头 facebook 从 2007 年的 5000 万用户,已增长之 20 亿+;拥有图片版 Twitter 之称的 Pinterest 目前坐拥 30 亿+的图片,2 亿+用户月活。在如此庞大的数据量下,传统方法(例如 CF)计算量随着数据量呈线性(或者不止线性)增长,很难满足实时性推荐需求,Pixie 算法与之不同,其计算量几乎独立于数据量。Pinterest 曾用其业务数据测试对 Pixie 实时推荐算法进行测试发现,在 10 亿+数据时,Pixie 实时推荐算法依然能够秒极内产生推荐结果。大数据量下,依然能够达到较好的实时推荐效果。相较于过去传统算法,通过 Pixie 算法新增的推荐量增长了 50%以上。


  1. 基于图引擎(GES)平台的 Pixie 实时推荐使用:

  2. 首先,在 GES 创建图,这里以图 2 所示的电影推荐场景为例

  3. 首先,在元数据管理栏创建 schema 如下:



图管理栏创建图,根据提示上传点边数据文件:


其中,点数据文件 vertex.csv 内容:


Frank,user,弗兰克M,18-24,college/grad student,2906Mike,user,麦克,M,25-34,other or not specified,30606Sarah,user,莎拉,F,18-24,other or not specified,55105Alice,user,爱丽丝,F,25-34,academic/educator,79928Gina,user,吉娜,F,35-44,sales/marketing,60202Ready Player One,movie,头号玩家,2011Lincoln,movie,林肯,2012Artificial Intelligence,movie,人工智能,2001The Sixth Sense,movie,灵异第六感,1999Haley Joel Osment,actorTye Sheridan,actorSteven Spielberg,directorDrama,genreSci-Fi,genre边数据文件edge.csv内容:Frank,The Sixth Sense,like,2017/12/22 23:24Mike,Artificial Intelligence,like,2017/12/22 20:20Mike,Lincoln,like,2017/12/23 13:08Sarah,The Sixth Sense,like,2017/12/22 22:00Sarah,Artificial Intelligence,like,2017/12/23 21:05Alice,Artificial Intelligence,like,2017/12/22 10:24Alice,Ready Player One,like,2017/12/23 17:25Gina,Lincoln,like,2017/12/22 16:30Gina,Ready Player One,like,2017/12/22 21:37Frank,Mike,friendsFrank,Sarah,friendsMike,Sarah,friendsMike,Alice,friendsAlice,Gina,friendsThe Sixth Sense,Haley Joel Osment,hasActorThe Sixth Sense,Drama,hasGenreArtificial Intelligence,Drama,hasGenreArtificial Intelligence,Sci-Fi,hasGenreArtificial Intelligence,Haley Joel Osment,hasActorArtificial Intelligence,Steven Spielberg,hasDirectorLincoln,Steven Spielberg,hasDirectorLincoln,Sci-Fi,hasGenreReady Player One,Steven Spielberg,hasDirectorReady Player One,Sci-Fi,hasGenreReady Player One,Tye Sheridan,hasActor
复制代码


创建图成功后,访问所创建成功的图,左栏可以看到目前 GES 上的图分析算法,选择“实时推荐”(Real-time Recommendation)算法根据提示选择左侧栏的参数,这里 sources 栏用于输入请求节点(可以多个,标准的 csv 数据格式输入),label 参数过滤出期望得到的节点类型。


例如:


(1)“当 Frank 打开电影平台,向其推荐电影“时,可以输入 sources 为 Frank, label 为 movie,其他参数如下图(左),点击运行。


算法运行结束后,页面画布上将会出现含有推荐节点的子图(大小反映了推荐程度,点击右上角图例上的相关项目,可以快速锁定相应类型节点);Pixie 的结果将会出现在下方“查询结果”栏:



由图引擎的运算结果可以很清晰显示用户、电影、演员、导演等之间的关系,根据多因素共同作用结果,演算出最为精确的推荐结果,相较于过去的推荐结果,精度更高,解释能力更强。


(2)当某“游客”用户小易登陆平台,浏览了 Gina 主页以及搜索了演员 Haley Joel Osment 动态,这一行为具有很强的个人偏好属性说明他对 Gina 以及 Heley Joel Osment 有兴趣,这时,我们可以输入参数如下图左,综合考虑这两种兴趣(“Gina”、“Haley Joel Osment”)进行实时推荐:


sources: Gina, Haley Joel Osmentlabel: movie
复制代码



值得注意的是,图引擎因为是基于图的结构进行实时计算,因此可以适应数据的动态变化,如上图“小易刚浏览了好友 Gina 主页,添加巨星 Matt Damon 的动态关注”这一行为,可以通过 gremlin 等语句实时更新到当前图数据里,做到实时更新,实时推荐。不仅可以考虑到考虑小易的近期倾向性行为,同时考虑小易特有的各类关系(人->电影,人->人,电影->电影等等),这样的实时推荐,可以极大增加推荐的准确度,从而增加点击率,提高转化率。


综上,可以看出,图引擎服务提供的实时推荐算法,在多重关系(用户与商品的历史交互信息,人与人、商品与商品等背后潜在关系)共同作用下进行推荐,精度更高;支持多请求节点下综合推荐,满足各种复合型、时变、多样性推荐场景需求;大数据量下速度,依然能够达到较好的实时推荐效果,可扩展性强,欢迎大家进行试用。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/pTxc8wi7By8qy_uqcmHQqw


2020-04-01 21:12792

评论

发布
暂无评论
发现更多内容

[整理]CI持续集成-基于Github Action

小鑫同学

前端 Node 10月月更

Sass入门使用指南

小鑫同学

前端 Node 10月月更

「Hive进阶篇」一、详解存储格式及压缩方式

大数据阶梯之路

大数据 hive 面试 数仓

Jib使用小结(Maven插件版)

程序员欣宸

Docker 10月月更 Jib

不同的子序列 II

掘金安东尼

算法 10月月更

Python进阶(十九)Python3安装第三方爬虫库BeautifulSoup4

No Silver Bullet

Python 字符串 10月月更 BeautifulSoup4

声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访

声网

人工智能 音视频

「Hive进阶篇」二、万字长文超详述hive企业级优化

大数据阶梯之路

大数据 hive 面试 hive优化

大数据ELK(二十四):安装Kibana

Lansonli

10月月更 安装Kibana

Python进阶(二十)Python爬虫实例讲解

No Silver Bullet

Python 数据分析 10月月更

最火的物联网技术MQTT,其服务质量QoS的三个级别分别是什么意思,本文一定对您有帮助!

wljslmz

物联网 mqtt QoS 10月月更

JavaMail 使用POP3/SMTP服务发送QQ邮件

Yeats_Liao

后端 Java core 10月月更

jsbridge-n22使用指南

小鑫同学

前端 Node 10月月更

跟着卷卷龙一起学Camera--一亿像素的好坏02

卷卷龙

ISP camera 10月月更

Java历史与环境搭建笔记

魏铁锤

10月月更

微信朋友圈架构设计

风行

架构 架构实战训练营9期

ReactNative-Android插件

小鑫同学

前端 Node 10月月更

Java编程之数组

魏铁锤

10月月更

cstdio的源码学习分析10-格式化输入输出函数fprintf---宏定义/辅助函数分析01

桑榆

源码刨析 10月月更 C++

【一Go到底】第十四天---break快速入门

指剑

Go golang 10月月更

架构实战营模块 3 作业

陌生流云

架构实战营

MTPuTTY配置ssh连接Gitlab

Yeats_Liao

后端 Java core 10月月更

Visual Studio Code 安装教程附插件推荐

Yeats_Liao

后端 Java core 10月月更

【从0到1学算法】3.折半查找

Geek_65222d

10月月更

2022-10-13:给定一个只包含三种字符的字符串:( 、) 和 *, 写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 )

福大大架构师每日一题

算法 rust 福大大

变量与常量介绍笔记

魏铁锤

10月月更

C++使用protobuf嵌套结构体总结

中国好公民st

c++ protobuf 10月月更

算法策略的主动选择,拒绝if...else...(策略模式+简单工厂模式)

小鑫同学

前端 Node 10月月更

跟着卷卷龙一起学Camera--一亿像素的好坏03

卷卷龙

ISP camera 10月月更

Express 基于 Node.js 平台,快速、开放、极简的 Web 开发框架

小鑫同学

前端 Node 10月月更

跟着卷卷龙一起学Camera--一亿像素的好坏01

卷卷龙

ISP camera 10月月更

华为云新一代黑科技核心算法揭秘_文化 & 方法_华为云产品与解决方案_InfoQ精选文章