zoukankan      html  css  js  c++  java
  • 推荐算法之基于内容的推荐

    基于内容的推荐定义:通过用户历史感兴趣的信息,抽象信息内容共性,根据内容共性推荐其他信息。

    适用场景:用户量少,但是用户操作的事物多


    还是以推荐电影为例子:

    简要步骤:

    a.找到用户感兴趣的电影集合(同样,如何定义感兴趣是个难点,浏览过?点赞过?观看过?)

    b.找到这些电影的具体内容(导演?电影类型?主演?字幕类型?具体定义维度也是个难点)

    c.抽象具体内容的共性内容

    d.由这些共性内容找到其他电影,进行推荐


    具体步骤

    (1)找到用户的感兴趣电影集合

    假设用户感兴趣的电影集合为{m1,m2,m3}

    (2)定义这些电影的具体内容,假设我们以{导演,电影类型,男主角,女主角,字幕类型,时长}为维度来定义

    m1->{导演1,剧情片,男主角1,女主角1,中文,100分钟}

    m2->{导演2,剧情片,男主角1,女主角2,中文,96分钟}

    m1->{导演1,剧情片,男主角1,女主角1,中文,120分钟}

    这些数据都可以在数据库中拿到

    (3)由具体内容来抽象共性内容

    例如,上面的内容的共性化电影信息是 {null,剧情片,男主角1,中文,96+分钟}

    (4)以共性内容查找其他电影

    以 {null,剧情片,男主角1,中文,96+分钟} 为条件,查询电影数据库,并按照一些规则排序(例如以电影的上映时间倒序,点击过的电影不推荐),完成推荐

    如果完成的查询的结果集太小,这可以缩小条件查询,例如,可以把时长修改为 80+ 分钟,即按照 {null,剧情片,男主角1,中文,80+分钟}条件进行查询


    基于内容的推荐的难点在于:

    1.如何定义用户感兴趣的事务集合?(跟协同过滤算法一样)

    2.如何定义具体内容的的维度?

    至于用户的操作集合倒不是难点, 用户一般都会有一些动作


    参考文章:http://mp.weixin.qq.com/s/aFRMSpqLDMtUIrAOYnbfWA



  • 相关阅读:
    frida枚举当前加载的模块以及模块中方法
    python request请求时候json严格校验怎么去除空格
    firda-so静态注册
    LeetCode 724. 寻找数组的中心索引
    LeetCode 679. 24点游戏
    LeetCode 845. 数组中的最长山脉
    并查集各种情况下的时间复杂度
    LeetCode 547. 省份数量
    LeetCode 5. 最长回文子串
    LeetCode 103. 二叉树的锯齿形层序遍历
  • 原文地址:https://www.cnblogs.com/billmiao/p/9872218.html
Copyright © 2011-2022 走看看