zoukankan      html  css  js  c++  java
  • 机器学习基础7--推荐系统

    近十年以来,推荐系统迅猛发展,比如说亚马逊的商品推荐等.而Netflix的比赛,让推荐系统更广为人知.

    在YouTube,每分钟都会有上百个小时的视频汇聚,我们没法把视频一个个的看完,那么哪些视频是我们关心的?这是一个信息过载的例子.

    信息量爆炸所带来的影响非常深远,衍生出了一种个性化思想,连接用户和某一项事物.

    传统的浏览模式成为历史,我们必须寻找一种新的模式.

    推荐系统的例子:

      电影推荐

      商品推荐

      音乐推荐

      用户关系判断(比如微博上的用户之间的关系)

      药物靶相互作用(治疗感冒的药物同时也有治疗头疼的作用)

    构建一个推荐系统:

    1.根据流行度.  
      类似微博的热榜,会展现在用户面前,但是这样的推荐缺乏个性化.至少我就对哪个明星干了啥没什么兴趣.

    2.分类模型

      使用用户的信息,购买历史,商品的信息,以及其他的一些进行,通过一个分类模型,来判断用户是否感兴趣.

      但是这样做同样存在问题,比如说使用的特征可能并不全.

    3.买婴儿尿布的人也会买婴儿湿巾

      这种现象称为同现购买

      我们可以画出一个同现矩阵

    比如说我们要查看婴儿尿布的次数向量.以下对应的数量和品类:

      [0 ... 4 ... 100 ....]

      DVD 奶嘴 湿巾

    对上面的次数进行排序,很明显,湿巾是最多的数量.

    那么我们就推荐湿巾?

    克服流行商品推荐里过强:

      现在我们不买婴儿尿布了,我们买儿童玩具

      [0(DVD) ... 100W(尿布) ... 湿巾 ...]

      很明显,因为尿布的数量巨大,导致只会推荐尿布(尿布数量巨大不是因为买玩具的同时喜欢买尿布,而是因为尿布的需求量确实大).

    同现矩阵规格化:

    Jaccard相似度算法:

      同时购买商品i和j的人数 / 购买了商品i或j的人数

    也有其他的规格化算法,比如余弦相似度.

    但是这个方法也有一定的局限性,比如只会考虑当前的状态,不考虑历史情况.

    另外,如果购买了很多商品怎么办?这需要使用权重系数了.

    冷启动问题:

      这也是一个问题,就是在没有用户数据的情况下,如何进行相似度计算?

    end

    课程:机器学习基础:案例研究(华盛顿大学)

    视频链接: https://www.coursera.org/learn/ml-foundations/supplement/vAjQL/slides-presented-in-this-module

    week5 [Recommender systems,Co-occurrence matrices for collaborative filtering]

  • 相关阅读:
    坦克大战(完结篇)
    坦克大战第一节——画出自己的坦克(新手篇)
    jq动画插件,自制基于vue的圆形时钟
    原生js数值开根算法
    html引入公共模块
    js组件
    前端不缓存,ajax不缓存,js操作cookie
    c++打印实心菱形,空心三角形,十字星,空心正方形,实心平行四边形
    css元素水平垂直居中
    vue日历/日程提醒/html5本地缓存
  • 原文地址:https://www.cnblogs.com/redheat/p/9362056.html
Copyright © 2011-2022 走看看