0.基础推荐系统的本质
推荐系统高端的没见过,基础的协同过滤看了不少。今天顿悟了,他们的基本数学模型。其实是在算一个概率问题:在购买了当前的产品序列的情况下,购买itemj的概率。即P(itemj | boughts)。具体说,用户协同过滤并不是很直接的概率,而是把这个概率表征为相同兴趣的人喜欢相同事物的可能性大;物品协同过滤就很简单了,通过日志计算概率P(itemi | itemj),然后取和得到P(itemj | boughts)。其他 的算法只不过是通过数学方法让这个计算过程更快捷。
1.被黑的推荐系统
豆瓣:我买俩馒头——要不要来碗米饭?淘宝:我吃完俩馒头——要不要来俩馒头?百度:老板给我俩馒头——湖南株洲馒头机制造厂。腾讯:我正要买馒头——后面拍拍我,同学来我这买,一模一样还有豆沙馅。360:让我摸一下,免费送馒头。新浪微博:我想吃馒头——你好友@某某吃过馒头。
这是黑推荐系统的一个例子,其实很明显的一个问题在于,推荐系统将购买抽象为bag of words,这样的话,购买的时间就不能起作用了,当然在计算概率时简单很多。对比自然语言处理,n-gram貌似才是好推荐系统的模型,即把购买认定为一个时间序列,行为互相影响,即马尔科夫链,计算P(itemj | <0,1,2,3>)。不过会出现很大的计算量的问题,具体的办法还在想。