推荐系统 | 威尔逊区间法

我推荐一种之前在惠普做过一种排序方法:威尔逊区间法

我们先做如下设定:

(1)每个用户的打分都是独立事件。

(2)用户只有两个选择,要么投喜欢'1',要么投不喜欢'0'。

(3)如果总人数为n,其中喜欢的为k,那么喜欢的比例p就等于k/n。

这是一种统计分布,叫做"二项分布"(binomial distribution)

理论上讲,p越大应该越好,但是n的不同,导致p的可信性有差异。100个人投票,50个人投喜欢;10个人投票,6个人喜欢,我们不能说后者比前者要好。

所以这边同时要考虑(p,n)

刚才说满足二项分布,这里p可以看作"二项分布"中某个事件的发生概率,因此我们可以计算出p的置信区间。

所谓"置信区间",就是说,以某个概率而言,p会落在的那个区间。

置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度。置信区间给出的是被测量参数的测量值的可信程度,即前面所要求的“一个概率”,也就是结论的可信程度。

二项分布的置信区间有多种计算公式,最常见的是"正态区间"(Normal approximation interval)。但是,它只适用于样本较多的情况(np > 5 且 n(1 − p) > 5),对于小样本,它的准确性很差。

这边,我推荐用t检验来衡量小样本的数据,可以解决数据过少准确率不高的问题。

这样一来,排名算法就比较清晰了:

第一步,计算每个case的p(好评率)。

第二步,计算每个"好评率"的置信区间(参考z Test或者t Test,以95%的概率来处理)。

第三步,根据置信区间的下限值,进行排名。这个值越大,排名就越高。

解释一下,n为评价数,p为好评率,z为对应检验对应概率区间下的统计量

比如t-分布:

可以看到,当n的值足够大时,这个下限值会趋向p,如果n非常小,这个下限值会大大小于p,更加符合实际。

Reddit的评论排名,目前就使用这个算法。国内的化,滴滴也有部分业务涉及,效果也不错。

更新一下,没想到这个话题还是有高达9个人关注,所以这边我再说一些更细化的过程吧。

在计算排名的时候,我们通常会考虑三个事情:

1、上文讲到的,次数+好评率的分布,次数越多好评率越可靠,好评率越高该项越值得推荐。

2、时间因素,如果一个项目是10天前推送的,一个项目是昨天推送的,很明显前者的次数远大于后者。

3、影响权重,你这边只考虑了喜欢和不喜欢,其实所有的排序不可能只以1个维度考虑,通常会考虑多个维度,比如浏览次数,搜索次数等,你需要考虑每个的重要性或者说权重大小。

第一点这里就不讲了,其他方法也有很多,比如贝叶斯平均的优化版本、再比如经典的Hacker公式:

第二点时间因素:

时间越久,代表之前的投票结果对当前的影响越小,这边有很多不同的影响方式,举几个例子,比如艾宾浩斯遗忘规律:

这里的c、k决定下降速度,业务运用过程中,c值一般在[1,2],k值一般在[1.5,2.5]

比如时效衰减:

这里就是比较常见的移动窗口式的,永远只看近期某一段时间,而且时间内呈线性下降,不过可以改变变化方式。

第三点不同种的属性对于结果的影响自然不同

举个例子,用户主动搜索和用户浏览相比,用户主动搜索的情况下,用户的需求更为强烈。

通常需要判断这些强烈程度都是通过:

相关性:看因变量与自变量之间的相关系数,如:cor函数。

importance:看删除或者修改自变量,对应变量的判断影响大小,如:randomForest的重要性。

离散程度:看自变量的数据分布是否足够分散,是否具有判断依据,如:变异系数或者pca等等。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-11-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

周志华团队和蚂蚁金服合作:用分布式深度森林算法检测套现欺诈

1539
来自专栏携程技术中心

深度学习系列 | 深度学习在搜狗无线搜索广告中的应用

编者:本文来自搜狗资深研究员舒鹏在携程技术中心主办的深度学习Meetup中的主题演讲,介绍了深度学习在搜狗无线搜索广告中的应用及成果。戳上面的“携程技术中心”(...

34411
来自专栏机器之心

业界 | Poseidon:高效的分布式深度学习通信架构

选自arXiv 机器之心编译 参与:蒋思源、吴攀 近日,卡耐基梅隆大学(CMU)和 Petuum 推出了新一代高效的分布式深度学习通信架构 Poseidon。P...

2889
来自专栏机器之心

业界 | 4分钟训练ImageNet!腾讯机智创造AI训练世界纪录

2018年6月25日,OpenAI在其Dota2 5v5中取得一定成绩后介绍,其在训练中batch size取100W,而1v1的训练batch size更是达...

1072
来自专栏计算机视觉战队

小心深度学习这个“坑”(入门误区详细版)

定位:深层学习在哪 1、深层学习需要什么? 数学 线性代数:是有关任意维度空间下事物状态和状态变化的规则。 概 率:是用来衡量我们对事物在跨时间后不...

3366
来自专栏新智元

【ICML2016】谷歌 DeepMind 论文下辑

【新智元导读】深度学习重要会议 ICML2016 接收谷歌 DeepMind 9篇论文,新智元系统整理,继上篇之后,本次邀请国家千人计划专家、平安科技数据平台部...

3335
来自专栏机器之心

学界 | 多 GPU 加速学习,这是一份崭新的 XGBoost 库

梯度提升是一种可以获得当前最佳性能的监督学习方法,它在分类、回归和排序方面有很好的表现。XGBoost 是一般化梯度提升算法的实现,它在多核和分布式机器上有着高...

943
来自专栏AI研习社

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

AI 研习社按:Nicolas Papernot 在 2017、2018 连续两年的 ICLR 上都发表了关于差分隐私方法 PATE 的论文。如今大家都意识到了...

913
来自专栏目标检测和深度学习

Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

? ---- 新智元报道 来源:arXiv 编译:肖琴、克雷格 【新智元导读】深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hint...

3979
来自专栏新智元

世界纪录!4分钟训练完ImageNet!可扩展超大规模GPU收敛算法详解

【新智元导读】腾讯机智机器学习平台和香港浸会大学计算机科学系褚晓文教授团队合作,在ImageNet数据集上,4分钟训练好AlexNet,6.6分钟训练好ResN...

595

扫描关注云+社区