Upgrade to Pro — share decks privately, control downloads, hide ads and more …

暴走漫画数据挖掘从0到1

 暴走漫画数据挖掘从0到1

暴走漫画是国内在年轻人中颇具影响力的文化公司,产品包括社区,日报,游戏,视频。然而,随着暴漫用户的增长,运营的工作越来越重,也越来越需要照顾不同的用户。这时候数据服务团队应运而生。来到暴漫后,主要主导了 3 个方面的数据服务:搜索,推荐。这次主要和大家分享一点实践方面的经验,包括技术架构的选择,算法策略的选择等。

Michael Ding

April 16, 2015
Tweet

Other Decks in Technology

Transcript

  1. 暴⾛走漫画数据挖掘从0到1
    Michael [email protected]暴⾛走漫画(上海)

    View Slide

  2. 关于我
    ⽣生物信息学 硕⼠士
    《Git版本控制管理(第2版) 》 第⼆二版 译者
    南京 LUG 管理员
    代码托管服务(集盒)创始⼈人
    微搜索(TinySou) 创始⼈人
    暴⾛走漫画 技术总监(数据挖掘,上海技术部)
    2

    View Slide

  3. 内容概要
    搜索服务
    相关理论与原理
    核⼼心问题
    实践
    推荐服务
    相关理论与原理
    ⼀一般步骤
    协同过滤为例
    未来与挑战 3

    View Slide

  4. 构建搜索服务
    搜索是寻找资源的最好⽅方式
    4

    View Slide

  5. 搜索服务的基本流程
    5
    这⾥里的Data 是数据源(即要搜的东⻄西),可
    以是数据库,可以是⽂文件系统,也可以是
    互联⺴⽹网(⾕谷歌)

    特别注意的是这⾥里的“索引”过程,搜索引
    擎并不会直接搜索数据源,⽽而要先将数据
    源的内容索引到搜索引擎中
    索引

    View Slide

  6. 6
    索引结构:
    倒排表(Inverted Index)

    View Slide

  7. 索引(过程)的核⼼心问题
    中⽂文分词
    统计语⾔言模型
    ⼯工程实现(效果:字典,效率:算法)
    分词策略(重复索引,组合分词)
    中⽂文分词
    (英⽂文分词)
    拼⾳音分词
    n-gram 7

    View Slide

  8. 搜索的核⼼心问题
    索引查询
    倒排表查询,结果取并集(Union),作为候选
    结果排序
    TF-IDF/BM25
    vector space model
    boost(⾃自定义因素)
    机器学习
    综合以上 8

    View Slide

  9. TF-IDF/BM25
    IDF
    idf(t) = 1 + log ( numDocs / (docFreq + 1))
    TF
    tf(t in d) = √frequency
    BM25
    bm25(t in d) = tf(t in d) * (k + 1)/(tf(t in d) + k * (1-b+b*|D|/avgdl)
    Field-length Norm
    norm(d) = 1 / √numTerms
    Weight
    weight(t in d) = tf * idf * norm (using tf-idf)
    weight(t in d) = bm25 * if * norm (using bm25)
    9

    View Slide

  10. vector space model
    原理
    查询语句以及每个候选由⼀一个 vector 表⽰示, vector 中的每个值是 term 的 weight 值
    计算每个候选 vector 与 查询 vector 的 cosine 值,得分⾼高者排名⾼高
    举例:
    查询是: 暴⾛走|⼤大|事件 q = [0.8, 0.1, 0.6]
    有两个候选:
    doc1:暴⾛走|漫画 v1 = [0.82, 0, 0]
    doc2:暴⾛走|事件 v2 = [0.82, 0, 0.63]
    计算 cosine:
    cos(q, v1) < cos(q, v2)
    结论
    doc2 排名⾼高
    10

    View Slide

  11. Boost
    排序的外部因素
    PageRank
    竞价排名
    机器学习
    暴漫策略:
    浏览量/播放量 min(2.0, log(1+0.1v)
    和cos(v, q) 相加
    11

    View Slide

  12. ⼯工程实现
    基于 Elasticsearch 做索引
    设计索引结构(分词,相似策略,norm 策略)
    排序结果⼲干预
    基于 Elasticsearch 做排序(⽂文本相关性 + boost)
    跟踪⽤用户点击⾏行为,利⽤用机器学习调整隐藏因素
    12

    View Slide

  13. 构建推荐服务
    推荐是移动应⽤用的重要⽤用户留存⼿手段
    13

    View Slide

  14. 主要的推荐⽅方法
    Content-Based
    你在看⾔言情⼩小说1,可能也会看⾔言情⼩小说2
    Item-Hierarchy
    你买了打印机,所以你可能也要买墨盒
    Collaborative Filtering - Item-based
    《蝙蝠侠》和《变形⾦金刚》受众很相似,你看了《蝙蝠侠》,可能也会看《变形⾦金
    刚》
    Collaborative Filtering - User-based
    你和XXX的观影⼜⼝口味很像,XXX最近看了“暴⾛走⼤大事件”,你可能也会看
    Graph based
    你的不少微信好友都买喜欢王尼玛,你可能也会喜欢王尼玛
    Model based
    说不清楚的机器学习,告诉我正负样本,我会越来越了解你
    14

    View Slide

  15. ⼀一般步骤
    定义问题,选择推荐⽅方法(组合)
    推荐帖⼦子,结合 content-based 和 collaborative filtering
    相似度计算
    cosine similarity
    相似矩阵
    预测
    给定⼀一个⽤用户,预测他对帖⼦子的兴趣
    找出预测出的兴趣最⾼高的帖⼦子,倒序返回
    15

    View Slide

  16. 协同过滤(item-based)
    16
    user 0 user 1 user 2 user 3 user 4
    article 0 1 1
    article 1 1 2 2
    article 2 1 1
    article 3 1 1 2
    article 4 2 1

    View Slide

  17. 对于 user0,
    我们该推荐什么?
    17

    View Slide

  18. 计算 article 之间的相似矩阵
    18

    View Slide

  19. 为候选article打分
    19

    View Slide

  20. What’s Next
    Cached(速度)
    异步IO
    Distributed(速度,计算量)
    Machine Learning(更加智能)
    Julia?
    20

    View Slide

  21. 谢谢
    邮箱:[email protected]
    技术博客:http://freestorm.org
    微博:Michael爱开源
    21

    View Slide