开发者社区> 黯灭_邓彬> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

无推荐、不APP

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

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

目录

一、推荐概述

1、推荐之路

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

_1

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

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

_1

2、无处不在的推荐

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

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

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

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

二、阿里云推荐引擎的技术特点

1、阿里云推荐引擎架构

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

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

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

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

_06

2、三大特点:通用基因提取算法

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

  • 因子分析:分析用户的历史行为数据,得到用户在不同行为上对于目标的权重。目标由业务来确定,如点击率,购买转化率等。计算方法可以是逻辑回归或者神经网络等监督学习方法。
  • 特征提取:分析物品的基础信息,将物品用关键词,属性,类目等特征来表示。这里包括分词,特征变化,特征衍生等算法。提取出来的每个特征,我们称之为基因。
  • 基因计算:行为因子的权重应用在用户行为上,计算得到用户对每个基因的偏好。得到了用户在基因维度上的的特征向量。
  • 基因降维:如果基因维度仍然很大的情况。可以在后面增加基因降维算法。利用SVD矩阵分解的技术,压缩用户和物品的特征向量。

_07

3、三大特点:基于业务需求的排序功能

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

_08

4、三大特点:实时/准实时修正

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

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

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

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

  • 利用bandit策略增加新物品的曝光机会。
  • 通过控制聚类数目,来平衡推荐精度和广度。

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

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

_09

5、长处:强大的外围扩展能力

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

  • 推荐引擎支持离线算法、在线算法、近线算法的自定义,客户可以根据自己的数据情况来定义自己算法。比如音乐特征数据,可以开发自己的特征提取算法,把音乐频谱数据应用在推荐系统中。
  • 推荐引擎使用的MaxCompute是阿里云很多数据应用的基础组件。所以在推荐引擎里面计算得到的模型,可以无需修改应用到其他服务中去。推荐产生的离线数据也可以直接用于人群筛选,人群建模等大数据BI场景。同样的,因为底层都是MaxCompute,机器学习平台PAI训练得到的数据模型也可以应用在推荐引擎中。

_10

6、如何应对常见推荐问题?

  • Exploration & Exploitation(精准度和新颖性的权衡)

    推荐引擎在线计算中大量应用bandit方法来达到更好的平衡。因为推荐要解决的一个很重要问题就是排序,而且在新品过来的时候,我们没有对于它的先验知识,在这种情况下怎么选择推荐结果。
    最流行的UCB bandit算法是这么解决的:
    

bandit

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

  • 冷启动问题

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

三、针对行业的解决方案

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

1、内容导购

需求:

  • 内容筛选
  • 提高成交转化率

对应解决方案:

  • 离线通过自定义的筛选算法选出被推荐的PGC(专业生产内容) UGC(用户生产内容),达人。近线通过实时修正完成新品推荐。
  • 离线训练基于成交转化率的排序模型。

_13

2、媒体资讯

需求:

  • 内容标签化
  • 推新

对应解决方案:

  • 离线通过内容结构化,抽取内容基因,生成内容标签。描述用户画像。
  • 新用户千人十面在线标签推荐,新物品实时修正推荐。

_14

3、视频直播

需求:

  • 实时性
  • 物品更新

对应解决方案:

  • 在线修正用户基因,历史行为过滤,看过的不在推荐。
  • 新物品上架推荐,实时物品下降,在线审计。

_15

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
App Store把app的评论扒下来
公司有需求把评论进行统计分析,就把App Store的评论扒下来并记录
0 0
推荐 2 款非常好用的应用 App
推荐 2 款非常好用的应用 App
0 0
个人app(LiveRadio)
个人app(LiveRadio)
0 0
app定制开发的技巧有哪些?
在竞争如此激烈的移动应用环境下该如何确保我们定制的app能获的大量的下载量呢?每一个手机app定制开发软件的研发人员,他们的终极梦想都是创造一款广受用户欢迎并且能有上百万的下载量,但是,这个谈何容易?
0 0
深入解读Android新特性——App Bundles
深入剖析Android官方新模块化方案——App Bundles,技术要点全方位挖掘。
16484 0
todomvc-app
1、HTML 1 doctype html> 2 3 4 5 6 Template • TodoMVC 7 8 9 10 11 12 ...
768 0
一个写信的APP
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396378 严格讲,算是一个在等待中交朋友的APP。
669 0
C app
1,C 输入输出字符串 另一种方法gets/puts 函数 warning: the `gets' function is dangerous and should not be used 2,C 程序中使用system执行OS 命令行,并在system中使用变量(实现linux pa...
613 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
LEAN APP
立即下载
POWERING PREBICTIVE MAPPING AT
立即下载
App快速回归测试
立即下载