今天开始学习并记录《推荐系统实践》(项亮)一书。
为了解决信息过载,推荐系统通过一定的方式将用户和物品联系在一起,主要是两方面的理解:
系统评测用于衡量一个推荐系统性能的好坏,主要包括三类评测方法:
评测指标用于评价推荐系统各方面的性能,主要的评测指标如下:
满意度
满意度是一个隐式的指标,最直接的方式是通过用户调查去获得用户的满意度。常常采用更为直观的一些间接指标是:点击率、停留时间、转化率等。
准确度
准确度主要衡量两方面的推荐:
(a)评分预测
预测用户对电影/商品的评分,采用RMSE和MAE来进行衡量:
(b)Top-N预测
其实更多的是给用户一个推荐列表,所以其实更应该是考虑Top-N的推荐,因此得到准确度的衡量:
其中R(u)表示根据训练集得到的用户u的预测推荐列表,T(u)表示用户的行为列表,从而通过交集得到了两个列表的相似性的度量。
【Q:这里的T(u)是用户的行为列表,但是本质上也是给用户推荐的列表吗?如果这个T(u)是之前给用户推荐的列表,那么怎么能保证它一定是“真实值”呢?】
覆盖率
还要考虑推荐给用户的商品的覆盖情况,即对于内容提供商来说,商品的覆盖情况是他们所要考虑的,他们希望能够尽可能多的把自己的商品推荐给用户。其实这里也就是经常所提到的长尾理论,对于很多场景而言,20%的商品吸引了80%的流量,而剩下80%的商品只得到了很少的曝光,但是这部分商品也许包含了很多同样很有价值的商品,因此需要尽可能的把所有的商品都展示给用户。
覆盖率最简单的度量,如下coverage公式所示,也就是所有推荐过的商品占总商品数量的比例。但是仅依靠这个指标是很粗糙的,为了更好的发掘长尾价值,我们还要考虑每个商品被推荐的次数,也就是商品的统计分布,如果说所有的商品被推荐的次数都是差不多的,那我们就能认为该系统发掘长尾价值的能力很强,因此我们从统计分布的角度提出用信息熵和基尼系数进行衡量。
信息熵是对信息不确定性的度量,不确定性越大,信息熵越大。(如下图所示)。比如,假设所有的商品流行度都相等,那么p(i)=1/n,此时可以理解为:每个商品被推荐的概率是相等的,这个时候不确定性就是最大的。
基尼系数是来自经济学的一个概念,(如下图所示),可以理解成基尼系数是衡量物品流行度分布的指标,表示最不流行的x%的物品的流行度之和占总流行度的占比y%,比如下图的曲线所示,很明显在x较小的时候(不热门商品),y的增长非常缓慢,而对于x较大的时候(热门商品),y的增长非常迅速。最理想的情况就是,曲线与直线y=x重合,意味着所有的商品的流行度都是均匀分布的,之前不热门的商品此时的流行度增长速率,和热门的商品流行度的增长速率是一致的。
基尼系数越小,表示流行度分布越均匀,等于下图A的面积除以A加B的面积。比如,当所有物品的流行度都相等的时候,
,带入式子可以得到G=0。相反,假设只有最后一个物品的流行度等于M(M为对该物品产生行为的用户数),那么此时
,这个时候算出来G=1。
多样性
多样性主要衡量推荐列表的丰富度的情况,比如说用户连续看了20件衣服,那么不可能在推荐的时候给用户推荐满屏幕的衣服,而是需要对用户感兴趣的多个类别都要做一些推荐。衡量多样性,主要是考虑同一个推荐列表的物品相似度的大小,定义如下图所示,其中分母的二分之一乘以R(u)的长乘以R(u)减1的长,主要是做归一化,上面分子相似度的和最大情况就是:所有商品之间的相似度都是1,那么分子就等于C(n,2),等于
*n*(n-1)。然后对所有的用户的多样性求和取平均,就得到了整个系统的多样性度量。
新颖性
新颖性主要衡量的是推荐给用户的商品跟之前推荐的历史商品不一样,不可能一直给用户推荐相同的商品,也不可能一直给用户推荐购买过的商品,因此需要考虑推荐商品的新颖性。新颖性的粗略性度量可以是:平均流行度,一般认为流行度越高的商品新颖性越低,流行度越低的商品新颖性越高。
惊喜性
惊喜性可以理解成是,在新颖的基础之上,用户还觉得非常满意。比如给用户推荐了一个新的商品,刚好用户非常喜欢并进行了购买,那么就认为这个推荐是具有惊喜性的。
信任度
信任度主要是指用户对推荐系统的信任的情况,很明显如果用户越信任推荐系统,那么用户越可能产生购买、点击等行为。为了提高信任度,一般考虑两方面的策略:
(a)增加推荐系统透明性,主要办法是提供“推荐解释”
(b)考虑用户的社交网络,利用好友信息做推荐,并用好友进行推荐解释。
实时性
主要是希望时效性非常强,尤其在对时效性要求很高的场景,实时性尤其重要,主要包括两方面:
(a)根据用户的行为数据,实时的进行推荐
(b)对新的商品,也能够实时的推荐给用户(冷启动能力)
健壮性
任何一个带来利益的算法都会被攻击,因此需要考虑系统的健壮性。主要是两方面的措施:
(a)在使用数据前,进行攻击检测,从而对数据进行清洗
(b)设计推荐系统时,尽可能选择代价比较高的行为。比如采用“购买”行为建模,那么攻击购买行为的代价是比较高的
10.商业目标
对于企业而言,电子商务更加关注销售额,展示广告更加关注广告展示情况,点击广告更加关注广告点击率,不同的企业商业目标各不一样,推荐系统除了要满足用户的推荐需求以外,也要考虑最大化商业目标。
11.评测维度
在进行评测的时候,也要考虑从不同的维度进行评测,可以考虑从以下三个维度:
(a)用户维度
(b)商品维度
(c)时间维度
12.总结
对于可以进行离线优化的指标,其实目标就是:
最大化预测准确度
约束:
覆盖率>A
多样性>B
新颖性>C
参考文献: [1]: 项亮,推荐系统实践.