个性化推荐系统中的BadCase分析
针对内测用户反馈,由于前一天点击了几个动画,导致第二天推荐的动画屏占比较高,于是开始对此badcase进行分析。
首先分析了该用户的历史观看纪录,由于系统升级,日志缺陷问题,导致该用户10.15-11.3之间的日志没有收集到,但是这就出现了前面的假设不成立现象,由于没有收集到新的数据,对用户画像是不可能体现出前天的动画,动漫以及迪斯尼这些具有偏重的画像词。
首先对问题进行了分析,问题可能出现在时间间隔上,因为我们引用了时间间隔作为用户对某一电影的喜好偏爱权重的计算,导致这个问题可能有两方面原因:
1.随着时间的推移计算,某些对用户的画像的词出现了小的波动,但是这些小的波动可能会导致不可预料的后果,例如:在问题出现前对用户的画像可能是:
person艾恩·贝利:2.694,伊万·阿达勒:1.992,苏菲·玛索:1.897 label苏菲·玛索:0.451,让·雷诺:0.361,逃之夭夭:0.271,你丫闭嘴:0.271,SophieMarceau:0.226,JeanReno:0.226,八面埋伏:0.203,法国:0.169,法国电影:0.155,悬疑:0.130
但是时间推移之后某些权重开始凸显出来变成下面这样:
person阿兰·里奇森:3.979,赖虹宇:3.979,郭度沅:3.678 label迪斯尼:1.186,动画:1.129,浪漫:1.119,经典:1.028,3D:1.010,奇幻:0.940,国漫:0.900,效果好:0.800,侏罗纪公园:0.800,斯皮尔伯格:0.775
分析发现,person 中三个演员属于偏冷门演员,所以电影不会太多,label标签中迪斯尼,动画这两个具有极大的代表性,他们覆盖了动画非常之多,导致推荐的都是动画之内的,这样效果肯定不好,后期可以做一些处理,但是问题来了,是不是时间原因导致的这个情况?或者还是用户真的看了许多动画类的行为电影导致的?通过日志继续查找原因。
发现自10.17号该用户升级了APP到4.1.0,而该版本的APP有一个Bug,在发送vv日志的时候不会发送用户点击的电影ID,导致了该用户最新的观影记录没有有效的记录,导致推荐的数据都是基于以前的用户行为推荐。但是为什么动画在以前的权重这么明显呢,深入代码发现我们在日志处理环节做了一个FeedBackLogwithRate,这个处理的目的是当用户提交了已看过和不喜欢的电影,特别是已看过的电影,我们会将用户的这一行为当成该用户的一种最新行为,距离当前观影日期最近的行为,导致推荐的问题复现。
另外一方面导致这个问题的原因是在usermovieA 环节,因为我们在糅合用户画像之后与电影进行匹配的过程中,本身库中某些大标签他的电影数就多,如:韩国,爱情,成龙,周星驰,青春等,我们在这一块只是做了一个权重的排序,在这一块很难有一个区别度去对各个类别都选择,所以我当前的另外一个思路就是对某一个类别或者标签只取一定量,超过这个量就不在增加。目前还在测试中。
个性化推荐系统中的BadCase分析的更多相关文章
- Slope one—个性化推荐中最简洁的协同过滤算法
		
Slope One 是一系列应用于 协同过滤的算法的统称.由 Daniel Lemire和Anna Maclachlan于2005年发表的论文中提出. [1]有争议的是,该算法堪称基于项目评价的non ...
 - 个性化推荐系统(七)--- ABTest ab测试平台
		
个性化推荐系统.搜索引擎.广告系统,这些系统都需要在线上不断上线,不断优化,优化之后怎么确定是好是坏.这时就需要ABTest来确定,最近想的办法.优化的算法.优化的逻辑数据是正向的,是有意义的,是提升 ...
 - Paper Reading:个性化推荐系统的研究进展
		
论文:个性化推荐系统的研究进展 发表时间:2009 发表作者:刘建国,周涛,汪秉宏 论文链接:论文链接 本文发表在2009,对经典个性化推荐算法做了基本的介绍,是非常好的一篇中文推荐系统方面的文章. ...
 - 多维数组分解----SVD在推荐系统中的应用-
		
http://www.janscon.com/multiarray/rs_used_svd.html [声明]本文主要参考自论文<A SINGULAR VALUE DECOMPOSITION A ...
 - SVD在餐馆菜肴推荐系统中的应用
		
SVD在餐馆菜肴推荐系统中的应用 摘要:餐馆可以分为很多类别,比如中式.美式.日式等等.但是这些类别不一定够用,有的人喜欢混合类别.对用户对菜肴的点评数据进行分析,可以提取出区分菜品的真正因素,利用这 ...
 - RS:推荐系统中的数据稀疏和冷启动问题
		
如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题. 冷启动问题主要分为三类: (1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使 ...
 - 14、RALM: 实时 look-alike 算法在推荐系统中的应用
		
转载:https://zhuanlan.zhihu.com/p/71951411 RALM: 实时 look-alike 算法在推荐系统中的应用 0. 导语 本论文题为<Real-time At ...
 - 基于baseline、svd和stochastic gradient descent的个性化推荐系统
		
文章主要介绍的是koren 08年发的论文[1], 2.3部分内容(其余部分会陆续补充上来).koren论文中用到netflix 数据集, 过于大, 在普通的pc机上运行时间很长很长.考虑到写文章目 ...
 - Android中AppWidget的分析与应用:AppWidgetProvider .
		
from: http://blog.csdn.net/thl789/article/details/7887968 本文从开发AppWidgetProvider角度出发,看一个AppWidgetPrv ...
 
随机推荐
- 如何在数据库中存储IP地址
			
最近改一个比较老的web系统,该系统是通过账号或者ip地址(白名单)验证限制访问权限的. 由于运营的时间比较长了,发现进入网站巨卡... 原因就是:之前的数据库(sqlserver)存储ip地址是用的 ...
 - let和const关键词
			
ECMAScript 6中的let和const关键词 2013-11-28 21:46 by BarretLee, 21 阅读, 0 评论, 收藏, 编辑 ECMAScript 6中多了两个定义变量的 ...
 - 受益匪浅的材料orz
			
看到了xhr大神制作的材料 仰慕良久,受益匪浅,必将永记在心,蒟蒻长跪不起 考前一定要膜拜!
 - 用py2exe打包pyqt4出现的问题(转)
			
使用pyqt完成窗体界面很方便,但是打包成exe之后会有问题,在网上找到解决办法如下: Another Solution to the same problem: from distutils.cor ...
 - Python日期操作
			
1. 日期输出格式化 所有日期.时间的api都在datetime模块内. 1. datetime => string now = datetime.datetime.now() now.strf ...
 - Android屏幕相关设置
			
锁屏设置: 1. 初始值 : <integer name="def_screen_off_timeout">60000</integer> 2. 数据库/d ...
 - php的curl封装类
			
之前一直做爬虫相关的,每次自己去写一系列curl_setopt()函数太繁琐,我于是封装了如下curl请求类. <?php /** * @author freephp * @date 2015- ...
 - Android RecyclerView体验(一)- 简介
			
在网上关于RecyclerView的基本使用方式已经有了比较详细介绍,而且其设计结构也类似于ListView,所以本文将不重点介绍如何使用,在文末的引用中都可以相关内容.这里主要是介绍Recycler ...
 - 最新samba.tar.gz安装方法
			
看了韩顺平老师的samba.rpm包安装后,想自己也动手试试,便在samba官网找啊找,只找到一个tar.gz包,于是开始了这一段漫长的跨时两天的安装旅途... 1.首先,看看系统是否已经安装了sam ...
 - 深入浅出Redis-redis底层数据结构(下)
			
概述: 学习使用Redis,其实并不需要去研究其底层数据的实现.我们只需要了解他有哪些常用的数据类型,然后熟练使用,就可以很好的掌握Redis 这个工具了.但是这样的学习方法只适合Redis 的入门, ...