zoukankan      html  css  js  c++  java
  • 推荐系统之构建排行榜

    排行榜其实就是热门榜,在推荐系统中非常重要,细细嚼来,其中也蕴藏了不少学问。究竟有什么作用呢?

    一、排行榜的作用

    1)解决新用户的冷启动问题,当新用户来的时候,我们没有他的任何信息,这个时候可以将热点资讯或者物品推荐给他。

    2)发现老用户兴趣的方式。老用户兴趣比较明确了,在享受个性化推荐的同时,也可以浏览一些热点的物品,从而发现用户的新兴趣。

    3)保证推荐服务的可用性。当推荐引擎出问题或者推荐不出物品的时候,可以用热点排行榜作为一种兜底策略。

    二、排行榜算法概述

    最简单的排行榜算法,就是直接统计某些指标,例如点击数、点击率、转发量、点赞数、评论数等。但是这种简单的统计算法比较简单,容易上线,但是不太靠谱,原因如下:

    1)容易被刷榜

    2)马太效应一直存在,除非强制替换,否则一些高热的物品会一直占据榜中的位置。

    3)不能反映时间的因素,有些虽然很热,但其实已经过时了,也是2)造成的问题。

    所以,推荐系统的排行榜算法应该综合考虑各方面的因素,例如时间因素,这样才会更科学合理。

    三、加入时间因素的排行榜算法

    把排行榜想象成一个梯子,物品在奋力的向上爬,它们的动力来自用户的投票,物品本身还承受一定的重力,会从梯子上掉下来,用户的投票可以抵消部分重力,投票不及时或者不够,物品就会持续向下掉,Hacker News计算帖子热度就用了该思想,公式如下:

    1、P得票数,去掉作者自己投的票。

    2、帖子距离现在的小时数,加上帖子发布到被转帖至Hacker News的平均时长。

    3、帖子热度的重力因子。

    可以看出随着时间的增加,分母逐渐增大,帖子的热度分数会逐渐降低。重力因子的选择,根据实际情况而定,重力因子越大,帖子热度衰减的越快。

     另一种考虑时间因素的排行榜算法就是牛顿冷却定律,物品受关注度如同温度一样,不输入能量的话就会冷却,公式如下:

    H:环境温度,可以认为是平均票数

    C:为净剩票数,即时刻t得到的票数,就是最朴素的那个统计量。

    t:物品的存放时间,一般以小时为单位。

    α:冷却系数,反映物品自然冷却的快慢。

    α如何确定呢?一个直观的办法,假如一个物品在时间过去B个单位后,增加了A个投票数,但是热度分数不变,这时候就可以计算出α了。

    更多排行榜计算方法参考《推荐系统三十六式》

  • 相关阅读:
    入门练习
    课堂作业补充
    例题作业(9.1-9.7)
    stream — 创建stream(一)
    Lambda表达式的四大内置核心函数式接口
    lambda表达式基础语法及其使用
    java 按照固定大小分割 list 集合的几种方式
    分布式锁相关解决方案
    zabbix3.0 使用详解
    eclipse Memory Analyzer (mat) 安装及使用
  • 原文地址:https://www.cnblogs.com/gczr/p/11229981.html
Copyright © 2011-2022 走看看