Chi: Bangumi 未来实验室 » 讨论
[同步率改 v0.3]分类同步率、喜好反馈与活跃度控制
#1 - 2015-3-8 09:39
Genius🌟小乖💯 (Enjoy your (real) life!)
Dear BGMers:
我诚邀各位前往同步率改感受一下 Chi 的最新动态。正如标题所暗示的,本次更新除了算法更新之外,还为同步率增加了许多激动人心的新功能。
1. 分类同步率。现在各位可以看到自己在某一类别中的同步率。我认为,这样的改进能使得那些在独特领域有专长的 BGMer 更深入地了解 BGM 与自己持有相近兴趣的人的分布情况。
2. 喜好反馈。现在在查看你与某一位 BGMer 的时候,你可能会发现在下方写了你与他/她在某几部作品上持有相同看法。如果你和他/她的同步率降到 50% 以下,反馈可能会给出你与他/她在某几部作品上持有相反看法。@若卡 你点的菜!
3. 活跃度控制。现在在查看前十位同步率用户榜单的时候,可以加入活跃度控制选项。
另外,本次更新对于算法的详细过程,我已经 po 到了这里。几位业界人士@Kane @Glenn 如果有兴趣可以来评议一下
Cheers
Nya
我诚邀各位前往同步率改感受一下 Chi 的最新动态。正如标题所暗示的,本次更新除了算法更新之外,还为同步率增加了许多激动人心的新功能。
1. 分类同步率。现在各位可以看到自己在某一类别中的同步率。我认为,这样的改进能使得那些在独特领域有专长的 BGMer 更深入地了解 BGM 与自己持有相近兴趣的人的分布情况。
2. 喜好反馈。现在在查看你与某一位 BGMer 的时候,你可能会发现在下方写了你与他/她在某几部作品上持有相同看法。如果你和他/她的同步率降到 50% 以下,反馈可能会给出你与他/她在某几部作品上持有相反看法。@若卡 你点的菜!
3. 活跃度控制。现在在查看前十位同步率用户榜单的时候,可以加入活跃度控制选项。
另外,本次更新对于算法的详细过程,我已经 po 到了这里。几位业界人士@Kane @Glenn 如果有兴趣可以来评议一下

Cheers
Nya
顺序
#3 - 2015-3-8 10:05
Kane
(この勝利を、近所のおばさんに捧げる!)
#3-1 - 2015-3-8 13:37
Kane
对了,关于gradient descend发散的那种情况,有个小trick不知道你试过没有:可以考虑不把step_size缩太小,而是控制一下gradient的max-norm。具体说来,设置一个常数C,当||grad||_inf > C 的时候 grad <- grad / ||grad||_inf * C。我最近也在做一个用gradient procedure的东西,有些发散的情况加了这个上限就好了。
#3-2 - 2015-3-8 16:44
Genius🌟小乖💯
(从4看来你有一些重大误解,所以倒过来说了)
4. RMSE 里面计算的都是已经打分的记录与预测值的差距,没有打分的不计算。你好像认为我会给用户所有的未打分条目预测分值?我只给用户已经收藏但未打分的条目预测分值。而且这个罚项正是我想要的目的:用户已收藏未打分的估计值对同步率影响力不能太大。
3. 哦,对,是这样的。
2. U 和 V 都是 SVD,Bu(Bias of user)是用户所有打分条目中处于某一状态(如在看)平均值减去用户全部评分平均值,Bi(Bias of item)是已经减去用户平均值的作品评分基础上,某一作品处于某种收藏状态的平均值减去该作品平均评分值。
1. cross-validation 好啊,但是怎么量化表现“表达能力和泛化能力的平衡”呢?做 cross-validation 计算量超大的。哦,那个 Q 在动画类里面取了 800,我真的不知道怎么取。动画类 utility matrix 是一个40000 x 8000 的矩阵,是按照 SVD 之后的 singular value 占 trace 的比重取的吗?
4. RMSE 里面计算的都是已经打分的记录与预测值的差距,没有打分的不计算。你好像认为我会给用户所有的未打分条目预测分值?我只给用户已经收藏但未打分的条目预测分值。而且这个罚项正是我想要的目的:用户已收藏未打分的估计值对同步率影响力不能太大。
3. 哦,对,是这样的。
2. U 和 V 都是 SVD,Bu(Bias of user)是用户所有打分条目中处于某一状态(如在看)平均值减去用户全部评分平均值,Bi(Bias of item)是已经减去用户平均值的作品评分基础上,某一作品处于某种收藏状态的平均值减去该作品平均评分值。
1. cross-validation 好啊,但是怎么量化表现“表达能力和泛化能力的平衡”呢?做 cross-validation 计算量超大的。哦,那个 Q 在动画类里面取了 800,我真的不知道怎么取。动画类 utility matrix 是一个40000 x 8000 的矩阵,是按照 SVD 之后的 singular value 占 trace 的比重取的吗?
#3-4 - 2015-3-9 00:41
Kane
4的确有误解。。不过我还是觉得matrix factorization是可以和计算同步率分离的,如果想要减少特定种类的估计值对同步率影响小(比如:已收藏未打分),可以在最后求余弦距离的时候加上权重。
Q的选取除了CV还真没什么好的办法。至于如何有效地做CV,你现在好像是把条目分成了training/validation/test。其实可以直接在R里randomly挖掉一些孔(用户打分的条目)当作validation/test。。不知道这样会不会让CV快一点?
Genius、小乖 说: (从4看来你有一些重大误解,所以倒过来说了)
4. RMSE 里面计算的都是已经打分的记录与预测值的差距,没有打分的不计算。你好像认为我会给用户所有的未打分条目预测分值?我只给用户已经收藏但未打分的条...
Q的选取除了CV还真没什么好的办法。至于如何有效地做CV,你现在好像是把条目分成了training/validation/test。其实可以直接在R里randomly挖掉一些孔(用户打分的条目)当作validation/test。。不知道这样会不会让CV快一点?
#4 - 2015-3-8 10:24
Glenn
#4-1 - 2015-3-8 16:57
Genius🌟小乖💯
反正都是研究 ML 相关的,一起讨论讨论嘛,超展开难得见到一个同行啊,也不一定要搞个高下之分。nya~
1、2:Bangumi 的条目是否评分,与条目收藏状态是互相独立的。这个 bias 的目的就是要利用条目所处状态的信息,U 和 V 都不会包含状态信息。所以 Bu 是一个用户数 x 状态数(5)的矩阵。
3. 哦,我没有估计所有未评分条目,我只是估计了用户已收藏但未评分的条目的分值。
4. Oh yes you are right,不过我想多接触一些算法,用不同的模型去解决问题比如说RBM之类的
1、2:Bangumi 的条目是否评分,与条目收藏状态是互相独立的。这个 bias 的目的就是要利用条目所处状态的信息,U 和 V 都不会包含状态信息。所以 Bu 是一个用户数 x 状态数(5)的矩阵。
3. 哦,我没有估计所有未评分条目,我只是估计了用户已收藏但未评分的条目的分值。
4. Oh yes you are right,不过我想多接触一些算法,用不同的模型去解决问题比如说RBM之类的
#4-2 - 2015-3-8 17:25
Glenn
原来如此,bias是指这方面的bias啊…不过你有试过不把这五种状态分开考虑么?我觉得引入这么多bias变量可能不会增加多少performance。
Genius、小乖 说: 反正都是研究 ML 相关的,一起讨论讨论嘛,超展开难得见到一个同行啊,也不一定要搞个高下之分。nya~
1、2:Bangumi 的条目是否评分,与条目收藏状态是互相独立的。这个 bias 的目的就是要...
#4-3 - 2015-3-8 17:41
Genius🌟小乖💯
没有。我觉得状态包含的信息量还是挺大的,比如抛弃和搁置就暗示着用户会给作品评低分,而想看表达一种高期望。
Glenn 说: 原来如此,bias是指这方面的bias啊…不过你有试过不把这五种状态分开考虑么?我觉得引入这么多bias变量可能不会增加多少performance。
#5 - 2015-3-8 10:26
iahaa
#5-1 - 2015-3-8 16:59
Genius🌟小乖💯
It seems it is a bug. I am sorry for that. Maybe I am a religious scholar, but I'm not a good programmer

#6 - 2015-3-8 19:16
老大
(你谁啊?我准许你套近乎了吗?)
#6-1 - 2015-3-8 19:20
Genius🌟小乖💯
Yes!
因为为了防止具有很少收藏的人进入前十榜单,在计算的时候做了某些 trick。其实这是不科学的。但是如果我按照真实的同步率展示,BGMer 们又要说我不科学。在下一个玩具设计出来之前,这个 feature 不会有所改变。
因为为了防止具有很少收藏的人进入前十榜单,在计算的时候做了某些 trick。其实这是不科学的。但是如果我按照真实的同步率展示,BGMer 们又要说我不科学。在下一个玩具设计出来之前,这个 feature 不会有所改变。
#8 - 2015-3-9 03:06

