百分点推荐引擎是国内领先的推荐技术平台,专注于为电子商务和资讯网站提供SaaS模式的个性化推荐服务,提高网站的整站转化率和用户黏度。本文将从电子商务网站的实际需求出发,介绍百分点推荐引擎架构设计和搭建。
需求
当下,个性化时代的潮流势不可挡,业界普遍意识到了推荐是网站的一项基本服务。但是,人们对推荐该如何来做,也就是推荐技术本身,还不甚了解。我们经常会遇到这样的疑问:“购买过该商品的用户还购买过哪些商品这种推荐,不是一个SQL语句就搞定了吗?”其实不然,推荐技术远远不是这么简单。广义上讲,推荐技术属于数据挖掘和机器学习范畴,这也意味着好的推荐服务依赖于科学的推荐算法和大量的学习数据。对于电子商务和资讯网站来讲,想在推荐技术领域精耕细作,研发高端的推荐算法并应用到海量数据上是非常困难的。正是在这样的背景下,百分点推荐引擎应运而生。在百分点推荐引擎产品的开发过程中,我们与麦包包、红孩子、走秀网、耀点100等知名电子商务网站,以及天极网、亿邦动力等知名媒体资讯类网站的技术部门进行了深入探讨,从他们那里得到了很多帮助与启发。在与这些行业先锋的交流中我们发现,有一些需求是行业共有的,比如推荐的实时性、高可用性。另外一些需求是行业性的,比如婴幼儿用品的单品重复购买率比较高,但相同的包包的重复购买率就不算高。对于一位正在育儿的母亲,我们可以给她重复推荐符合她们偏好的、相同的奶粉和尿片,但对于一位时尚的女孩,我们向她重复推荐相同的包包可能就不合适了。
经过广泛的市场需求和交流,我们要求百分点推荐引擎能够从方方面面支持客户的市场营销策略,概括的讲主要包括:
* 科学高效的推荐算法,并且根据网站特点选择最佳的推荐算法和推荐策略;
* 根据用户的全网行为分析他们的潜在偏好,帮助网站实现站内站外精准营销;
* 根据全网的商品和资讯信息分析各种内容之间的相关度,帮助网站优化站外流量导入工作。
百分点推荐引擎面对的是全网的商品资讯信息以及用户行为,如何科学有效的利用这些数据为电子商务和资讯网站提供丰富的推荐服务,满足其推广营销目标,成为了我们最大的技术挑战。为此我们对百分点推荐引擎提出了以下技术要求:
* 支持各种推荐算法和科学衡量指标。研究人员们已经提出了数百种推荐算法以及相应的标准数据集和推荐效果衡量指标,百分点推荐引擎必须足够灵活以便能够支持这些算法。而且我们要明确每种算法在各个数据集上的性能指标,以便为具体需求选择合适的推荐算法。
* 大数据处理。面对全网资源和用户行为,如何安全可靠的存储和分析这些数据是非常关键的。我们的最低要求是每天能够处理1亿级别的数据输入和推荐请求,并且保证数据绝对安全。显然,分布式和云服务是我们唯一的选择。
* 高可用性和实时性。作为一个Web Service提供商,提供稳定可靠低延时的服务是基本要求,我们从用户体验角度出发,要求每个推荐请求都能在2ms内处理完成。
* 可扩展性。这是所有计算机系统的普遍需求,我们要求百分点推荐引擎可以很方便的添加各种新的推荐逻辑,提供新的推荐服务。并且当整个系统需要升级扩容的时候,人力和硬件成本是线性可控的。
* 便于管理。运维是Web Service的重头戏,我们要求百分点推荐引擎中的各个部件(或逻辑单元)都是独立可拆卸可替换的,每个部件都要有完善的容灾备份恢复机制,这样整个系统的管理工作逐步细分,有利于分工协作。