推荐系统概述

已经很长一段时间没写过东西了,一方面确实是乱七八糟的事情比较多,另一方面也确实是懒,所以趁着现在实验室没那么多活儿要干了,想要写写博客梳理梳理自己学习的一些东西。

至于为什么会选择推荐系统,你看看我们这种转行狗的学习路径就明白了。作为一名名字听起来很吓人的理工科专业学生,coding我们是比不过那些科班的同学的,唯一可能也不一定有的优势就是咱们的数理基础相对会好一点(也不一定),所以肯定会选择算法方向,学完了机器学习和优化理论,发现没有任何项目经验怎么办,那就去参加比赛啊,前几年最常见的就是什么购买预测啊、用户推荐啊等比赛,所以自然而然地在这个过程中就开始接触推荐或者CTR,慢慢地就往这个方向发展了,you know it ,下面进入正文。

=====================================分割线====================================

首先推荐系统是个啥?大家都知道现在是一个信息爆炸的时代,每天都有海量的新信息产生,处在这样一个信息过载的情况下,无论是用户还是商家亦或是平台方都对推荐系统产生了需求。

用户是永远的上帝,推荐系统其实也就是去猜测用户的心思,对于用户而言不可能浏览完所有信息之后去选择自己最感兴趣的内容,所以需要推荐系统先给用户做一轮筛选,减少用户选择的难度,浏览更多自己感兴趣的内容;而对于商家而言,推荐系统可以把对应的商品推送给最适合的用户的,有的放矢,既提高了推广的效率,还减少了推广的成本;平台方作为用户和商家之间的桥梁,往往是推荐系统的设计者,通常需要平衡用户和商家之间的利益,一方面需要提高用户的使用体验,提高留存率,另一方面也需要维护商家的利益,提高转化率,所以推荐系统的设计通常是一个比较复杂的问题,需要权衡各方面的考量。

对于推荐算法而言主要涉及三大策略:

  1. 召回策略;

  2. Rank策略;

  3. 冷启动策略。

自己接下来写的东西大概也会按照这个顺序。

首先是召回策略,利用用户画像和内容总库做一个初筛,生成推荐候选集,用于接下来更加精确的排序。所以它的作用主要是从海量内容中选出最有可能和用户发生交互的一部分内容,因此对排序性能要求并不高,反而是希望召回的速度可以尽可能的快,所以一般都选择相对比较简单的算法,甚至是维护一个离线的倒排表,然后线上根据用户的tag迅速做个截断这样,比较常见的召回算法主要有如下几种:

  1. 基于邻域的方法-User-based CF

  2. 基于邻域的方法-Item-based CF

  3. 隐语义模型-LFM

  4. 基于深度学习的方法-Item2Vec

然后是Rank策略,也就是对召回的候选集进行排序向用户推荐。这一部分是我最感兴趣的,其实方法基本上和CTR是一致的,而且现在有各种各样的深度方法用于推荐系统的Rank,所以自己会着重进行这一部分的学习,主要包括以下内容:

  1. 浅层模型(LR及其变种)

  2. FM模型及其变种

  3. 深度方法(FNN, PNN, Wide and Deep,DeepFM,etc)

最后是冷启动策略,也就是对于新用户、新内容甚至是新平台,如何在没有充足数据的情况下进行推荐。相比于前面两个策略,冷启动可能发挥的余地没那么大,但它确实是推荐系统最重要的一环之一。

 

对于上面这些算法,首先我会阐述自己对它的理解,然后尽量每一个算法都给出自己的代码实现,如果中间有什么错误,希望大家指正,一起进步哈~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值