个性化时代,音/视频、媒体资讯、电商导购该怎么做推荐?
目录
推荐概述
阿里云推荐引擎的技术特点
针对行业的解决方案
一、推荐概述
1、推荐之路
面对互联网的信息爆炸,网站不得不提供多种信息检索的方式来方便用户去寻找自己想要看到的东西。目前主流的方法无非就是搜索、分类导航和推荐。
搜索,是用户主动参与的一个过程,依赖于对文本的处理。
分类导航,则依赖于网站本身良好的类目体系,需要熟练精准的运营能力。
个性化推荐,更多是通过用户历史的行为去推断,算法参与的更多,可以做到千人千面。
可以说在桌面时代这几种方法是相辅相成的,而到了移动互联网阶段,因为显示屏幕大小限制,无法显示复杂的分类导航,和输入的不便捷性,使得作为信息筛选方法的个性化推荐变得越来越重要。
2、无处不在的推荐
同时,在个性化需求强烈的行业上,推荐也同样走在最前面。
比如亚马逊,随着零售市场的丰富化和越来越细分的类目,用户对商品选购这件事情越来越头疼,同样电商网站也在头疼如何在有限的产品页面提供对用户最有效的信息。亚马逊最早使用个性化推荐来构建千人千面的电商页面,减少了自身的运营成本的同时,也使得众多顾客成为亚马逊的忠实客户。
再比如Netflix,75%的视频观看和推荐系统有关。为了提升推荐效果,Netflix来举办了专门的推荐算法大赛,邀请全世界学术界的大牛来推动推荐算法的发展。
Facebook同样也是个性化推荐的受益者。推荐算法支撑着Facebook可以为几亿人找到他们想看的咨询,新闻,兴趣小组。
二、阿里云推荐引擎的技术特点
1、阿里云推荐引擎架构
推荐引擎整体包括三块计算域:离线计算、在线计算、近线计算。
其中离线计算依赖阿里云大数据计算引擎MaxCompute,可以完成PB级数据分析和运算,同时我们会提供基于MaxCompute SDK的离线算法开发包,帮助客户完成自定义算开发。
在线计算则包括处理API请求,获取离线推荐结果,重排序等功能。依赖阿里云Table Store提供的大容量,高效的KV数据库,同样客户可以编写js代码来自定义自己的在线计算逻辑。
近线计算是基于客户的实时日志做实时修正,物品增删,新用户推荐等功能。核心是实时日志的流计算。后续会引入更加强大StreamCompute引擎。
2、三大特点:通用基因提取算法
推荐算法核心就是匹配,而匹配的核心就是向量化。如何把用户和物品高效精准的向量化,是推荐算法效果好的关键。基因提取算法提供了一个向量化的框架,把从用户行为,物品基础信息到生成用户、物品向量这个过程分解为4个阶段:因子分析、特征提取、基因计算和基因降维。
因子分析:分析用户的历史行为数据,得到用户在不同行为上对于目标的权重。目标由业务来确定,如点击率,购买转化率等。计算方法可以是逻辑回归或者神经网络等监督学习方法。
特征提取:分析物品的基础信息,将物品用关键词,属性,类目等特征来表示。这里包括分词,特征变化,特征衍生等算法。提取出来的每个特征,我们称之为基因。
基因计算:行为因子的权重应用在用户行为上,计算得到用户对每个基因的偏好。得到了用户在基因维度上的的特征向量。
基因降维:如果基因维度仍然很大的情况。可以在后面增加基因降维算法。利用SVD矩阵分解的技术,压缩用户和物品的特征向量。
3、三大特点:基于业务需求的排序功能
推荐引擎提供Learning to rank 的算法模块。在用户特征和物品特征提取完成后,再根据业务目标,筛选训练样本,训练排序模型,应用在离线在线排序中。然后通过配置多个场景,实现在每个推荐位上面的单独优化。比如首页推荐场景,可以用点击率来训练排序模型;详情页场景,可以通过看了又看来训练。
4、三大特点:实时/准实时修正
推荐引擎支持对推荐结果做实时/准实时修正,下面列举了两个典型算法:
1.新增物品实时推荐(图例上半部)
离线: 物品聚类,得到聚类特征->计算用户对物品聚类的偏好->计算simhash-聚类特征的倒排索引
在线: 新增物品在线抽取特征,计算归属的聚类->利用用户对物品聚类的偏好实时推荐
利用bandit策略增加新物品的曝光机会。
通过控制聚类数目,来平衡推荐精度和广度。
2.基于实时日志的用户特征修正 (图例下半部)
获取用户行为->利用行为因子生成用户特征修正量->利用压缩矩阵压缩特征修正量,最终修正用户特征。
5、长处:强大的外围扩展能力
推荐引擎拥有强大的外围扩展能力,具体体现在两个方面:
推荐引擎支持离线算法、在线算法、近线算法的自定义,客户可以根据自己的数据情况来定义自己算法。比如音乐特征数据,可以开发自己的特征提取算法,把音乐频谱数据应用在推荐系统中。
推荐引擎使用的MaxCompute是阿里云很多数据应用的基础组件。所以在推荐引擎里面计算得到的模型,可以无需修改应用到其他服务中去。推荐产生的离线数据也可以直接用于人群筛选,人群建模等大数据BI场景。同样的,因为底层都是MaxCompute,机器学习平台PAI训练得到的数据模型也可以应用在推荐引擎中。
6、如何应对常见推荐问题?
Exploration & Exploitation(精准度和新颖性的权衡)
推荐引擎在线计算中大量应用bandit方法来达到更好的平衡。因为推荐要解决的一个很重要问题就是排序,而且在新品过来的时候,我们没有对于它的先验知识,在这种情况下怎么选择推荐结果。
最流行的UCB bandit算法是这么解决的:
其中加号前面是这个item到目前的收益均值,后面的叫做bonus,本质上是均值的标准差,t是目前的试验次数,Tjt是item被选中的次数。这个公式反映:均值越大,标准差越小,被选中的概率会越来越大,起到了exploit的作用;同时哪些被选次数较少的item也会得到试验机会,起到了explore的作用。
冷启动问题
推荐引擎在每个计算阶段都有处理冷启动问题的解决方案,离线通过计算热门推荐来做补全。在线通过物品聚类和新品特征抽取,来做新品推荐。近线通过实时获取用户行为日志,推荐用户之前有行为的物品及其相关物品等。
三、针对行业的解决方案
在不同行业,推荐有着不同的需求。阿里云推荐引擎同样在行业需求上面有自己的积累。
1、内容导购
需求:
内容筛选
提高成交转化率
对应解决方案:
离线通过自定义的筛选算法选出被推荐的PGC(专业生产内容) UGC(用户生产内容),达人。近线通过实时修正完成新品推荐。
离线训练基于成交转化率的排序模型。
2、媒体资讯
需求:
内容标签化
推新
对应解决方案:
离线通过内容结构化,抽取内容基因,生成内容标签。描述用户画像。
新用户千人十面在线标签推荐,新物品实时修正推荐。
3、视频直播
需求:
实时性
物品更新
对应解决方案:
在线修正用户基因,历史行为过滤,看过的不在推荐。
新物品上架推荐,实时物品下降,在线审计。
更多深度技术内容,请关注云栖社区微信公众号:yunqiinsight。