为什么泊松分布可以应用在推荐系统上?

最近LDA的作者之一David Blei 发了一篇paper,里面谈到用泊松分布来计算用户和商品的latent variable。但我百思不得其解,泊松分布是用来量度事件在单位时间(或其它单位)发生次数的概率分布,如何能套用在用户对某个商品的评价上呢?

仔细看了一下paper,似乎在2.1有解释,他说分两步看一个问题,第一步是用户决定一个评分的“预算”,第二步是根据这个预算去决定每个商品的评分。可是下面那两条公式是如何反应这两步的,我也看不懂。哪位大神能提点一二,不胜感激!

paper地址在此:http://auai.org/uai2015/proceedings/papers/208.pdf


其实跟高斯分布并没有多少本质的区别。

最基本的PMF只考虑了observed ratings,忽略了ratings are missing not at random,所以只适合做RMSE的优化,对Top N推荐的结果很差。Blei的论文里面的baseline大都是这种。

泊松分布的一个好处是,在Loss Function里把missing values都认为是0,但是不需要在优化的时候考虑它们。但是早就有很多论文对PMF做了类似的改进,Blei的论文没有跟这类方法做比较。这也是为什么他们最开始做泊松的论文13年就开始投,15年才发出来。

他们用类似的idea把推荐里面的几个问题灌了一遍(见nips 14, recsys 15),也真是让人无力吐槽。


写了挺多居然没有保存。。。

简单来说就是首先要读懂概率图。

首先对user有活跃度向量,描述潜在特征的活跃程度,例如是不是爱打篮球啊,爱不爱运动啊等,这些是隐式的。item有受欢迎程度的向量,例如篮球用品方面受不受欢迎啊,运动器械方面受不受欢迎啊等等,也是隐式的,这两个就是我们要求东西。那最终会不会购买这个产品,购买多少件,或者最终会不会打分,打多少分,取决于上面两个向量转置相乘得出的潜在打分的泊松分布,也就是说,虽然在各方面这个产品都符合我的需求我对它的评价还是服从泊松分布的,泊松分布描述的是在特定条件下,发生事件的平均发生次数,可以理解为购买件数,或者评价分数。

然后活跃向量及受欢迎向量由对应特征组成,特征与向量间没记错的话应该服从多项式分布,而特征服从伽玛分布,意思是一个客户在特定打分下他有某活跃特征的概率,也就是说如果某客户以前买过篮球,球鞋等,那他很大概率是喜欢篮球的。那最终我们只需要通过打分矩阵或者购买矩阵,训练a,c,abcd撇就可以求出那两个隐藏向量了,2.2介绍了快速求出acabcd撇的方法,伪代码很简单就不解释了。2.1那里只是讲解HPF能够刻画长尾效益的说明,预算那里只是描述如果客户有预算的情况下最终的购买与否的一个分布,用来替代泊松分布。粗读了1个小时希望没有曲解论文含义。


不好意思,不想看文章哈哈

但我知道你一定不太了解泊松过程。你口中的泊松过程应该是:

齐次,lambda为常数,平权的泊松过程。

实际上,泊松除了稀疏性都可以放宽。

所以用户对某件商品的购买(评价实际为非平权购买)行为完全是稀疏的,可以用泊松来模拟


不知道这样理解对不对:相对于pmf, 泊松分布更适合用户的behavior budget造成的 sparsity, 见blei他们组Scalable Recommendation with Poisson Factorization一文的3.1节


推薦閱讀:

這個讓一張圖用另外一張圖的筆觸重新演繹出來的軟體是怎麼實現的?
梯度下降演算法中的初始值和收斂條件怎樣理解?
如何評價google 開源的TensorFlow Serving?
在集成電路設計領域(數字,模擬),人工智慧有無可能取代人類?
怎麼樣理解SVM中的hinge-loss?

TAG:统计学 | 机器学习 | 推荐系统 | 统计学习 |