算法工程师如何改进豆瓣电影 …
来源:互联网 发布:餐饮数据流程图例题 编辑:程序博客网 时间:2024/05/17 16:54
影迷们经常关注的电影排行榜里,一部由100人评出9.0分的电影,和一部由10000人评出8.0分的电影,谁应该排在前面呢?
这是我们算法工程师时常会面对的问题。
一些深度影迷可能会想到 imdb.com (互联网电影数据库)所采用的贝叶斯公式[见附注],这个公式的思路就是通过每部影片的[评分人数]作为调节排序的杠杆:如果这部影片的评分人数低于一个预设值,则影片的最终得分会向全部影片的平均分拉低。
由此可见,平衡评分人数和得分,避免小众高分影片排前,是这个计算方法的出发点。可问题在于:调节整个榜单的排序主要依赖于这个[评分人数预设值]。如果它设置的很低,那么最终的排序结果,就是每部影片自身评分从高到低在排序;如果它被设置得过高,那么只适用高曝光率的影片。据说imdb.com 的这个预设值从500一路调整到了25000,遗憾的是这个算法仍然无法很好的解决他们的问题。
我们看看国内电影市场的现状。2013年上映的《疯狂原始人》两个月内在豆瓣电影得到了13万人次的评分,而1974年上映的《教父2》,到目前为止的评分总人数还不到10万人。近几年观影方式的多样化以及影院观影的持续火爆,使得新近上映的影片很轻松地就能获得大量的评分,相较之下,老片子的曝光机会少了很多。显然,继续调节[评分人数的预设值] 已无法满足当前国内电影排行榜的实际需求。
如何解决这个问题呢?对算法工程师而言,我们通常会先用最基本的算法模型来应对,然后针对该算法带来的问题再修改并衍生出新的算法。比如针对这里的[评分人数预设值],我们可以分出老片和新片两个排行分别对待,也可以把时间因素考虑在内,如此等等。
不过这次我们决定换个做法。
在重新审视过 [豆瓣电影TOP250] 这一产品之后,我们提炼出两个关键指标:
1 它应该具备人群的广泛适应性。
例如一些动漫作品,因为拥有大量的粉丝,容易得到高分。如果采用 imdb.com的榜单公式计算,这些影片的排名就会很靠前,但它们显然不适合被推荐给非动漫迷。
我们的解决办法,是将电影划分为若干分类,每一分类对应着喜欢此类有显著代表性的人群。如此一来,排序问题就变成了推荐问题,即把某部影片分别向所有类人群做推荐,能被推荐给越多人群的电影也就越具备广泛性。
实际上,实验的结果也证明了《肖申克的救赎》这类电影的人群广泛度远远超越了《EVA》这样的动漫作品。
2 它还需要具备持续关注度,不能昙花一现。
1957年的《十二怒汉》时至今日仍然被人津津乐道,而一些票房大片上映时非常红,过后就乏人问津。如何解决他们的排序关系?
我们取得每部影片在不同时间周期内的收藏人数和评分,将其汇成一条收藏曲线,再分析不同的曲线及其间关系,计算相应的分数。
这样,更新后的算法便初步形成了。算法更新后,榜单产生了一些变化,具体哪些变化?这就去看看吧!
再说两句题外话,其实依靠简单的维度去做排序的榜单,我们平时也见的很多。这也许能解决一时的问题。对比简单排序甚至人工编辑的方式,一个算法模型在结果展示上可能没有优势,但面对环境因素的应变和扩展性上,算法有能力自我学习和进化,相信这也是产品生命力的一种体现吧。
附录: imdb.com 的top榜单公开公式
The formula for calculating the Top Rated 250 Titles gives a trueBayesian estimate:
weighted rating (WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C
where:
R = average for the movie (mean) = (Rating) -单部电影的得分
v = number of votes for the movie = (votes) -单部电影的有效评分人数
m = minimum votes required to be listed in the Top 250 (currently25000)
C = the mean vote across the whole report (currently7.0)
Tags: 算法, 豆瓣电影
- 算法工程师如何改进豆瓣电影 …
- 算法工程师如何改进豆瓣电影 TOP250
- 算法工程师如何改进豆瓣电影
- 从豆瓣电影评分算法说起
- 从豆瓣电影评分算法说起
- 简单抓取豆瓣电影
- 抓取豆瓣电影
- 豆瓣获取电影信息
- scrapy爬豆瓣电影
- python爬虫 豆瓣电影
- 本地豆瓣电影
- python抓取豆瓣电影
- Python:豆瓣电影评分
- python豆瓣电影爬虫
- Android 豆瓣电影-开源
- Android 豆瓣电影- RecyclerView
- 豆瓣电影爬虫初探
- 爬虫豆瓣电影
- 用Request方法从页面得到Html内容…
- sql server中的 SET&nbs…
- SQLSERVER编译与重编译
- SQL Server CROSS …
- left join on 和where条件的放置
- 算法工程师如何改进豆瓣电影 …
- java web项目用cookie记住用…
- 公司技术总管。net平台就是用的这…
- 解决session失效的问题
- 在JSTL中使用字符串处理函数
- Jquery 发送ajax请求,action xml…
- sip 认证分析
- jquery ajax请求返回xm…
- R语言常用函数参考