电子商务推荐算法工业应用总结

标签: 个性化推荐与搜索 | 发表时间:2013-07-23 11:46 | 作者:bicloud
出处:http://blog.sina.com.cn/bicloud

电子商务推荐算法工业应用总结

谨以此文纪念阅读推荐算法论文,设计开发推荐算法,不断踩雷,加班的日子

推荐系统就是要恰当的时间合适的地方,采用适用的方法给正确的人推荐满足需求的商品

即 when where who what how。本文关注的是其中的一个方面,电子商务推荐算法(即how)。

开发满足实际工程应用的算法,推荐算法人员具备的能力:以工程化的方法,产品设计者的思维来设计和开发算法


1 非个性化推荐算法

这里定义的非个性化算法,即算法结果中不涉及到用户的算法。譬如根据商品推荐商品。根据实际工业应用主要分为三种:

假设A和B分别表示Item,

 

如果A和B同质,即电子商务中A和B同类商品,这是很多人反感推荐的一个应用之一。譬如经常在的定向广告,经常有人抱怨,“刚买了个奔驰Smart,还给我推荐奔驰Smart,我又不是分销商”。这个是个bad case。这就是属于学术界那些开发者思维。没有结合实际场景考虑,用户既然购买过了,需要做些算法调整。但是,同质算法也有场景比较合适,譬如用户购物前,在选择商品的时候。举个例子,用户在看iphone手机,你非要给他推荐个牛肉干,这时,推荐异质不大合适。因此,同质商品推荐适合购物前选择商品的时候。譬如,进入amazon.com,点击某个商品,然后回到首页,你会发现,



如果A和B是异质,即电子商务中A和B是不同类目商品,这也是普通用户常常喊破嗓子的交叉推荐,买了个避孕套,推荐润滑剂之类的。这种类型的算法,比较适合用户最近几天或者刚刚购买商品之后的场景。譬如前面讲述的微博定向广告推荐商品的例子中,用户购买了某商品,还在不断的推荐同质商品。在实际算法开发时,需要做特殊处理,譬如处理掉同质商品,或者用一些譬如关联规则的算法,可以计算出异质商品。

如果A和B是混合的,即不考虑A和B是否同异质,根据用户的行为,设计开发算法。这类算法在购物流程中都相对适合,要结合实际产品需求进行选择。满足多样性的同时,也可以满足下用户选择同质商品的机会,对CTR有些帮助。

譬如


这类非个性化推荐算法,可以参考以前写的短文: http://blog.sina.com.cn/s/blog_61c463090101bp01.html 

 

2 个性化推荐算法

个性化推荐算法,即推荐结果中有用户信息,即每个用户推荐的结果不一样。

 

P(B|U,A)即根据用户信息及当前的商品,推荐商品B的可能性。比较适合这种算法的场景,譬如商品详细页面,用户在登录状态下,有用户信息,和当前浏览的商品,从而给用户推荐商品。它解决了部分实时的问题(一种伪实时,让用户感觉是实时)。譬如登录用户来到这个页面,



根据用户特征和商品关系,推荐个性化的商品。个人的观点是,在这个页面,其实前述非个性化的算法,就可以满足需求,加入个性化,就要考虑投资回报率ROI。大多时候,产品设计者都是在根据自己的意淫,来觉得这应该用什么算法。因此,算法人员,就要结合实际场景考虑。

p(B|U,A1,A2…...)即用户登录状态下,根据用户特征,已经多个商品信息,为用户推荐商品。这种算法的场景,就是大家常说的类似个性化推荐,譬如猜你喜欢等等模块,根据用户行为商品和用户特征,产生推荐。这里举个例子,譬如在用户主页,我的淘宝里面,实际设计算法就是要结合用户和历史行为,推荐商品。P(B|U)即只有用户信息情况下,推荐商品,貌似就是冷启动问题。

         解决这类问题,一般是将上述公式结合贝叶斯和全概公式,根据用户和商品特征转化,结合前面非个性化部分的商品关系数据,进行处理。但是,实际中,还有其他方法处理,譬如对用户兴趣做预测,电子商务中往往是预测用户感兴趣的类目+标签,这样一个粒度。如果直接预测到商品这个粒度,就直接解决问题。常见的算法已经铺天盖地,这里就不介绍了,慎用,大胆假设,小心求证。

3 知识库

Bad case库:根据实际算法开发,总结出的库,包括一些common sense。举个例子,譬如微博上有人提到的淘宝广告给用户推荐骨灰盒寿衣等。哎,学术贩子。把这些bad case总结起来。

经验库:公司运营产品的一些经验,即根据运营平时做营销,做活动所总结的经验。譬如这个季节适合推荐什么等等。还有,譬如一些重要的常见节假日,对特殊人群的推荐。让推荐更加真实些吧。

个人结合各大电商站点,总结了一些这样的电子商务知识库,这些对算法都是有一些帮助。不仅仅是针对推荐这种服务(Recommendation as a Service).

 

爆点:

1 设计算法时,一定要做前期数据探索(数据分析),虽然部分人不以为然,个人经验,还是得有数据探索,即前面讲到的 when where  who what how,结合实际场景。这一点不仅仅适合推荐算法,工业应用中的其他数据挖掘模型的应用,都需要做这个。

2 设计推荐算法,绝多数情况下要考虑时序信息,这对算法效果有很大的帮助,甚至决定性的影响

3学术派,是为了论文,那些算法实在特定环境下产生。工业应用,要结合实际去选用,考虑,加以改善。对待学术派,时刻,带着怀疑的态度去审度算法应用。

4 牢记ROI

5 KISS 原则  keep it simple & stupid 简约而不简单

6 when where who what how

 

 

更多详情,欢迎交流



  青春就应该这样绽放   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

相关 [电子商务 推荐算法 工业] 推荐:

电子商务推荐算法工业应用总结

- - 冰火岛
电子商务推荐算法工业应用总结. 谨以此文纪念阅读推荐算法论文,设计开发推荐算法,不断踩雷,加班的日子. 推荐系统就是要恰当的时间合适的地方,采用适用的方法给正确的人推荐满足需求的商品. 即 when where who what how. 本文关注的是其中的一个方面,电子商务推荐算法(即how). 开发满足实际工程应用的算法,推荐算法人员具备的能力:以工程化的方法,产品设计者的思维来设计和开发算法.

社会化推荐算法

- - CSDN博客云计算推荐文章
本文是论文《一种结合推荐对象间关联关系的社会化推荐算法》(以下简称论文)的笔记(下). 该论文提出的算法是以PMF为框架基础的. 因而若对PMF不太了解的话,可以参考我的 上一篇文章脑补一下,当然,那篇文章只是概述,详细了解PMF还需要阅读初始论文,但读完那篇文章后,对本文的理解应该没有问题. 所谓社会化推荐算法,是将社交网络的特性加入到推荐系统中来.

常用推荐算法

- - 互联网 - ITeye博客
       在推荐系统简介中,我们给出了推荐系统的一般框架. 很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣. 目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐. 基 于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料.

Mahout: SVDRecommender SVD推荐算法

- -

HTML5@电子商务.com

- never-online - 随网之舞
在这么短的时间内国内组织了这多次和HTML5相关的大规模顶级会议,几乎涉及到国内所有最领先的互联网企业,从中可以看出HTML5的热度. HTML5引起业界如此重视这是好事,但短时间内过热反而说明了业界对于HTML5的理解程度不够,这点和2005年言必称标准和ajax非常类似,等大家真正对标准和ajax深刻理解并应用到生产实践的时候反而在谈论的是利用标准和ajax成就了某项产品而不仅仅是技术本身,HTML5也正经历这样一个过程.

电子商务的艰难

- alswl - 千鳥志
上午去了趟仓库,第一次看到我们设计的操作线在仓库完整运作,离6月16日去凡客和乐淘仓库学习只有129天. 南五环与北四环之间来回的路上,各种不容易历历在目.

[转]Mahout推荐算法基础

- - 小鸥的博客
Mahout推荐算法分为以下几大类. 2.相近的用户定义与数量. 2.用户数较少时计算速度快. 1.基于item的相似度. 1.item较少时就算速度更快. 2.当item的外部概念易于理解和获得是非常有用. 1基于SlopeOne算法(打分差异规则). 当item数目十分少了也很有效. 需要限制diffs的存储数目否则内存增长太快.

推荐算法Slope One初探

- - 标点符
Slope One 算法是由 Daniel Lemire 教授在 2005 年提出的一个 Item-Based 推荐算法.  Slope One 算法试图同时满足这样的的 5 个目标: . 易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试. 运行时可更新的:新增一个评分项,应该对预测结果即时产生影响.

美团推荐算法实践

- - 美团技术团队
推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情. 随着互联网的深入发展,越来越多的信息在互联网上传播,产生了严重的信息过载. 如果不采用一定的手段,用户很难从如此多的信息流中找到对自己有价值的信息. 解决信息过载有几种手段:一种是搜索,当用户有了明确的信息需求意图后,将意图转换为几个简短的词或者短语的组合(即query),然后将这些词或短语组合提交到相应的搜索引擎,再由搜索引擎在海量的信息库中检索出与query相关的信息返回给用户;另外一种是推荐,很多时候用户的意图并不是很明确,或者很难用清晰的语义表达,有时甚至连用户自己都不清楚自己的需求,这种情况下搜索就显得捉襟见肘了.

Mahout推荐算法API详解

- - zzm
Mahout推荐算法API详解. Hadoop家族系列文章, 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等.