1. GES服务说明

具体可以参考官网 GES,根据我的学习了解,GES提供了一种以图形化形式做数据分析的工具,也就是说,按照要求输入结构化数据,你可以在平台上看见数据之间是怎样联系的。本文就以实验中使用的点-边数据类型来进行分析。

2. 元数据分析

创建图的过程中需要提供三个文件,点数据vertex.csv,边数据edge.csv,映射模板schema.xml

2.1 点数据

在GES服务中,我们使用面向对象的思想,对于需要进行分析的数据都抽象为一个对象,每个对象拥有各自的属性,不同种类对象的属性不同,在实验中给出的电影喜好数据中,点数据即对象,存在同一个vertex.csv文件中,我们可以看作有5个类,分别对应movie,user,genre,actor,director(虽然在GES中是以label表示)。





每一条数据的第一列是id,第二列是label,剩下其他列是一些附加属性,在GES中,每一个id对应一个点(唯一),点与点之间通过边数据联系起来,label用于筛选我们的分析目标,比如我们需要分析某个人喜欢的电影,那么这个人对应一个点,在这个点包括的所有边中,按照label筛选出另一端点为电影的点,那么按照分数排序就可以得到用户最喜欢的某些电影了。

2.2 边数据

边数据主要描述点与点之间的关系,在edge.csv文件中,一共有like,friends,hasGener,hasActor,hasDirector五种。like对应user-movie,friends对应user-user,hasGener对应movie-gener,hasActor对应movie-actor,hasDirector对应movie-director。也就是说上面提到的根据某个用户喜欢某个电影来进行推荐,就是从一个点出发,找到所有边(label为movie),再加上一些其他的算法计算分数,就形成了最终推荐的结果。






推荐结果如下

2.3 映射模板

我们将不同类型的点数据都保存在同一csv文件中,因此需要用映射模板解析数据,解析的形式就是上面描述的按照label分类,不同label的数据包括不同的属性,属性有其各自的数据格式。

<?xml version="1.0" encoding="ISO-8859-1"?>
<PMML version="3.0"xmlns="http://www.dmg.org/PMML-3-0"xmlns:xsi="http://www.w3.org/2001/XMLSchema_instance" ><labels><label name="like"><properties> <property name="Datetime" cardinality="single" dataType="date"/></properties></label><label name="friends"></label><label name="hasActor"></label><label name="hasDirector"></label><label name="hasGenre"></label><label name="user"><properties><property name="ChineseName" cardinality="single" dataType="string" /><property name="Gender" cardinality="single" dataType="enum" typeNameCount="2" typeName1="F" typeName2="M"/><property name="Age" cardinality="single" dataType="enum" typeNameCount="7" typeName1="Under 18" typeName2="18-24" typeName3="25-34" typeName4="35-44" typeName5="45-49"typeName6="50-55" typeName7="56+"/> <property name="Occupation" cardinality="single" dataType="string"/><property name="Zip-code" cardinality="single" dataType="char array" maxDataSize="12"/></properties></label><label name="movie"><properties><property name="ChineseTitle" cardinality="single" dataType="string"/><property name="Year" cardinality="single" dataType="int"/> </properties></label><label name="actor"></label><label name="director"></label><label name="genre"></label>
</labels>
</PMML>

3. 实时推荐算法分析

实时推荐算法(Real-time Recommendation)是一种基于随机游走模型的实时推荐算法,能够推荐与输入节点相近程度高、关系或喜好相近的节点。

参考:实时推荐算法

3.1 参数

  • sources:算法的起点,以id为数据类型
  • label:边筛选条件,以label为数据类型
  • directed:边的方向,为true时点与点之间为单向,反之双向,这个在edge.csv中很关键,比如friends关系中,单向就意味着算法搜索只能从A到B,不能从B到A,双向会产生循环,因此需要N参数
  • N:总游走步数,避免走入循环
  • np:推荐候选节点个数,若某个source节点的候选推荐节点达到“np”,对于该source节点的随机游走将提前结束
  • nv:候选推荐节点所需访问次数的最小值,对于一个节点,如果其在随机游走过程被访问到,且被访问到的次数达到“nv”,则该节点将记入候选推荐的节点。
  • alpha:权重系数, 其值越大步长越长

3.2 算法分析

  1. 首先算法找到所有的sources节点,然后根据directed参数得到所有能通向的路径;
  2. 每一个sources节点找到所有能前往的下一条路时,以1 / 路径数 的概率让其选择一条路,并前往下一个节点;
  3. 当到达下一个节点时,该节点的被访问数加1,同时总游走步数N减1,然后按照2的规则随机到达下一个节点;
  4. 若到达当前节点后,被访问数达到nv,则返回sources节点重新开始,同时将该节点加入候选节点中,若候选节点总数达到np,则停止搜索,按照label筛选返回结果;
  5. 若np为1,则所有候选结果的分数差距不大;若np越大,则每个结果的分数差距变大,每个节点的分数由alpha和到达该节点需要的步数相关,步数越少分数越高,步长alpha越小,分数差异越大;
  6. 最后由不同sources出发得到的所有候选节点的分数相加,然后输出按照分数大小排列好的结果。

实验验证猜想:

  • 随机选择路径,因此参数相同时结果不一定相同


  • np越大,预测结果分数差异越大,alpha越小,分数差异越大





  • sources越多,分数差异越大,预测结果越分明


  • N越大,预测结果越多,分数差异越大


  • 双向比单向能得到更多的预测结果


华为云图引擎服务GES-实时推荐算法相关推荐

  1. 华为云图引擎服务 GES 实战——创图

    本实验主要是熟悉 GES 的创图操作,GES 创图的大致流程如下所示. 环境准备 上传数据 导入元数据 创建图 环境准备 由于 GES 的原始数据是存在 OBS 上的,如果 OBS 上没有桶,需要按照 ...

  2. “字节云”火山引擎正式发布,对外开放推荐算法等核心技术!

    经过一年多的酝酿,字节跳动旗下的智能科技品牌火山引擎终于首次正式对外发布.继推出企业协同工具飞书后,2020 年 6 月火山引擎官网上线,字节跳动在企业服务领域再次加码,表明了拿下 ToB 端的决心. ...

  3. 蚂蚁金服核心技术:百亿特征实时推荐算法揭秘

    小叽导读:文章提出一整套创新算法与架构,通过对TensorFlow底层的弹性改造,解决了在线学习的弹性特征伸缩和稳定性问题,并以GroupLasso和特征在线频次过滤等自研算法优化了模型稀疏性.在支付 ...

  4. 华为音频编辑服务,实时分离人声、伴奏和乐器声

    想获取一首歌的伴奏却找不到资源怎么办?没关系,我们可以自己解决.音频编辑服务提供音源分离的功能,帮助开发者在应用中构建人声与伴奏分离的功能. 目前,音源分离功能已经开放了人声与伴奏.乐器等多种分离的方 ...

  5. 论文解读 | 微信看一看实时Look-alike推荐算法

    作者丨gongyouliu 编辑丨lily 来源 | 授权转载自大数据与人工智能(ID:ai-big-data) 微信看一看的精选文章推荐(见下面图1)大家应该都用过,微信团队在今年发表了一篇文章来专 ...

  6. 实时推荐服务建设——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(八)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  7. 面向对象与闭包综合案例:附近的商家服务与推荐算法

    本例结合ES6面向对象语法.设计模式.闭包,完成一个附近商家的自动推荐功能: 案例需求如下: √ 封装一个地理位置类Location,属性x,y, √ 求距离方法:getDistance(anothe ...

  8. [论文解读]微信看一看实时Look-alike推荐算法

    论文链接:https://arxiv.org/abs/1906.05022 微信看一看的精选文章推荐(见下面图1)大家应该都用过,微信团队在今年发表了一篇文章来专门介绍精选推荐的算法实现细节(Real ...

  9. 华为云RTC服务架构及应用实践

    正文字数:4118  阅读时长:6分钟 本文整理自华为云视频云架构师武杰线上分享的演讲,他详细介绍华为云从直播到实时音视频的网络架构演进.低时延传输技术,分享华为云实时音视频的应用场景实践.实时音视频 ...

最新文章

  1. JavaScript 复习之数据类型
  2. “可扩展标记语言”(XML) 提供一种描述结构化数据的方法。
  3. PAT1004 成绩排名【vector sort排序、string的使用】
  4. Windows消息机制疑问探究
  5. MATLAB图像基本变换实验报告,MATLAB图像增强与变换处理实验报告
  6. Android Studio开发实用网站收集
  7. 前端页面卡顿、也许是DOM操作惹的祸?
  8. QTP的那些事--weblist中相关的内容获取
  9. signature=ed12edba242e439d545c9f98deb5e896,PROJECTION APPARATUS
  10. JSESSIONID是什么
  11. 中科院计算机所博士何飞,2017年中科院计算所博士生招生考试说明
  12. Linux克隆后自动改uuid,解决克隆 Linux虚拟机后修改后的机器的ip、mac、uuid失败的问题...
  13. 直接渲染管理器(Direct Rendering Manager, DRM)
  14. android 炫酷背景,纯css3自动背景变换背景颜色,很炫酷
  15. python获取摄像头数据_用Python获取摄像头并实时控制人脸 !
  16. Surfer绘制等值线图
  17. 蓝牙开发那些事(9)——结合代码看a2dp协议
  18. 广州楼市:这种楼盘谨慎购买,未来难转手,投资请回避!
  19. 记录梦幻手游PC端辅助开发及设计思路之整体架构
  20. css3控制html中图片,如何使用CSS控制前端图片HTTP请求

热门文章

  1. Excel在计算机中的应用,计算机在化学中的应用 主要由excel处理.pdf
  2. 科技版“传音入密”:音频聚光灯现在怎么样了?
  3. Python 量化投资实战教程(6) — 交易平均收益率
  4. bootstrapTable 应用小例(收索)
  5. 马云最新演讲:真正的强者,是在最孤立无援的时刻,依然坚持到底
  6. VoLTE KPI指标分类和定义
  7. PHP数组排序函数 ksort() 、krsort
  8. 【算法竞赛学习笔记】Link-Cut-Tree基础-超好懂的数据结构
  9. c语言二维数组的删除,C语言课设1、二维数组的应用2、删除指定字符3、楼盘管.doc...
  10. war项目连接linux数据库,springboot项目war包部署到Linux