精简推荐算法

工程方向的程序员看到算法相关的技术内心都会有或多或少的胆怯,但如果认真研究之后,其实会发现并没有那么难的。下面来介绍下市面上出现的各类推荐算法的实现原理:

协同过滤

什么是协同过滤?

维基百科:协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息。

简要步骤

  • 找到用户A收藏的电影。
  • 找到喜欢用户A收藏电影的用户人群集合。
  • 找到该群体喜欢的电影集合
  • 将这些电影集合排序,从重合度高到低推荐给用户A。

具体步骤

  1. 查询到A用户喜欢{movie_1, movie_2, movie_3}电影。
  2. 再根据电影集合查询到喜欢该电影的人物集合movie_1{user_1, user_3, user_5}, movie_2{user_1, user_11, user_12}, movie_3{user_1, user_3, user_7};得到人物重合比较高的集合{user_1, user_3}。
  3. 找出该群体集合喜欢的电影user_1{movie_1, movie_2, movie_3, movie_7, movie_9}, user_3{movie_1, movie_3, movie_8, movie_18}
  4. 将电影合并并去除A喜欢的电影生成集合{movie_7, movie_9, movie_8, movie_18}推荐给用户A。

内容推荐

什么是内容推荐?

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

简要步骤
- 找到用户A收藏的职位。
- 分解各个职位的内容。
- 抽象化内容的共性内容。
- 由这些共性内容找到其他职位推荐给用户A。

具体步骤
1. 得到求职者A访问过的三个职位,假设为{positions1, positions2, position3}
2. 根据职位集合得到职位内容:
position1 -> {程序员, 杭州, 薪资7000, 3年经验}
position1 -> {程序员, 杭州, 薪资8000, 4年经验}
position1 -> {程序员, 杭州, 薪资7000, 3年经验}
数据可以从数据库得到。
3. 得到的共性信息: {程序员, 杭州, 薪资7000, 3年经验}
4. 由这些共性内容查找其他职位并实施推荐
以{程序员, 杭州, 薪资7000,3年经验}为查询条件,查询职位数据库,并按照一些规则进行排序(例如,最新发布的职位先推荐,点击过的职位不推荐等),完成推荐。

注意:如果查询的结果集过小,可以缩小条件召回,例如可以将查询条件缩小为{程序员, 杭州, 薪资7000},这是为了理解举的最简单的例子。下面会统一介绍给各个维度增加权重的算法。

相似性推荐

以上介绍的两个推荐算法都是

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值