我们会发现很多网站都具备了内容推荐的功能,不仅是像B2C电子商务类的卓越的图书推荐,也包括兴趣类网站像豆瓣的豆瓣猜等。这类功能无疑在帮助用户发现需求,促进商品购买和服务应用方面起到了显著性的效果。那么这类的推荐是怎么得到的呢?其实跟网站数据分析不无相关,我们可以来简单看一下它的原理和实现。 关联推荐在营销上被分为两类: 向上营销(Up Marketing):根据既有客户过去的消费喜好,提供更高价值或者其他用以加强其原有功能或者用途的产品或服务。 交叉营销(Cross Marketing):从客户的购买行为中发现客户的多种需求,向其推销相关的产品或服务。 向上营销是基于同类产品线的升级或优化产品的推荐,而交叉营销是基于相似但不同类的产品的推荐。举个简单的例子,可以看一下苹果的产品线: 当你购买一个ipod nano3的时候,向你推荐升级产品nano4、nano5或者功能类似的itouch就叫做"向上营销";而推荐Iphone、Mac或ipad的时候就是"交叉营销"了。 而关联推荐在实现方式上也可以分为两种:以产品分析为基础的关联推荐和以用户分析为基础的关联推荐。产品分析的关联推荐指的是通过分析产品的特征发现它们之间的共同点,比如《Web Analytics》和《Web Analytics 2.0》的作者都是Avinash Kaushik,而且书名都包含Web Analytics,都是网站分析类的书籍,同时也可能是同一个出版社……那么基于产品的关联就可以向购买了《Web Analytics》的用户推荐《Web Analytics 2.0》。而基于用户分析的推荐是通过分析用户的历史行为数据,可能会发现购买了《Web Analytics》的很多用户也买了《The Elements of User Experience》这本书,那么就可以基于这个发现进行推荐,这种方法就是数据挖掘中的关联规则(Association Rules)挖掘,其中最经典的案例就是沃尔玛的啤酒和尿布的故事。 目前很多的关联推荐还是基于产品层面的,因为实现上更为简单(对于网站而言,产品数据明显少于用户行为数据,而且可能相差好几个数量级,所以分析工作就会轻很多),基于产品的推荐更多地以上面所述的两种营销手段来实现,更偏向于传统的"推式"营销(个人对这种营销方式比较没有好感,尤其"捆绑销售"之类)。 基于用户行为分析的关联推荐 所以个人更偏向于基于用户分析的实现方式,这样更有利于发现用户的潜在需求,帮助用户更好的选择它们需要的产品,并由用户决定是否购买,也就是所谓的"拉式"营销。通过向用户推荐产品或服务,激发用户的潜在需求,促使用户消费,更加符合"以用户为中心"的理念。所以下面主要简单描述下以用户行为分析为基础的关联推荐,无论你是电子商务网站或是其他任何类型的网站,其实都可以实现这个功能,只要你具备以下前提: 1、 能够有效地识别网站用户; 2、保留了用户的历史行为数据(点击流数据(clickstream)或运营数据(outcomes)); 3、当然还需要一个不错的网站数据分析师。 这里以电子商务网站为例来说明一下关联规则的具体实现。目前大部分电子商务网站都提供用户注册的功能,而购物的用户一般都是基于登录的条件下完成的,所以这里为用户识别提供了最为有效的标示符——用户ID(关于用户识别的方法,请参考这篇文章——网站用户的识别);同时网站会把所有用户的购物数据储存在自己的运营数据库里面,这个为用户行为分析提供了数据基础——用户历史购物数据。所以满足了上述的前两个条件,我们就可以着手进行分析了。 关联规则的实现原理是从所有的用户购物数据中(如果数据量过大,可以选取一定的时间区间,如一年、一个季度等),寻找当用户购买了A商品的基础上,又购买了B商品的人数所占的比例,当这个比例达到了预设的一个目标水平的时候,我们就认为这两个商品是存在一定关联的,所以当用户购买了A商品但还未购买B商品时,我们就可以向该类用户推荐B商品。如下图: 从上图可以看到其中牵涉3个集合:所有购买过商品的用户全集U、购买了A商品的用户集合A以及在购买了A商品之后又购买了B商品的用户集合G。基于这3个集合可以计算关联规则挖掘中的2个关键指标——支持度(Support)和置信度(Confidence): 支持度=购买了A和B商品(集合G)的人数/所有购买过商品(集合U)的人数 置信度=购买了A和B商品(集合G)的人数/购买了A商品(集合A)的人数 得到这两个指标之后,需要为这两个指标设立一个最低门槛,即最小支持度和最小置信度。因为在用户的购买行为中,购买A商品的用户可能不仅购买B商品,还购买了C、D、E……等一系列商品,所以我们需要分别算出所有这些组合的支持度和置信度,只有满足比如支持度>0.2,置信度>0.6的这些商品组合才可以认为是有关联的,值得推荐的。 当然,如果你的网站不是电子商务网站,你同样可以用用户浏览网站的点击流数据实现关联推荐的功能。同样是基于用户历史行为,比如浏览了A页面的用户也浏览的B页面、观看了A视频的用户也观看了B视频、下载了A文件的用户也下载了B文件…… 数据挖掘中的关联规则挖掘一般采用基于频繁集的Apriori算法,是一个较为简单有效的算法,这里就不具体介绍了,有兴趣的朋友可以去查下资料。 在进行关联规则分析时需要注意的一些问题 @注意关联推荐的适用范围和前提条件,并不是每一类网站都适合或需要进行关联推荐的; @最小支持度和最小执行度的设立需要根据网站运营的特征设定,不宜偏高或偏低,建议基于实验或实践的基础上不断优化,寻找一个最佳的权衡点。