V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Icemic
V2EX  ›  分享创造

基于 Bangumi.tv 220 万用户评分的动画推荐工具

  •  
  •   Icemic ·
    Icemic · 2017-06-15 21:40:18 +08:00 · 5785 次点击
    这是一个创建于 2696 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是一个基于 Bangumi.tv 220 万用户评分的动画推荐工具,算是自己在推荐系统方面的入门尝试

    如题,能根据你选择的某个动画,推荐与其相似的其他动画。
    相似是指「喜欢该动画的人大多也会喜欢」
    比如找合适自己的老番来看之类的~

    最早是今年年初在 Coursera 学吴恩达的机器学习课程时练手用的,后来发现还挺准确的。
    于是花了一些时间把 Matlab 程序改成了 Python 实现,这两周继续做了网站供人查询。

    • 支持移动端,包括 Chrome 和 Safari 的「添加到主屏幕」,但不支持离线使用
    • 使用了一些新的浏览器特性,部分较旧浏览器可能会有兼容问题。

    地址:https://search.bakery.moe/ (注:使用前请先阅读「关于」)

    网站源码: https://github.com/Icemic/search.bakery.moe (欢迎 pr )

    第 1 条附言  ·  2017-06-15 22:54:05 +08:00
    注意看使用方法,搜索只是搜索,点进去才是推荐…

    各位觉得说不准的说下搜索的是哪个动画,觉得准也在下面留个言。
    特别冷门或久远的就放弃吧,样本数不够肯定不准确的,而且那时候评分人的口味也和现在人不太一样

    推荐这个东西,本来就是全体概率性的,个体不准确很正常……
    我抓朋友测的都说还不错…没骗人😂 我自己都觉得不准肯定不会发出来的……
    74 条回复    2017-06-22 20:39:27 +08:00
    rabbbit
        1
    rabbbit  
       2017-06-15 21:45:02 +08:00
    https://search.bakery.moe/search/青兰圆舞曲
    搜青兰圆舞曲,这给我推荐的啥玩意?
    Icemic
        2
    Icemic  
    OP
       2017-06-15 21:46:34 +08:00
    @rabbbit 只有在 Bangumi.tv 上有 rank 的才能搜到,青蓝圆舞曲 http://bgm.tv/subject_search/%E9%9D%92%E5%85%B0%E5%9C%86%E8%88%9E%E6%9B%B2?cat=2 不在榜单上,数据量过小,加入了也不会准确的……
    Icemic
        3
    Icemic  
    OP
       2017-06-15 21:54:32 +08:00
    @rabbbit 而且您是不是没有看说明,搜索出来的也不是推荐内容啊。

    首先要通过关键字搜索找到你要找的那个动画,点击链接进入这个动画的页面,才会显示根据该动画给出的相似推荐~
    whwq2012
        4
    whwq2012  
       2017-06-15 21:55:15 +08:00 via Android
    你这个是按关键字推荐的吧,哪里按照兴趣了,我搜我的英雄学院,出来的都是英雄和学院相关的。
    Icemic
        5
    Icemic  
    OP
       2017-06-15 21:57:32 +08:00
    @whwq2012 看楼上……
    rabbbit
        6
    rabbbit  
       2017-06-15 22:04:35 +08:00
    这样啊,点进去之后没看见右上角的'关于'按钮,以为搜索作品名会直接显示推荐.
    whwq2012
        7
    whwq2012  
       2017-06-15 22:11:45 +08:00 via Android
    @Icemic 我点进去看了,但这个推荐还是有点坑,我搜的是热血,出来的是恋爱的动漫。。
    TriiHsia
        8
    TriiHsia  
       2017-06-15 22:13:09 +08:00 via iPhone
    先不说操作逻辑,我感觉推荐给我的番剧,基于对原番剧的口味,并不是太感兴趣。没有看代码,所以不知道你是基于什么算法开展训练的。
    htfy96
        9
    htfy96  
       2017-06-15 22:36:36 +08:00
    楼主有数据吗?刚好最近想做点类似的东西
    Icemic
        10
    Icemic  
    OP
       2017-06-15 22:49:01 +08:00 via Android
    @whwq2012 注意相似的定义,不管怎么样,给你搜索的那个动画高评分的人,确实也给推荐内容高评分了………要么就是你搜索的是很冷的番……

    话说各位说不准的说下搜索的是哪个动画啊,以及,推荐这个东西,本来就是全体概率性的,个体不准确很正常……我抓朋友测的都说还不错……
    Icemic
        11
    Icemic  
    OP
       2017-06-15 22:49:18 +08:00 via Android
    @TriiHsia 协同过滤
    Icemic
        12
    Icemic  
    OP
       2017-06-15 22:50:58 +08:00 via Android
    @TriiHsia
    @whwq2012

    话说你俩的期望正好相反……一个是希望推荐的内容与原内容相近,一个说相近不感兴趣 😂😂
    TriiHsia
        13
    TriiHsia  
       2017-06-15 22:53:29 +08:00 via iPhone
    @Icemic 正因为不相近于原内容所以不感兴趣...
    Icemic
        14
    Icemic  
    OP
       2017-06-15 22:55:04 +08:00 via Android
    @TriiHsia 搜索的哪个动画?
    cqcn1991
        15
    cqcn1991  
       2017-06-15 22:55:06 +08:00
    @Icemic 我最近也在看推荐系统
    所以你只是用的协同过滤?相关的算法 /包是啥?能看看不?
    Icemic
        16
    Icemic  
    OP
       2017-06-15 22:57:28 +08:00 via Android
    @cqcn1991 基本上和吴恩达课上讲的一样,有低秩矩阵分解做 PCA 拿到的特征
    cqcn1991
        17
    cqcn1991  
       2017-06-15 23:00:08 +08:00
    @Icemic 看你 Github 介绍...难道是我土木出身? 然后你 blog https 挂了貌似
    cqcn1991
        18
    cqcn1991  
       2017-06-15 23:02:17 +08:00
    @Icemic 然后,按照我这几天看的推荐系统。。。。
    基本的协同过滤,我感觉称为“相关物品”更佳,因为“推荐”不止是相似的东西。但是经典的协同貌似只能做到这个程度。
    典型的应用场景就是 Amazon 的相关商品

    我们对推荐系统,其实很看重 serendipity,完全是另外一个 measure 了
    grzhan
        19
    grzhan  
       2017-06-15 23:42:09 +08:00
    感觉挺不错的。

    不准的话
    搜了下“永生之酒”,觉得相关的应该会出现“无头骑士异闻录”,没有出现,返回最相关的是 JOJO
    搜了下“剑风传奇”,觉得相关的应该会出现“大剑”,没有出现,返回最相关的是 Dimension W
    搜了下“白箱”,觉得相关的应该会出现这季的“樱花任务”,或者 “ New Game ” 这样的职场番,没有出现,返回最相关的是蜂蜜与四叶草

    不知道作者说的比较准确的例子有哪些,也想看一下。
    AstroProfundis
        20
    AstroProfundis  
       2017-06-15 23:46:52 +08:00
    居然没有茶话会联动贴?
    sinker
        21
    sinker  
       2017-06-15 23:47:52 +08:00 via iPhone
    @AstroProfundis 这不科学
    grzhan
        22
    grzhan  
       2017-06-15 23:49:34 +08:00
    看到回复说用的算法说是“协同过滤”
    如此的话,相似的作品是指 [受众类似的作品] ,而非 [风格类似的作品] ?
    这样来看算法还是有一定效果的。
    AstroProfundis
        23
    AstroProfundis  
       2017-06-15 23:51:05 +08:00
    @sinker (bgm38)

    不过随便点了几下似乎效果还看得过去
    Icemic
        24
    Icemic  
    OP
       2017-06-16 00:50:07 +08:00 via Android
    @cqcn1991

    协同过滤分为基于物品和基于用户两种,但这个哪个都不属于……硬要说的话大概是基于物品更多一点

    而且我并没有真的想以推荐系统为目标,我就是要一个给我推荐我会感兴趣的东西。这个东西就是因为 X 对 A 评分高,对 B 评分也高,那么我对 A 评分高,则对 B 也可能评分高,这样一个单纯的逻辑。在物品足够多的时候,足以体现一个人的喜好特征,反过来物品也是一样。

    除此之外,也并没有更多的数据能够实现你说的更复杂的系统……

    土木没问题…就是那个意思。

    @grzhan

    说明大家的兴趣可能并不想我们想的那样。我举几个例子:

    1. 黄金拼图。萝莉番,相似推荐包括点兔在内,基本都是萝莉番…这个经过我某个点兔难民朋友验证了
    2. 系列性质的:空之境界、柯南剧场版、大雄剧场版。空之境界极为密集,后两个只有年代相近的才会推荐,这是人群特征决定的。(慢慢的都会脱宅……)
    3. 一个特别的例子:fate 系列,fsn 两部 tv 和一部剧场版特别接近,但 fz 却离他们很远………还记得当初 fz 出来的时候两极分化的评价吗?这也是人群的问题
    4. 自新世界,绝园的暴风雨,psycho pass,三个知名的反乌托邦,互相直接有微弱的联系,但排名不是很靠前
    5. 嗯……里番…………反正你搜索一个试试就知道了
    6. 缘之空,日在校园,公主恋人,euphoria ……嗯……老司机经常和在一起骗萌新的几个
    7. 凉宫春日系列。作为时代的眼泪,推荐的只有那个年代的著名日常 /恋爱番,和新人已经不看凉宫的悲伤事实吻合………
    8. 星际牛仔。bgm 排名第一,相似推荐和 bgm 榜单几乎一样……大概是马太效应……
    9. 天空之城。全部宫崎骏或吉卜力工作室


    也有我比较疑惑的:
    new game,几乎和点兔是一类的……难道是社畜多萝莉控?

    你会发现我举的都是最近的热门动画或经典动画,因为这些数据量足。而不足的那些,则有很强的当时年代的烙印,很多人觉得「不准」就来自于此。

    另一方面,推荐不能只看排名,封面上还有一个相似度呢……基本上低于 80%就可以认为缺少联系,高于 90%一般比较靠谱。有的推荐就算是排名第一的那个,也只有 80+%的相似度,说明这个动画本身就是比较独一无二的,没有与其特别近似的。也就无法强求相似的推荐了。

    大概就是这些,大家可以补充,其实我觉得思考这里面的联系还是蛮有意思的。


    @grzhan

    对的,是受众类似。
    ks3825
        25
    ks3825  
       2017-06-16 01:22:51 +08:00 via Android
    最近在看 KILL la KILL,是一部燃到掉渣的作品,就搜了一下

    本来以为必定会出现天元突破的,结果力荐马男波杰克两季和降世神通两季…而且大多相似度都在 90%以上…我的内心是崩溃的

    双斩少女有那么像美漫么。推荐了鲁邦三世,还是说我已经老了…………
    kslr
        26
    kslr  
       2017-06-16 01:28:29 +08:00
    Ublock 默认把 body 给全屏蔽了。。。
    kslr
        27
    kslr  
       2017-06-16 01:30:46 +08:00
    楼主你的依赖这么多,是怎么做到 index.js 这么小的?
    Yinz
        28
    Yinz  
       2017-06-16 01:38:29 +08:00
    试了一下,感觉还是很不错的。
    另外可能是因为协同过滤的原因,如果搜的是非常热门的番,推荐出来的也是另外一些非常热门的番(小圆->物语系列)。有种不知道怎么说的感觉,虽然确实热门番喜欢的可能性更大,但是这两个番相似度不高的话,可能并不适合拿来作为推荐?这样看来是不是基于内容的推荐会更适合『番剧推荐』这样的应用场景呢?

    最近正好也在寻找一些能够练手的推荐系统项目,不知能不能拿到楼主的数据,就不用我自己爬了 :D
    grzhan
        29
    grzhan  
       2017-06-16 03:15:30 +08:00
    @Icemic 嗯嗯,挺好的,加油
    zhucelws
        30
    zhucelws  
       2017-06-16 08:27:09 +08:00   ❤️ 1
    Rice
        31
    Rice  
       2017-06-16 08:31:56 +08:00
    发现推荐的结果好像都是和这个番相近时期的动画。
    老番会推荐老番,新番就推荐新番。
    斩服少女的推荐里没天元突破,估计是天元突破太老了,而且看的已经不是同一批人了?
    Explorare
        32
    Explorare  
       2017-06-16 08:39:29 +08:00   ❤️ 3
    建议加强对里番内容的训练,能分辨各种种族、PLAY 和流派(比如时间静止、恶堕等),谢谢。
    levywang
        33
    levywang  
       2017-06-16 09:03:00 +08:00 via Android
    搜希德尼娅的骑士,推荐的全是有骑士的番,你这是关键字推送吧🙄
    Rice
        34
    Rice  
       2017-06-16 09:09:44 +08:00
    @levywang #33 你把搜索当推荐了
    momocraft
        35
    momocraft  
       2017-06-16 09:34:12 +08:00
    可以发去茶话会 (bgm38)
    fireattack
        36
    fireattack  
       2017-06-16 09:39:07 +08:00
    应该去 bgm 发一份吧
    Tunar
        37
    Tunar  
       2017-06-16 09:41:01 +08:00 via Android
    交响诗篇=交响情人梦。。。?
    Tunar
        38
    Tunar  
       2017-06-16 09:43:23 +08:00 via Android
    看差了,sorry
    fireattack
        39
    fireattack  
       2017-06-16 09:45:50 +08:00
    为啥只有“准确”的反馈没有“不准确”?
    Icemic
        40
    Icemic  
    OP
       2017-06-16 10:07:53 +08:00
    @kslr

    主要都是后端的依赖,另外前端还有个 vendor.js 呢

    @fireattack

    因为只有一个正向的反馈就够了
    等下去 bgm 发
    cqcn1991
        41
    cqcn1991  
       2017-06-16 10:10:14 +08:00
    @Icemic 如果是 TJU 的本科土木的话...感觉很 NB....
    langxuan
        42
    langxuan  
       2017-06-16 10:11:24 +08:00
    @Icemic
    5. 嗯……里番…………反正你搜索一个试试就知道了


    搜完感觉更不准确了......
    nicoljiang
        43
    nicoljiang  
       2017-06-16 10:28:26 +08:00
    本来打了好多字,后来想还是算了。。。无非是想说,这么简单的计算根本算不上机器学习,顶多一个统计而已。

    最近 V2 聚集了越来越多的动漫二次元党,优点是对很多事都会很认真,甚至较真。但是对很多东西认知特别浅就把东西发出来秀,然后普遍玻璃心、易怒,虽然完全不知道是男是女,但看起来好像都是 LOLI 的样子。
    geew
        44
    geew  
       2017-06-16 10:47:52 +08:00
    这相似度怎么算的
    Icemic
        45
    Icemic  
    OP
       2017-06-16 11:01:29 +08:00
    @geew 看相似度值已经很低了,说明没有特别相似的……不要觉得会搜出混沌头之类的,有多少会去看据说崩了的动画呢……
    Icemic
        46
    Icemic  
    OP
       2017-06-16 11:02:55 +08:00
    @nicoljiang

    呃,您这个批评还真是无法反驳呢……因为反驳了反而证明了您的观点……

    不过,这是吴恩达钦点的叫机器学习的东西……我不懂所谓统计如何做到这些……或许您可以讲讲您对它算法的理解?
    denghongcai
        47
    denghongcai  
       2017-06-16 11:06:50 +08:00


    这……
    geew
        48
    geew  
       2017-06-16 11:07:12 +08:00
    @Icemic #45 相似度值是哪个 不是图片上的 86.5%
    SoulGem
        49
    SoulGem  
       2017-06-16 11:09:17 +08:00
    打不开啊
    Icemic
        50
    Icemic  
    OP
       2017-06-16 11:12:58 +08:00
    @denghongcai

    这是搜索…………
    你们要是都既不看说明也不看评论就用,那我也没办法……

    @geew

    就是那个

    @SoulGem

    服务器在东京,所以上海电信之类的用户我也没办法 orz 用代理什么的吧……
    geew
        51
    geew  
       2017-06-16 11:19:38 +08:00
    @Icemic #50 那 85.6% 不低了吧
    Icemic
        52
    Icemic  
    OP
       2017-06-16 11:24:51 +08:00
    @geew

    低啊……基本上低于 80%就可以认为缺少联系,高于 90%一般比较靠谱。有的推荐就算是排名第一的那个,也只有 80+%的相似度,说明这个动画本身就是比较独一无二的,没有与其特别近似的。也就无法强求相似的推荐了。
    geew
        53
    geew  
       2017-06-16 11:26:49 +08:00
    @Icemic #52 相似度百分之八十还低.... 额
    Spoter
        54
    Spoter  
       2017-06-16 12:13:46 +08:00
    那叫动漫谢谢。妈蛋,我还以为是动效推荐呢
    shanks
        55
    shanks  
       2017-06-16 12:38:14 +08:00
    这个相似度不太行。。。搜进击的巨人,出来了四月谎言。。
    还是豆瓣推荐比较靠谱。。 寄生兽,东京啃种,心理测量者。。
    sinker
        56
    sinker  
       2017-06-16 12:48:34 +08:00
    @Spoter 动漫等于动画+漫画谢谢
    Yinz
        57
    Yinz  
       2017-06-16 13:27:32 +08:00
    看起来楼主并不想理我 :(
    ryd994
        58
    ryd994  
       2017-06-16 13:52:13 +08:00
    希德尼亚的结果不算差,拉到下面开始混入当季热门
    我觉得楼上有问题的主要是因为那几个都是当季的大热门,其实很多人都看过。
    没有很好的区分“喜欢”的联系和“随便追个番 / 吃快餐”的联系

    希望能基于多个番综合推荐:
    用户添加若干自己喜欢的番,综合根据这些番来推荐

    @levywang https://search.bakery.moe/item/77476 不是吧
    ryd994
        59
    ryd994  
       2017-06-16 14:02:52 +08:00
    @ks3825 Kill la Kill 这个老美真的很喜欢。特点:燃,动作流畅,没剧情。这整个一典型美漫。
    我是没什么感觉,被同学安利了去看了。也就 Blumenkranz 比较喜欢。
    skylancer
        60
    skylancer  
       2017-06-16 14:22:25 +08:00
    看到这帖,我才想起来好多年没登录过 bgm 了..
    sola97
        61
    sola97  
       2017-06-16 15:16:10 +08:00
    @rabbbit #1 无形开车
    ss0xt
        62
    ss0xt  
       2017-06-16 17:31:05 +08:00
    scgy5555
        63
    scgy5555  
       2017-06-16 18:23:52 +08:00
    看来这个世界上又多了 220 万蠢货
    AX5N
        64
    AX5N  
       2017-06-16 18:56:05 +08:00
    @Spoter 连词语的含义都没搞清楚就去教别人...
    Icemic
        65
    Icemic  
    OP
       2017-06-16 19:51:26 +08:00
    @Yinz

    呃,好像看漏了……抱歉
    我想做基于人群多一些,如果要同类推荐的话,其实很容易从圈子其他人中获得信息,因为人的知识归纳偏向于标签性。

    @ryd994

    感谢建议!

    @ss0xt

    ………我对不好好看帖子或者说明的人无话可说了……毕竟已经重复了 n 遍了,我不知道怎么样才能让你们这类人明白:搜索只是搜索,点进去才是推荐…………

    @scgy5555

    ???首先您语文没学好,220 万是评分,不是用户。
    再者,您跟 bgm 用户有什么仇吗……?(bgm38) 多与自己和解吧
    Yinz
        66
    Yinz  
       2017-06-16 20:03:35 +08:00
    @Icemic hhh 回复多的时候我也漏过别人的回复。

    最近发现好像 v 站有一小部分人莫名的对别人充满敌意,只要见到相关的标题就会跑进来看甚至都不看内容直接开喷。。。
    frittle
        67
    frittle  
       2017-06-16 20:33:50 +08:00
    只试了《斗牌传说》,个人觉得推荐的都不怎么相似,尤其无法理解为啥推荐列表里《大魔法峠》是相似度最高的。
    TriiHsia
        68
    TriiHsia  
       2017-06-16 22:01:06 +08:00 via iPhone
    @Icemic 又试了一下,感觉还不错。我一开始搜的是部新番,抱歉没看关于...
    ryd994
        69
    ryd994  
       2017-06-16 23:07:55 +08:00 via Android
    @Icemic 这么多人用错说明你 UI 设计有问题
    根据关键词的结果不要说“查询结果”,建议改成“找到多个重名番组”之类的
    ss0xt
        70
    ss0xt  
       2017-06-17 10:48:17 +08:00
    @Icemic #65 我发个搜索的链接怎么了?有问题吗?也没说你这是推荐后的结果啊,别扯到没看说明什么的,我又没说你这推荐不行,或者其他什么,别动不动就你们这类人你们这类人,zz
    Icemic
        71
    Icemic  
    OP
       2017-06-17 12:53:35 +08:00 via Android
    @ss0xt 那你什么意思?


    @ryd994 我已经反复给说明了,我 ui 水平就这样,你觉得有问题欢迎 pr~
    ss0xt
        72
    ss0xt  
       2017-06-18 10:53:04 +08:00
    @Icemic #71 很简单,就发个链接而已,没那么多的意思,
    8qwe24657913
        73
    8qwe24657913  
       2017-06-21 22:19:06 +08:00

    Icemic
        74
    Icemic  
    OP
       2017-06-22 20:39:27 +08:00
    @8qwe24657913 收到,因为目前还未播放完,bgm 上没有具体的集数数据。另外搜索当季新番是完全不准的,因为大部分人都还没有评分 w
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:27 · PVG 21:27 · LAX 06:27 · JFK 09:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.