## 3 平台式的3.0
上节中描述2.0的时候提到了一个重要不足是“和推荐核心有一定的距离,并没有完全为推荐量身定做”,我们希望能够在推荐3.0中解决它,这个不足会带来什么问题,以及为何在已经满足业务需求的同时推荐的架构再次往前发展呢?那么接下来为各位展现微博推荐平台式的3.0设计,我们还是先看看所处的环境。
### 3.1 环境
微博推荐3.0的时间段是2014年底至今,当前的内部环境因素是:
1) 推荐产品不在扩张,对效果更为看重,将工作重点从业务开发和迭代转化为以效果为目标的技术迭代。
2) 新项目或者迭代推荐业务的时候发现重复的事情很多,而架构没有解决,工作存在冗余。
而外部因素是:
1) 公司也从业务扩展转变为效率为先,提升用户体验以及内容质量上来。
2) 微博推荐在推荐技术环节距离领域内有一定距离,当下有条件进行追赶。
### 3.2架构组成与特点
当前的环境也能体现出3.0的技术目标:
1) 技术目标
与2.0不同,全覆盖推荐流程已经不是3.0的目标,其目标是:
* 抽象出推荐流程中对于候选/排序/训练/反馈的通用方法来
* 推荐是一个算法数据问题,应该以一个算法的角度构建推荐系统,因此需要更为贴近算法策略
2) 架构组成
如图7所示,是微博推荐3.0的架构,也是当前实行的架构体系,大家其实可以发现,这是基于2.0 发展起来的,既然还保留了大量2.0中使用的分层体系以及工具框架。在这里重点描述几个差异:
* 两个标准:一个是针对应用层,作为整体框架输出,应用层设定all in one 接口标准,其标准包含了输入以及输出参数;另外一个是针对动态输入rin,由于离线计算我们可以确定结构,因此一个输入层工具r9-interface不需要设定规范,但是rin是需要进行标准设定,从属性/交互数据/日志等等层面进行划分。
* 计算层增加对于候选的标准生成方法:Artemis内容候选模块,item-cands用户候选模块、……,在项目开发中只需要选择这些候选生成方法即可。
* 增加了策略平台EROS,解决算法模型的问题。EROS主要的几个功能是:1)训练模型 2)特征选取 3)上线对比测试。
* 数据层中的r9-interface以及rin增加对于候选的生成方法,在线以及离线使用推荐通用策略生成结果。
![](http://wbrecom-wordpress.stor.sinaapp.com/uploads/2015/10/jia-7-1024x735.jpg "jia-7")
图7 微博推荐3.0的架构示意图
3) 特点
主要描述其优势:
* 继承了原有2.0的特点,保留了其优势
* 对于推荐理解更为深入,结合更为紧密
* 解决了推荐候选/排序/训练的算法最重要问题
### 3.3 成果
微博推荐3.0的诞生,其成果如下:
1) 微博推荐的核心业务会逐步迁移到该体系下,以算法数据作为驱动,提升效果
2) 诞生了EROS的训练流程,提出了训练的标准方法
3) 针对推荐设定了标准的输入输出方法
4) 针对候选,产生了具有抽象意义的推荐方法集合