svd++怎样用于评分值只有0和1的推荐场景中
谢邀。
个人觉得任务不同的话就得改写损失函数来满足特定的问题,对于二分类问题,可将平方损失改为交叉熵损失。
■网友
改损失函数就行,广义线性模型里面各种损失函数,总有一款适合你!损失函数拿过来用就行,线性假设就不要硬搬过来了!评分预测不过是假设为高斯分布,极大似然估计就是最小化均方误差。你这个改为01分布的极大似然估计的损失函数,就是逻辑回归的损失函数!
■网友
我比较好奇的点是,你的目标是什么?是用svd++解决二分类么?如果是的话就比较费解了。本身svd++是推荐领域的产物,做二分类有很多优秀的分类算法可以采用,为什么要用svd++呢?此外,从你的问题里,我认为还是对svd++有些理解不清晰的地方。svd++是svd么?svd++和协同过滤是什么关系?我们是因为要解决协同的问题而引入了矩阵分解的方法,进而联想到了可以用svd++这种方法去解决问题。至于你说的评分矩阵是0和1的问题。其实电影评分也是一个N,0评分。如果是推荐场景下,我们完全可以引入隐反馈数据来模拟实际的评分场景,达到N,0的效果。我觉得比较重要的点是你要先review下自己的方案,看下算法场景再决定算法的选取。不要想当然的就决定要用某一个算法。
■网友
个人觉得 0/1 分类也可以用svd++直接做回归阿,就当评分只有0分和1分,应该也能收敛吧..
不过分类问题的label也不一定要就是0/1,可以是个归一化以后的概率值,如果有概率值,用svd++或者NMF听起来就没0/1那么别扭。
一个可能比较好的做法是按照WMF的思想,label值还是0/1不变,而是给label一个confidence,然后去修改loss function. ( http://yifanhu.net/PUB/cf.pdf )
■网友
刚好接触过相关的东西,给个sample code。
TagineerDai/Bayesian-Personalized-Ranking
上面的链接是用BPR(Bayesian Personalized Ranking)进行电影评分值5分类的。其本质是在单个用户
的评分数据中,把对电影 【svd++怎样用于评分值只有0和1的推荐场景中】
绝对的1-5的评分值
,和
对另一个随机取的电影
的评分
的差值表示如下:
则我们会为每一个用户保存一张拓扑图,即对loss进行了一些改动,手动消除了不同用户打分时存在的ranking的偏差,只保留了相对的拓扑关系。当然,5分类可建模的拓扑关系已经有一些了,不清楚二分类是否适合这么做,跑完欢迎交流结果。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
