灵光一现:应对用户需求改变对某视频网站推荐算法的改进

今天听到朋友提到某国内大型视频网站公司在一次宣讲会时提到的问题,是这样的:他们公司目前的数据也是PB级别的,那么挖掘数据之间的关系,向用户推荐其需要的影视资源就成为了推荐算法在其公司的重大应用。但是,大数据分析面对的一个问题是,分布式计算的服务器只能依照已有的历史数据对当前的用户进行系统性的分析,从而得到其习惯和需求从而进行影视推荐,那么如果用户的需求改变了呢?服务器会不会依然将以前用户喜欢的东西推荐给用户?这样不就是错误推荐了吗?

事实上是这样的,服务器以及其后的分布式计算机系统都是按照人类已经写好的算法和历史数据进行计算并得到结论的,那么其计算的结果对用户的需求或者说习惯发生改变的这种情况就显得十分的不敏感。那么怎么解决这样一个问题呢?

我们现在先举这样一个例子,一位同学在小学初中高中大学,在该视频网站点击观看电影的数据。但是与正常表格不同的是,我们对该同学点击光看指定类型的电影的时间段进行了标记,即加入了Timei(i属于[1,4])这样一维的数据,如下表格所示。

加上时间维数的推荐算法数据表格
电影类型 动画动作电影 青春偶像电影 文艺哲学电影 历史纪实电影
小学-Time1 17 2 0 1
初中-Time2 5 20 4 1
高中-Time3 1 0 27 2
大学-Time4 0 0 3 19

在表格中我们可以明显的看出,该同学随着年龄的增长,喜欢看的影片类型发生着明显的变化,如果我们不对推荐算法进行改进,并且要求只能推荐一种类型的视频(为了凸显我们想要讲的问题),那么推荐算法推荐的视频就会明显的发生错误。例如,该学生初中时会推荐青春偶像电影,但大学时候会推荐高中喜欢的文艺哲学电影,等等。因此,我们要加入时间维度和时间评估函数,对该数据的时间点Timei距离目前的时间TimeNow进行TimeDistance计算,并且将计算的结果用权重的方式加入到最后的推荐算法的结果中。然后我们看到这样一来,我们就可以对数据对当前分析的影响进行有价值的而非盲目的评估了。

当然,可以也可以将时间维度作为推荐算法的一个维度加入推荐计算,但是目前我没有实践证明是用时间维度作为权值出来的结果更加精准,还是用时间维度作为推荐计算的一个维度加入推荐计算得到的结果更加精准。这个需要后期再行讨论。

总结:今天提到的这个问题本质上是对大数据算法的一种挑战,因为我们看到,大数据算法依托的都是服务器的分布式计算能力和历史的大量数据。而数据是死的,人是活的,用户很用可能会随着年龄、阅历等的增长而发生习惯、需求的改变,那么基于历史数据分析的大数据算法就会面临着算法错误的质疑与考验。这类问题确实是这半个月开始学习大数据后第一次想到,没错,即使是现在被说的神乎其神的大数据及其应用也是一定会存在有问题的漏洞的可能的。这方面还需要我们进行更加深入的学习和研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
.版本 2 .如果真 (ItemID = 3020164) item.Name = “[特魂]召雷术” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020079) item.Name = “[特魂]毕工淌” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020116) item.Name = “[特魂]魂燃一线” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020124) item.Name = “[特魂]抽芯补天” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020156) item.Name = “[特魂]续命术” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020151) item.Name = “[特魂]灵光一现” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020150) item.Name = “[特魂]万夫莫敌·0重” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020157) item.Name = “[特魂]炼丹术·0重” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020131) item.Name = “[特魂]吐纳术” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020114) item.Name = “[特魂]天赐·安神” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020072) item.Name = “[特魂]地堂霸脚” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020073) item.Name = “[特魂]凌波” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020074) item.Name = “[特魂]完璧” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020075) item.Name = “[特魂]光佑” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020076) item.Name = “[特魂]壁虎游墙” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020077) item.Name = “[特魂]猫足” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020078) item.Name = “[特魂]虚影步” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020155) item.Name = “[特魂]吸星术” item.Color = Color_3 返回 (item)翻译成c++源码
05-24
if (ItemID == 3020164) { item.Name = "[特魂]召雷术"; item.Color = Color_4; return item; } else if (ItemID == 3020079) { item.Name = "[特魂]毕工淌"; item.Color = Color_4; return item; } else if (ItemID == 3020116) { item.Name = "[特魂]魂燃一线"; item.Color = Color_4; return item; } else if (ItemID == 3020124) { item.Name = "[特魂]抽芯补天"; item.Color = Color_4; return item; } else if (ItemID == 3020156) { item.Name = "[特魂]续命术"; item.Color = Color_4; return item; } else if (ItemID == 3020151) { item.Name = "[特魂]灵光一现"; item.Color = Color_4; return item; } else if (ItemID == 3020150) { item.Name = "[特魂]万夫莫敌·0重"; item.Color = Color_3; return item; } else if (ItemID == 3020157) { item.Name = "[特魂]炼丹术·0重"; item.Color = Color_3; return item; } else if (ItemID == 3020131) { item.Name = "[特魂]吐纳术"; item.Color = Color_3; return item; } else if (ItemID == 3020114) { item.Name = "[特魂]天赐·安神"; item.Color = Color_3; return item; } else if (ItemID == 3020072) { item.Name = "[特魂]地堂霸脚"; item.Color = Color_3; return item; } else if (ItemID == 3020073) { item.Name = "[特魂]凌波"; item.Color = Color_3; return item; } else if (ItemID == 3020074) { item.Name = "[特魂]完璧"; item.Color = Color_3; return item; } else if (ItemID == 3020075) { item.Name = "[特魂]光佑"; item.Color = Color_3; return item; } else if (ItemID == 3020076) { item.Name = "[特魂]壁虎游墙"; item.Color = Color_3; return item; } else if (ItemID == 3020077) { item.Name = "[特魂]猫足"; item.Color = Color_3; return item; } else if (ItemID == 3020078) { item.Name = "[特魂]虚影步"; item.Color = Color_3; return item; } else if (ItemID == 3020155) { item.Name = "[特魂]吸星术"; item.Color = Color_3; return item; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值