什么是基于PR?
PR是Preference Relation的缩写,翻译成中文就是”偏好关系“ ,那什么是“偏好关系”?,其实就是“喜欢哪一个更多一些”。
什么是基于Rating?
基于Rating说白了就是基于评分,比方说1-10分打分制度,或者说1-5颗星打星制度,用户需要给某个item一个具体的数字,这样在item的评价表中全是数字,比如说3,5,7.2,1.8这些。
为什么基于PR比基于Rating效果好?
比如说现在有A、B、C三个item,这三个item需要用户给出评分,但是评分的分值只能是0和1,也就是说喜欢就给1,不喜欢就给0,这种评分看似没啥问题(其实本身就没啥问题),但是你仔细一品的话,这种打分的粒度太大了。假如小明不喜欢C,所以给C打了0,这一步操作没问题,对于A和B,小明都不讨厌(注意这里说的是“不讨厌”),所以没法给它们打0,只能打1,但是对于A和B来说,虽然小明都不讨厌,但小明更喜欢A,不太喜欢B,但又没到讨厌B的地步,如果在0和1之间再多一个打分选择就好了,比如说C给0,B给0.5,A给1,这样就能很清楚地表达小明的偏好了。
如果只有0和1两种选择,对于系统来说,由于小明给A和B都是打的1,所以系统就认为小明最喜欢A和B,而且认为A和B的喜欢程度是一样的,但是实际上它不一样啊,小明更喜欢A,不太喜欢B,如果推荐的话,肯定推荐A更好。但是0/1的打分方式区间太小了,粒度太粗了,用户除了0和1没有第三种选择,就没法展现这种“不太喜欢”的情况,这就是基于rating的弊端,其实如果打分区间粒度细一些,区间大一些就能很好缓解这个问题。
如果使用基于PR的话,那就会变成这样:A>B(喜欢A多于B),A>C(喜欢A多于C),B>C(喜欢B多于C)。这种表达方式没出现任何的评分数据,甚至一个数字都没有,但是系统却能够通过上面这些信息知道小明喜欢A和B,最不喜欢C,A和B相比,小明更喜欢A,不太喜欢B,这样在推荐的时候,就不推荐与C相似的item,少推荐或者说尽量不推荐和B相似的item,大力推荐和A相似的item,这才是理想的推荐结果,而基于Rating无法区分小明更喜欢A,就会把与A相似的以及与B相似的全都推荐给小明,这样好吗?这样不好!
综上所述,基于PR能够更加清晰地描述用户的偏好,从而让推荐结果更加准确。但是基于PR就一定100%比基于Rating好吗?其实也不一定,就像我上面说的,如果基于Rating的打分区间再大一些,粒度再细一些,那么直接通过比较打分的大小也能够实现精准描述用户的偏好。
另外还有个问题,目前市面上的数据集都是基于Rating的,没有基于PR的数据集,你如果想构造基于PR的模型,还得自己把Rating转化为PR。
如果有错误的地方,欢迎大家指正,谢谢!