一、百分点的主要特点
1、用户全网兴趣偏好平台
满足针对用户全网兴趣偏好进行精准分析,打通用户在多个网站的兴趣偏好。
个人点评:全网数据指的是所有目前与其合作的网站的的数据,从目前合作的规模看,目前与百分点合作的大型网站没有几个,其他的都是些冷门的网站。对于一些大型网站,处于商业信息的保密,基本上不会将此部分数据与其他网站共享。
2、互联网用户的兴趣图谱
浏览和收藏代表用户的偏好,购买行为则最贴近用户的真实需求,通常在互联网上完成购买行为越多的用户,他的兴趣展示越充分。
3、海量消费偏好挖掘能力
在群体智慧与复杂网络领域的多年耕耘让百分点科技拥有海量消费偏好挖掘能力,确保每次送达的精准性和时效性。
个人点评:以上信息均为百分点公司商业介绍资料,具体算法是什么,具体效果有多少不得而知。
二、N年前的百分点
以下资料来自百分点2010年公开下载的文档。
百分点推荐引擎提供了三项基于客户的个性化推荐和四项常规推荐。
三项个性化推荐包括:
四项常规推荐包括:
个人点评:三项个性化推荐为数据来源,对于普通的网站来说基本上都能实现。四项常规推荐中第一、第二点在先前的文章中已经介绍过了。 推荐系统之Also Buy和Also View的实现。第三种情况为决策性推荐,和第四种组合推荐在技术是实现上也没有难度。
三、百分点的前端实现
有两种方法可以帮助您在购物页面上嵌入百分点推荐引擎的推荐栏:
1、基于JavaScript 的实现方式,需要在多个页面中 嵌入百分点的JavaScript 代码:
①通过“产品展示页面”上传商品信息和发送推荐请求;
②通过“购买确认页面”上传商品购买记录。
2. 直接调用webservice 接口,详情请参见API 文档 购物网站需要上传商品信息(比如商品 ID,商品名称,商品价格,商品链接等信息) 到百分点服务器。
个人评价:百分点在做跨浏览器、跨站时采用了Flash Cooike技术,这点可以学习,具体Flash Cookie的介绍如下:
用户数据跟踪之Flash Cookies
四、百分点的系统架构
1、百分点需要实现的需求
2、百分点需要解决的技术要求
3、百分点架构图
百分点推荐引擎可以分为存储层,业务层,算法层和管理层四大功能组件。每个组件内部又可以细分为更小的单元,或者服务模块,提供基本的存储或运算服务。单元与单元之间尽量解耦和,仅通过API协议进行协作,这样一个单元的升级变动带来的影响是可控的。每个单元都要做到可靠可用。
存储层
存储层提供基本的数据存取服务,并做好备份和灾难恢复工作,以保证数据的安全可靠。根据不同的应用需求,存储层细分为Redis集群,Membase集群,MySQL集群和Hadoop/HDFS四类。
算法层
这是百分点推荐引擎最核心也是最具挑战性的部分,百分数将这一层设计为一系列抽象算法的集合。通过深入研究了学术界在基于用户行为的推荐算法,基于内容的推荐算法和关联规则等多方面的理论知识,在此之上自主研发了十多种适用于大数据处理的在线和离线推荐算法。目前,在线算法包括协同过滤(UserBased/ItemBased CF),基于内容的推荐(Content Based),热扩散(Heat Diffusion),用户行为模式分析(Behavior PatterAnalysis)等等。离线算法包括KNN聚类,基于FP Tree的关联规则挖掘,基于上下文统计的关联规则挖掘,序列模式算法,文档建模算法等等。
算法层并不关心具体的业务逻辑,而只负责数据处理和结果返回。以热扩散算法为例,一方面它接受(用户,资源,偏好指数)的三元组作为计算输入,实时计算用户与用户/资源之间的关系;另外,也可以向它请求某个用户对哪些资源最感兴趣,或者某个资源与哪些资源最相关。
将业务逻辑和推荐算法本身剥离这样的设计方式使得推荐算法具有了最大的通用性,也保证了前端的推荐功能模块可以根据逻辑需求综合多个算法。以百分点推荐引擎的“基于浏览历史的个性化推荐”为例,它就使用到了热扩散和基于内容的推荐两种算法。
得益于存储和算法的分离,算法层并不需要考虑数据的备份容灾等问题。这样,如果某个算法模块由于服务器故障出现异常,可以很快在另外的服务器上启动同一个它的一个备份来替换它,而不涉及任何数据迁移问题,最大限度满足了可用性。
业务层
这是百分点推荐引擎中直接面对客户的部分,也就是HTTP Web Service,它主要负责两件事:收集客户提交的数据,并将其转换为各个推荐算法需要的输入数据,交由推荐算法计算;根据客户提交的推荐请求,向一个或几个推荐算法请求数据,并转换为客户需要的数据格式。可以看出,业务层起到了连接具体需求与推荐算法,真实世界与计算机世界之间的作用。
以“购买过该商品的用户还购买过哪些商品”为例来简介这个推荐功能模块是如何沟通客户需求和推荐算法。目前主要采用热扩散算法来实现这个推荐功能模块。首先,客户提交购买数据时,百分点推荐引擎会根据一定的业务逻辑将这个事件处理为算法可以接受的三元组。例如用户U购买了商品K,我们可能会向算法发送一个输入数据(U, K, 1.0)。其次,当客户请求买过K的用户还买过哪些商品时,我们一方面以K作为参数向算法请求与K最相近的资源;另一方面如果客户提交了用户ID,我们还会向算法请求该用户可能感兴趣的商品;最后我们将两个结果加权整合,挑选其中权重最大同时满足客户额外需求(例如过滤用户的购买历史,按照商品类别/价格过滤等)的几个商品作为最终推荐结果。
可见,业务层完全将推荐算法作为黑盒子来使用,这样业务层就可以集中注意力满足客户多种多样的需求。另外,同算法层一样,业务层也无须关心数据的存储备份和容灾。
管理层
在百分点推荐引擎中,管理层负责内部DNS,配置管理,服务部署,服务监控和自动应急处理。
参考文章: http://www.infoq.com/cn/articles/baifendian-recommendation-engine
Related posts: