感受
想坚持做一件事,其实真的不容易。从这个系列的第一篇文章开始,当时制定了计划,但现实中总能找到各种理由把它抛之脑后。
现在已经是计划的第二周,但是写的还是上周应该完成的内容。
看书写文章这个事一直都在心里记着,而且之前也把计划也公布于众了,那么就应该坚持。
第三节 推荐系统评测总结
说了那么多评测指标,有的在现实中并不容易实现。推荐系统的最终目的是实现商业目标,所有的都应该以此为中心。
关于离线实验优化目标(也可以从侧面作为一个系统目标),用数学表达为:
最大化预测准确度
使得 覆盖率 > A,多样性 > B,新颖性 > C。
基尼系数详解
缘由:看到覆盖率那节的时候,有个基尼系数的公式,而且作者也提供了代码实现(书中代码有误)。可是这基尼系数是怎么来的呢? 于是根据作者注解到参考文章《Evaluating Recommendation Systems》中查找,但没发现有推导过程,此文章又提到了《Evaluating Recommendation Systems》,浏览一遍后仍然没发现推导过程。后来想,算了吧,还是得自己推导吧。。。
阐述:
1. 来源(摘录维基百科):基尼系数(英语:Gini coefficient),是20世纪初意大利学者科拉多·基尼(另一说赫希曼)根据劳伦茨曲线所定义的判断年收入分配公平程度的指标[4],是比例数值,在0和1之间。
2. 迁移:基尼系数越大,代表贫富差距越大。用在推荐系统中就是:基尼系数越大,覆盖率越小,即商品的流行度(某商品在推荐中出现的次数/所有商品在推荐中出现的次数)不均匀;反之,基尼系数越小,覆盖率越大(大多数商品都能被推荐出来),则商品的流行度比较均匀。
3. 推导过程:
主要的推导目的为:
(1)图示说明。假设有10个商品,被推荐次数分别为[5,18,12,45,34,26,17,27,206,610]。根据这10个商品画出gini系数图像(代码),如下(画图时已按流行度从小到大排序):
(2)过程阐述。我们要求的目标为 ,即A的面积比上A+B的面积。由于曲线为不规则形状,方程不易求出,所以可通过积分求面积。即求每个小格子的面积,然后加起来。
符号说明:
* 为蓝色曲线的方程,
* 为到第 i 个商品的流行度累计和,即,
* 为第个商品的流行度,按照流行度从小到大排序后第 j 个商品,
*
(3)详细推导。先求积分(通过求小梯形面积和)
然后带入:
最终推导的结果和书上不太一样,书上前面的系数为,如果认为曲线的第一个点为,则可得出书上的结论。不过没关系啦,在工程计算上几乎没有差别。
4. 计算过程(github)。根据上面推导的公式带入例子数据,基尼系数为:
G = 0.6992
5. 结果分析
0.6992 如果用来评价贫富差距,说明有钱人太少且非常有钱,他们占了大部分财富。
这里用来评价商品覆盖率,则商品流行度明显不均衡。
网友评论