美文网首页
第一章 好的推荐系统-补充

第一章 好的推荐系统-补充

作者: 智慧IT人生 | 来源:发表于2019-08-03 21:55 被阅读0次

感受

想坚持做一件事,其实真的不容易。从这个系列的第一篇文章开始,当时制定了计划,但现实中总能找到各种理由把它抛之脑后。

现在已经是计划的第二周,但是写的还是上周应该完成的内容。

看书写文章这个事一直都在心里记着,而且之前也把计划也公布于众了,那么就应该坚持。

第三节 推荐系统评测总结

说了那么多评测指标,有的在现实中并不容易实现。推荐系统的最终目的是实现商业目标,所有的都应该以此为中心。

关于离线实验优化目标(也可以从侧面作为一个系统目标),用数学表达为:

最大化预测准确度

使得 覆盖率 > A,多样性 > B,新颖性 > C

基尼系数详解

缘由:看到覆盖率那节的时候,有个基尼系数的公式,而且作者也提供了代码实现(书中代码有误)。可是这基尼系数是怎么来的呢? 于是根据作者注解到参考文章《Evaluating Recommendation Systems》中查找,但没发现有推导过程,此文章又提到了《Evaluating Recommendation Systems》,浏览一遍后仍然没发现推导过程。后来想,算了吧,还是得自己推导吧。。。

阐述:

1. 来源(摘录维基百科):基尼系数(英语:Gini coefficient),是20世纪初意大利学者科拉多·基尼(另一说赫希曼)根据劳伦茨曲线所定义的判断年收入分配公平程度的指标[4],是比例数值,在0和1之间。

2. 迁移:基尼系数越大,代表贫富差距越大。用在推荐系统中就是:基尼系数越大,覆盖率越小,即商品的流行度(某商品在推荐中出现的次数/所有商品在推荐中出现的次数)不均匀;反之,基尼系数越小,覆盖率越大(大多数商品都能被推荐出来),则商品的流行度比较均匀。

3. 推导过程:

主要的推导目的为:G = \frac{1}{n-1} \sum_{j=1}^n (2j-n-1)p(i_{j} )

(1)图示说明。假设有10个商品,被推荐次数分别为[5,18,12,45,34,26,17,27,206,610]。根据这10个商品画出gini系数图像(代码),如下(画图时已按流行度从小到大排序):

(2)过程阐述。我们要求的目标为 gini = \frac{A}{A+B} =\frac{1/2-B}{1/2} =1-2\int_{0}^{1} L(u)du,即A的面积比上A+B的面积。由于曲线为不规则形状,方程不易求出,所以可通过积分求面积。即求每个小格子的面积,然后加起来。

符号说明:

* L(u)为蓝色曲线的方程,

W_{i} 为到第 i 个商品的流行度累计和,即W_{i} = \sum_{j=1}^i  p(i_{j} )

p(i_{j} )为第i_{j} 个商品的流行度,i_{j} 按照流行度从小到大排序后第 j 个商品,

W_{0} =0, W_{n}=1

(3)详细推导。先求积分(通过求小梯形面积和)

\int_{0}^{1} L(u)du=\frac{1}{2} \cdot \frac{1}{n} \cdot (W_{0} + W_{1}) + \frac{1}{2} \cdot \frac{1}{n} \cdot (W_{1} + W_{2}) + ... + \frac{1}{2} \cdot \frac{1}{n} \cdot (W_{n-1} + W_{n})

=\frac{1}{2n} \cdot (W_0+2W_1+2W_2+...+2W_{n-1}+W_n )

=\frac{1}{2n} \cdot (W_0+2W_1+2W_2+...+2W_{n-1}+2W_n ) - \frac{1}{2n} W_{n}

=\frac{1}{n} \sum_{i=1}^n W_{i}  - \frac{1}{2n}

=\frac{1}{n} (p_{i_{1} } + p_{i_{1} } + p_{i_{2} } + ... + p_{i_{1} } + p_{i_{2} } + ... + p_{i_{n} }) - \frac{1}{2n}

=\frac{1}{n} (np(i_{1} )+(n-1)p(i_{2})+...+p(i_{n})) - \frac{1}{2n}

=\frac{1}{n} \sum_{j=1}^n(n-j+1) p(i_{j} ) - \frac{1}{2n}

然后带入:

1-2\int_{0}^{1} L(u)du=1 - \frac{2}{n} \sum_{j=1}^n(n-j+1) p(i_{j} ) + \frac{1}{n}

=1 - \frac{1}{n} \sum_{j=1}^n(2n-2j+2) p(i_{j} ) + \frac{1}{n}

=\frac{1}{n} (n-\sum_{j=1}^n(2n-2j+2) p(i_{j} ) + 1)

=\frac{1}{n} [\sum_{j=1}^n np(i_{j} ) - \sum_{j=1}^n(2n-2j+2) p(i_{j} ) +\sum_{j=1}^n p(i_{j} )]

=\frac{1}{n} \cdot \sum_{j=1}^n (n-2n+2j-2+1) p(i_{j})

=\frac{1}{n} \cdot \sum_{j=1}^n (2j-n-1) p(i_{j})

最终推导的结果和书上不太一样,书上前面的系数为\frac{1}{n-1} ,如果认为曲线的第一个点为W_{1} ,则可得出书上的结论。不过没关系啦,在工程计算上几乎没有差别。

4. 计算过程(github)。根据上面推导的公式带入例子数据,基尼系数为:

G = 0.6992

5. 结果分析

0.6992 如果用来评价贫富差距,说明有钱人太少且非常有钱,他们占了大部分财富。

这里用来评价商品覆盖率,则商品流行度明显不均衡。

相关文章

  • 第一章 好的推荐系统-补充

    感受 想坚持做一件事,其实真的不容易。从这个系列的第一篇文章开始,当时制定了计划,但现实中总能找到各种理由把它抛之...

  • 推荐系统实践(1)——好的推荐系统

    第一章 好的推荐系统 什么是推荐系统? 和搜索引擎一样,推荐系统也是一种帮助用户快速发现有用信息的工具。和搜索引擎...

  • 《推荐系统实践》第一章学习笔记

      第一章主要是从大的角度来讲述什么是推荐系统,推荐系统的应用,和好的推荐系统的评价。 什么是推荐系统?   什么...

  • 读书笔记:推荐系统实践

    前言:传说,这是另外一本入门书。反正我已经做好了跪的打算了 第一章:好的推荐系统: 1.1 什么是推荐系统 为了解...

  • 《推荐系统实践》-(第一章)好的推荐系统

    1.1什么是推荐系统 1)推荐系统的基本任务是联系用户和物品,解决信息过载的问题。一方面帮助用户发现对自己有价值的...

  • 书籍:推荐系统实战

    第一章:好的推荐系统 1.1 什么是推荐系统? 随着互联网发展,信息越来越多,我们逐渐进入到腾讯信息过载的时代。在...

  • 核心银行系统 之二 企业架构与核心建设

    企业架构与核心建设 在读这章之前需要补充一些银行管理的知识,推荐可以参考《商业银行管理》。 从第一章核心系统的发展...

  • 推荐系统实践-好的推荐系统

    一、好的推荐系统1.什么是推荐系统从某种意义上说,推荐系统和搜索引擎对于用语来说是两个互补的工具。搜索引擎满足了用...

  • 第一章 好的推荐系统

    本章提出的问题 1. 什么是推荐系统? 2. 推荐系统有那些应用? 3. 推荐系统怎么评测? 今天是2019-07...

  • 好的推荐系统

    目录: 推荐系统是啥 目前比较成功的推荐系统 如何评判一个推荐系统的好坏 正文 什么是推荐系统 信息过载的时代 因...

网友评论

      本文标题:第一章 好的推荐系统-补充

      本文链接:https://www.haomeiwen.com/subject/jycsdctx.html