V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
alexapollo
V2EX  ›  问与答

推荐系统:对于基于内容的推荐算法,应该建立全局模型还是个人模型?

  •  
  •   alexapollo · 2016-03-27 12:51:23 +08:00 · 2830 次点击
    这是一个创建于 3161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    和 News feed 相似,假如需要实现一个类似的系统,那应该建立全局模型还是个人模型?

    指的是假设有用户集 X ,用户日志集 Y ,文章集 I ,是应该针对 Y 直接做建模,还是应该针对 X 拆出 Y 中的每个用户,对每个用户建模?

    全局模型比较多用在广告上,因为用户的行为很少,很难体现用户个人的兴趣; 个人模型看起来很适合这个场景,但是数据是非常稀疏的,也非常难体现全局特征,人口统计学(年龄性别)也很难体现进来。

    9 条回复    2016-03-27 14:09:14 +08:00
    alexapollo
        1
    alexapollo  
    OP
       2016-03-27 13:00:26 +08:00
    很明显,搜狐使用的是全局模型:
    http://www.csdn.net/article/2015-07-31/2825353
    风评:效果可能不是很好
    pimin
        2
    pimin  
       2016-03-27 13:08:35 +08:00 via Android
    比较建议个人模型
    更符合个性化需求
    类似 UC 浏览器,乐视视频那样引导用户选择大类或者特征比较明显的内容进行初始化
    之后再不断根据行为特征进行判断。
    对用户感兴趣的内容不断加权。
    alexapollo
        3
    alexapollo  
    OP
       2016-03-27 13:28:01 +08:00
    @pimin 但是很明显,个人模型会出现泛化问题,在用户阅读数很少时、尤其是大多数用户选择的兴趣可能都很少时,个人模型是不顶用的 —— 它无法根据你的人口属性去做推荐。

    而且这种特征并非个人模型不可。
    换个方向讲, UC 、乐视这样的引导性内容是很合适放到全局模型里的,比如这样的 feature :
    * NBA :关注,姚明:关注, XMAN :关注
    这和个人模型没有关系,而且好使(统计意义上)。
    mfinal
        4
    mfinal  
       2016-03-27 13:51:23 +08:00 via iPhone
    @alexapollo 既然你都考虑到了。那为什么不一起用呢?
    设置一个阈值,使得针对个人推荐的情况下最坏也就是全局推荐的结果。
    新闻上还是个性比较有空间,毕竟反馈很多。
    road2stat
        5
    road2stat  
       2016-03-27 13:55:02 +08:00   ❤️ 1
    Global + Local:

    The Learning Behind Gmail Priority Inbox
    https://research.google.com/pubs/archive/36955.pdf
    pimin
        6
    pimin  
       2016-03-27 14:05:13 +08:00 via Android
    @alexapollo
    资讯类我考虑了下,确实基于内容的模型可能更好些
    因为基于用户行为的推送可能都是旧闻
    这和影视 /读书区别比较大
    命题其实就是
    协同过滤和基于内容推荐系统的对比分析
    这方面可以找到的讨论和算法都蛮多的
    具体自己搜索一下
    alexapollo
        7
    alexapollo  
    OP
       2016-03-27 14:05:41 +08:00
    @mfinal 一起用是可以的(也是我想做的),但算法上个人模型我觉得还是不够优雅:
    把个人的 ID 归入全局模型,然后针对特征做交叉,或者用 FM 等天然交叉的算法,就可以既包含全局特征,又有个人特征。
    这样的模型看起来就比较优雅,但计算量很大,而且 feature 很容易爆炸
    alexapollo
        8
    alexapollo  
    OP
       2016-03-27 14:06:50 +08:00
    @pimin 用基于内容+协同过滤做多层模型,是现在比较标准的做法
    alexapollo
        9
    alexapollo  
    OP
       2016-03-27 14:09:14 +08:00
    @road2stat 非常赞,多谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1175 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:14 · PVG 02:14 · LAX 10:14 · JFK 13:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.