天天看点

无推荐、不APP

作者:郑重(卢梭) 阿里云算法专家

<a href="#s1">推荐概述</a>

<a href="#s2">阿里云推荐引擎的技术特点</a>

<a href="#s3">针对行业的解决方案</a>

<a></a>

随着互联网规模不断扩大,商品、音乐、电影、广告资讯...的个数和种类快速增长,顾客需要花费大量的时间才能找到自己想要的东西。个性化推荐则是建立在海量数据挖掘基础之上,为顾客提供完全个性化的决策支持和信息服务。

无推荐、不APP

随着移动互联网的发展,顾客的行为发生了明显的变化,过去在pc时代,顾客的浏览习惯是进来搜索,分类导航,但如今在移动端,只有搜索,没有分类,因为整个无线浏览不是一层层点击下去,而是划屏下去。无线的发展同时带来了推荐的大爆发,尤其是用了数据的个性化推荐,带来很多的精准转化。

当然,除了解决移动端用户体验的问题外,个性化推荐的能力还被会成为app的商业价值。尤其是媒体资讯的行业,不仅比拼内容的来源丰富,还要对比对海量数据实时推荐、精准推荐的技术能力。

无推荐、不APP

同时,在个性化需求强烈的行业上,推荐也同样走在最前面。

比如亚马逊,随着零售市场的丰富化和越来越细分的类目,用户对商品选购这件事情越来越头疼,同样电商网站也在头疼如何在有限的产品页面提供对用户最有效的信息。亚马逊最早使用个性化推荐来构建千人千面的电商页面,减少了自身的运营成本的同时,也使得众多顾客成为亚马逊的忠实客户。

再比如netflix,75%的视频观看和推荐系统有关。为了提升推荐效果,netflix来举办了专门的推荐算法大赛,邀请全世界学术界的大牛来推动推荐算法的发展。

facebook同样也是个性化推荐的受益者。推荐算法支撑着facebook可以为几亿人找到他们想看的咨询,新闻,兴趣小组。

无推荐、不APP

推荐引擎整体包括三块计算域:离线计算、在线计算、近线计算。

其中离线计算依赖阿里云大数据计算引擎maxcompute,可以完成pb级数据分析和运算,同时我们会提供基于maxcompute sdk的离线算法开发包,帮助客户完成自定义算开发。

在线计算则包括处理api请求,获取离线推荐结果,重排序等功能。依赖阿里云table store提供的大容量,高效的kv数据库,同样客户可以编写js代码来自定义自己的在线计算逻辑。

近线计算是基于客户的实时日志做实时修正,物品增删,新用户推荐等功能。核心是实时日志的流计算。后续会引入更加强大streamcompute引擎。

无推荐、不APP

推荐算法核心就是匹配,而匹配的核心就是向量化。如何把用户和物品高效精准的向量化,是推荐算法效果好的关键。基因提取算法提供了一个向量化的框架,把从用户行为,物品基础信息到生成用户、物品向量这个过程分解为4个阶段:因子分析、特征提取、基因计算和基因降维。

因子分析:分析用户的历史行为数据,得到用户在不同行为上对于目标的权重。目标由业务来确定,如点击率,购买转化率等。计算方法可以是逻辑回归或者神经网络等监督学习方法。

特征提取:分析物品的基础信息,将物品用关键词,属性,类目等特征来表示。这里包括分词,特征变化,特征衍生等算法。提取出来的每个特征,我们称之为基因。

基因计算:行为因子的权重应用在用户行为上,计算得到用户对每个基因的偏好。得到了用户在基因维度上的的特征向量。

基因降维:如果基因维度仍然很大的情况。可以在后面增加基因降维算法。利用svd矩阵分解的技术,压缩用户和物品的特征向量。

无推荐、不APP

推荐引擎提供learning to rank 的算法模块。在用户特征和物品特征提取完成后,再根据业务目标,筛选训练样本,训练排序模型,应用在离线在线排序中。然后通过配置多个场景,实现在每个推荐位上面的单独优化。比如首页推荐场景,可以用点击率来训练排序模型;详情页场景,可以通过看了又看来训练。

无推荐、不APP

推荐引擎支持对推荐结果做实时/准实时修正,下面列举了两个典型算法:

1.新增物品实时推荐(图例上半部)

离线: 物品聚类,得到聚类特征-&gt;计算用户对物品聚类的偏好-&gt;计算simhash-聚类特征的倒排索引

在线: 新增物品在线抽取特征,计算归属的聚类-&gt;利用用户对物品聚类的偏好实时推荐

利用bandit策略增加新物品的曝光机会。

通过控制聚类数目,来平衡推荐精度和广度。

2.基于实时日志的用户特征修正 (图例下半部)

获取用户行为-&gt;利用行为因子生成用户特征修正量-&gt;利用压缩矩阵压缩特征修正量,最终修正用户特征。

无推荐、不APP

推荐引擎拥有强大的外围扩展能力,具体体现在两个方面:

推荐引擎支持离线算法、在线算法、近线算法的自定义,客户可以根据自己的数据情况来定义自己算法。比如音乐特征数据,可以开发自己的特征提取算法,把音乐频谱数据应用在推荐系统中。

推荐引擎使用的maxcompute是阿里云很多数据应用的基础组件。所以在推荐引擎里面计算得到的模型,可以无需修改应用到其他服务中去。推荐产生的离线数据也可以直接用于人群筛选,人群建模等大数据bi场景。同样的,因为底层都是maxcompute,机器学习平台pai训练得到的数据模型也可以应用在推荐引擎中。

无推荐、不APP

exploration &amp; exploitation(精准度和新颖性的权衡)

无推荐、不APP

其中加号前面是这个item到目前的收益均值,后面的叫做bonus,本质上是均值的标准差,t是目前的试验次数,tjt是item被选中的次数。这个公式反映:均值越大,标准差越小,被选中的概率会越来越大,起到了exploit的作用;同时哪些被选次数较少的item也会得到试验机会,起到了explore的作用。

冷启动问题

推荐引擎在每个计算阶段都有处理冷启动问题的解决方案,离线通过计算热门推荐来做补全。在线通过物品聚类和新品特征抽取,来做新品推荐。近线通过实时获取用户行为日志,推荐用户之前有行为的物品及其相关物品等。

在不同行业,推荐有着不同的需求。阿里云推荐引擎同样在行业需求上面有自己的积累。

需求:

内容筛选

提高成交转化率

对应解决方案:

离线通过自定义的筛选算法选出被推荐的pgc(专业生产内容) ugc(用户生产内容),达人。近线通过实时修正完成新品推荐。

离线训练基于成交转化率的排序模型。

无推荐、不APP

内容标签化

推新

离线通过内容结构化,抽取内容基因,生成内容标签。描述用户画像。

新用户千人十面在线标签推荐,新物品实时修正推荐。

无推荐、不APP

实时性

物品更新

在线修正用户基因,历史行为过滤,看过的不在推荐。

新物品上架推荐,实时物品下降,在线审计。

无推荐、不APP

继续阅读