1 什么是推荐引擎
推荐引擎是机器学习服务的一种,将复杂推荐系统所需的机器学习功能以SaaS的方式提供,让用户可以通过提供活动流(页面浏览、注册、购买等等),以及要推荐的项目(如文件、产品、视频或音乐)的清单获得定制化的推荐结果。
推荐引擎和推荐业务需求的关系,用下图简单示意:
推荐引擎可以理解为将推荐业务需求抽象为一个数学函数求解的过程。这样抽象出的函数就称之为算法。用户根据自身的业务需求和数据特点选择所需应用的算法,通过输入学习样本数据,训练算法,迭代参数后找到效果最好的一个函数,就是该推荐业务需求的推荐模型。推荐引擎提供了模型的部署和对外服务环境,用户通过部署该模型,提供输入数据后,就能得到推荐结果。
因此,使用推荐系统的完整过程应该包含以下几步,各竞品的流程基本一致:
以上的五个流程也是推荐引擎产品的五个主要产品功能。
2 主要场景:
商品推荐:根据用户的特征、网站上的行为日志、产品特征,推荐该用户最可能感兴趣的产品;
内容推荐:根据用户特征、行为日志、产品特征,推荐该用户最可能感兴趣的内容;
客户推荐:根据用户特征、行为日志、产品关联,为产品推荐最可能感兴趣的客户。
3 推荐引擎产品架构
推荐引擎工作原理及架构如下图所示,以AWS推荐引擎为例,各模块就是第一节介绍的推荐引擎各流程的实例化:
AWS Personalize 推荐引擎工作原理
腾讯云推荐引擎架构
阿里云推荐引擎架构
达观数据推荐引擎架构
后台服务架构如下图所示,以腾讯R2实时计算平台为例,号称支持百亿级访问:
腾讯R2实时计算平台架构
计算拓扑图和计算单元(PU)。计算拓扑图负责数据的流向,而计算单元负责业务的逻辑计算。通信层负责PU之间的通信以及拓扑图执行跟踪。其中,Interface负责从业务接入请求,Acker负责跟踪拓扑图执行情况,而R2Server负责转发PU之间的通信、启动PU和监控PU心跳。PU之间的通信都通过R2Server转发。全局配置层负责拓扑管理和名字服务,通过Zookeeper来进行动态配置。其中,拓扑管理将逻辑拓扑映射到物理拓扑,名字服务提供PU地址查询。
4 推荐引擎主要关注点
1) 支持尽可能多的业务和场景,推荐算法库需要做通用化设计。
2) 低延时,可扩展,稳定可靠,支撑海量在线用户的实时请求。
3) 易用性,方便用户接入。
5 推荐引擎主要算法
1) 协同过滤
通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborative filtering)
参考论文:
2) K-nearest
如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
3) Jaccard系数
利用Jaccard相似系数比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。仅用于比较“两个具有布尔值属性的对象之间的距离”
引用百度百科对Jaccard的介绍:
给定两个比较对象A,B。A, B 均有n个二元属性,即每个属性取值为{0,1}。定义如下4个统计量:
M00:A,B属性值同时为0的属性个数;
M01:A属性值为0且B属性值为1的属性个数;
M10:A属性值为1且B属性值为0的属性个数;
M11:A,B属性值同时为1的属性个数;
Jaccard 系数:
Jaccard距离:
4) 余弦相似度
余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。
例如在信息检索中,每个词项被赋予不同的维度,而一个文档由一个向量表示,其各个维度上的值对应于该词项在文档中出现的频率。余弦相似度因此可以给出两篇文档在其主题方面的相似度。
5) 决策树
决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果
6 竞品情况梗概
竞品服务商 | 产品 | 发布状态 |
AWS | Personalize | 已发布 |
GoogleCloud | Cloud AutoML Cloud TPU Cloud Machine Learning Engine | 已发布 |
Azure | Machine Learning Studio | 已发布 |
阿里云 | 推荐引擎 | 已下线 |
腾讯云 | 推荐服务 | 已发布 |
华为云 | 推荐引擎 | 已发布 |
金山云 | 无 |
|
京东云 | 无 |
|
7 详细功能对比
功能分类 | 功能 | AWS | 腾讯云 | 阿里云 | 第四范式 |
数据采集 | 对象存储 | √ | √ | √ | X |
| 日志采集代理 | √ | √ | √ | √ |
算法支持场景 | 向用户推荐产品(内容) | √ | √ | √ | √ |
| 为产品(内容)推荐用户 | √ | √ | √ | X |
| 用户冷启动 | X | √ | √ | √ |
| 产品冷启动 | X | √ | √ | X |
模型迭代 | 模型评价 | √ | √ | √ | X |
| 模型版本记录 | √ | √ | X | X |
| 使用线上数据模型迭代 | √ | X | X | X |
| 自动迭代 | √ | X | X | X |
运维 | 全托管(无需创建计算、存储资源) | √ | √ | X | √ |
| 监控 | √ | √ | √ | X |
其他特点:
- AWS
最大产品库产品数量:2,000,000
最大单测试样本数据量:1T
应用模型最大特征:1亿
最长预测时间:30分钟 (和算法、模型有关,疑似因用到循环神经网络,学习梯度和t有关)
- 腾讯云
具备数据质量监控功能
- 阿里云
预置了针对PV、UV、转化率的点击、消费情况的模型评价指标,并支持自定义模型评价指标。
阿里云无全托管模式,需自行创建大数据中的Maxcompute计算服务
8 价格对比
- AWS
分为数据传入的网络费用、模型训练的计算费用和推荐API调用费用三项
月度费用估算:
每月模型训练费用:172.8 USD
每月推荐调用费用: 36 USD
- 阿里云
存储费用
计算费用
API调用费用
已下线,无数据。
- 腾讯云
开通后根据业务场景报价
9 应用场景
腾讯云
目前仅对内服务,提供“猜你喜欢”“热门推荐”和“每日精选”三个场景,案例包括QQ、应用宝、QQ空间、腾讯游戏四项。
10 京东云智能推荐引擎产品思路
1) 京东沉淀的用户画像和推荐模型可以成为该产品的亮点和门槛,至少用京东沉淀的用户画像训练出对外提供的模型;
2) 与AI事业部形成算法研究变现的合作关系;
3) 产研自研解决资源调度、弹性伸缩、服务稳定性的功能;
4) 提供傻瓜式应用功能,降低应用门槛。
11 结论
推荐引擎的产品单价高,但也可能面临小客户用不起,大客户宁愿自建的产品定位尴尬。核心投入应该在于依托京东商城的用户画像训练模型和不断投入跟进最新算法在平台上实现。