华为云新一代黑科技核心算法揭秘
推荐技术在社交APP、电商、音乐视频图片平台、咨讯推送平台等场景中大展身手,带给用户便利的同时,提高了用户平台活跃度,增加了“物品”销量。但是,随着互联网技术的飞速发展,所能够获取的数据量和数据类型越来越多,如何利用这些错综复杂的数据,挖掘背后潜在关系,进行快速有效的推荐成为各公司势在必行的趋势。
社交 电商 资讯
图1 常见推荐应用场景
目前的推荐算法层出不穷,数据利用效率、推荐的效果、速度也不尽相同。例如,在电影推荐场景,传统基于协同过滤(CF)的方法仅考虑到左半边人对电影的feedback数据,而传统基于内容(CB)的方法仅考虑右半边电影的特性数据,这样单纯的依赖部分数据进行推荐难以满足用户更深层次的推荐需求,同时存在稀疏性等问题;基于深度学习的推荐是近期比较热火的方向,推荐效果较传统方法也有很大的提高,但却以牺牲时间性能为代价,推荐的结果解释性也较低。
图2 电影推荐
2. Pixie 实时推荐算法介绍:
Pixie 实时推荐过程如图所示,主要基于对图上多起点的Pixie Random Walk:其根据各节点的重要性给各请求节点分配不同的游走步数, 同时对各请求节点进行Pixie Random Walk,综合各起点Pixie Random Walk下候选节点的得分结果,进行推荐。
图3 Pixie实时推荐过程示意图
其中,Pixie Random Walk过程:从请求节点(如下图中的节点V4)沿着边,根据一定的倾向性不断地“游走“到相邻的节点,达到一定步数(步长)时返回起点重新游走。
游走步长:currSteps = SampleWalkLength(α)
多次这样的游走后, 当高频率经过的点的个数超过一定数量时,或者达到分配的步数上限时结束。
Pixie Random Walk游走过程中,随着被经过的次数的增加,候选节点被推荐的得分也相应增加;当所有的Pixie Random Walk结束时,Pixie将给出各候选节点的综合得分,得分越高被推荐的程度越大。
图4 Pixie RandomWalk 过程示意图
3. 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。
图5
(2) 支持多请求节点(qurey vertices)下综合推荐,满足各种复合型、时变、多样性推荐场景需求
例如: 电影平台上的用户,小雨近期看了2部电影Ready Player One、;小易刚浏览了好友Gina主页,添加巨星Haley Joel Osment的动态关注;小桐刚刚进行了关键词搜索 Drama,Sci-Fi;等等,对于用户一些列实时的多样性组合操作行为,Pixie 实时推荐算法均可以综合各类操作,考虑各请求类型起点出发的多重关系,快速给出最相关的推荐排序。
图6
不仅如此, Pixie不同于以往那种单一性的推荐方法, 其推荐的范围更加多样,可以是不同类的商品,也可以是人,避免推荐结果局限于单一类型。同样以电影推荐场景为例,针对同一组数据,不需要重新建模,只需要改变输入参数,即可推荐电影,兴趣好友(Sarah>Alice>Gina), 甚至系列主演(Haley Joel Osment>Tye Sheridan)等等
可扩展性更强,对大数据量依然能够满足实时性推荐需求
社交巨头 facebook从2007年的5000万用户,已增长之20亿+;拥有图片版Twitter之称的Pinterest 目前坐拥30亿+的图片,2亿+用户月活。在如此庞大的数据量下,传统方法(例如CF)计算量随着数据量呈线性(或者不止线性)增长,很难满足实时性推荐需求,Pixie算法与之不同,其计算量几乎独立于数据量。Pinterest曾用其业务数据测试对Pixie实时推荐算法进行测试发现,在10亿+数据时,Pixie 实时推荐算法依然能够秒极内产生推荐结果。大数据量下,依然能够达到较好的实时推荐效果。相较于过去传统算法,通过Pixie算法新增的推荐量增长了50%以上。
4. 基于图引擎(GES)平台的Pixie 实时推荐使用:
首先,在GES 创建图,这里以图2所示的电影推荐场景为例
首先,在元数据管理栏创建schema 如下:
图管理栏创建图,根据提示上传点边数据文件:
其中,点数据文件vertex.csv内容:
Frank,user,弗兰克,M,18-24,college/grad student,2906
Mike,user,麦克,M,25-34,other or not specified,30606
Sarah,user,莎拉,F,18-24,other or not specified,55105
Alice,user,爱丽丝,F,25-34,academic/educator,79928
Gina,user,吉娜,F,35-44,sales/marketing,60202
Ready Player One,movie,头号玩家,2011
Lincoln,movie,林肯,2012
Artificial Intelligence,movie,人工智能,2001
The Sixth Sense,movie,灵异第六感,1999
Haley Joel Osment,actor
Tye Sheridan,actor
Steven Spielberg,director
Drama,genre
Sci-Fi,genre
边数据文件edge.csv内容:
Frank,The Sixth Sense,like,2017/12/22 23:24
Mike,Artificial Intelligence,like,2017/12/22 20:20
Mike,Lincoln,like,2017/12/23 13:08
Sarah,The Sixth Sense,like,2017/12/22 22:00
Sarah,Artificial Intelligence,like,2017/12/23 21:05
Alice,Artificial Intelligence,like,2017/12/22 10:24
Alice,Ready Player One,like,2017/12/23 17:25
Gina,Lincoln,like,2017/12/22 16:30
Gina,Ready Player One,like,2017/12/22 21:37
Frank,Mike,friends
Frank,Sarah,friends
Mike,Sarah,friends
Mike,Alice,friends
Alice,Gina,friends
The Sixth Sense,Haley Joel Osment,hasActor
The Sixth Sense,Drama,hasGenre
Artificial Intelligence,Drama,hasGenre
Artificial Intelligence,Sci-Fi,hasGenre
Artificial Intelligence,Haley Joel Osment,hasActor
Artificial Intelligence,Steven Spielberg,hasDirector
Lincoln,Steven Spielberg,hasDirector
Lincoln,Sci-Fi,hasGenre
Ready Player One,Steven Spielberg,hasDirector
Ready Player One,Sci-Fi,hasGenre
Ready 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 Osment
label: movie
值得注意的是,图引擎因为是基于图的结构进行实时计算,因此可以适应数据的动态变化,如上图” 小易刚浏览了好友Gina主页,添加巨星Matt Damon的动态关注”这一行为,可以通过gremlin等语句实时更新到当前图数据里,做到实时更新,实时推荐。不仅可以考虑到考虑小易的近期倾向性行为,同时考虑小易特有的各类关系(人->电影,人->人,电影->电影等等),这样的实时推荐,可以极大增加推荐的准确度,从而增加点击率,提高转化率。
综上,可以看出,图引擎服务提供的实时推荐算法,在多重关系(用户与商品的历史交互信息,人与人、商品与商品等背后潜在关系)共同作用下进行推荐,精度更高;支持多请求节点下综合推荐,满足各种复合型、时变、多样性推荐场景需求;大数据量下速度,依然能够达到较好的实时推荐效果,可扩展性强,欢迎大家进行试用。
- 点赞
- 收藏
- 关注作者
评论(0)