关于相似度计算的一些笔记
我以前狭隘地说,推荐系统之所以这么多年都没有一个质的突破,就是因为无论你中间怎么去折腾,最后都要折腾到相似度的计算上。
虽然这句话现在想想有那么点不对,但是却及其恰当地反映了相似度的重要性。这两天看了两篇关于相似度效果比较的paper。大概记了两篇笔记,就贴在这里。
上面的paper是用Google Group来做比较,具体的没有写在上面,其实一些数据即使有着偏差,但是原因是值得我们思考的。例如对于给已经加入小组推荐和没有加入小组的人推荐小组有着方差,可是方差最大的为什么全部是Sex-related呢?也许这个更可以用于我们自己的小组推荐,这就是推荐系统要做细到底能做成多细的问题。
另外一篇paper给出的其他观点并不具有普遍代表性,但是其中的一个观点很重要,我们在做user-based推荐的时候,在最终把user similarity来转换成item score的时候,往往都是用用户的相似度来做加权平均,但是在paper中利用数据证明,其实similarity score其实并没有意义,对于分数其实直接取平均即可。这个结果应该属于意料之中,因为相似度本身就是一个利用数学给强行量化的一个数字,其实超过了某个阈值之后,是0.89还是0.91其实并没有着决定性的意义。
最后虽然不是paper希望表达的一个观点,但是是值得思考的一点,我们在做KNN的时候究竟如何选择这个K。是拍脑袋定一个,还是利用A-B Test或者线下评测来学习参数。其实也许都有着局限性。对于paper中的测试数据,80%的两两相似度都在-0.05到0.05之间,也就是说明其实大部分的Neighbor都不具有相似度的意义,所以无论是选择怎样的K还是评估我们选择User-based是否合适,也许计算后来坐一个Similarity的分布图来更做一个直观的认识也许更合适。
虽然这句话现在想想有那么点不对,但是却及其恰当地反映了相似度的重要性。这两天看了两篇关于相似度效果比较的paper。大概记了两篇笔记,就贴在这里。
![]() |
![]() |
上面的paper是用Google Group来做比较,具体的没有写在上面,其实一些数据即使有着偏差,但是原因是值得我们思考的。例如对于给已经加入小组推荐和没有加入小组的人推荐小组有着方差,可是方差最大的为什么全部是Sex-related呢?也许这个更可以用于我们自己的小组推荐,这就是推荐系统要做细到底能做成多细的问题。
另外一篇paper给出的其他观点并不具有普遍代表性,但是其中的一个观点很重要,我们在做user-based推荐的时候,在最终把user similarity来转换成item score的时候,往往都是用用户的相似度来做加权平均,但是在paper中利用数据证明,其实similarity score其实并没有意义,对于分数其实直接取平均即可。这个结果应该属于意料之中,因为相似度本身就是一个利用数学给强行量化的一个数字,其实超过了某个阈值之后,是0.89还是0.91其实并没有着决定性的意义。
最后虽然不是paper希望表达的一个观点,但是是值得思考的一点,我们在做KNN的时候究竟如何选择这个K。是拍脑袋定一个,还是利用A-B Test或者线下评测来学习参数。其实也许都有着局限性。对于paper中的测试数据,80%的两两相似度都在-0.05到0.05之间,也就是说明其实大部分的Neighbor都不具有相似度的意义,所以无论是选择怎样的K还是评估我们选择User-based是否合适,也许计算后来坐一个Similarity的分布图来更做一个直观的认识也许更合适。