《推荐系统实践》—— 读后总结

[blockquote]

在刚刚毕业的时候,当时的领导就问了一个问题——个性化推荐与精准营销的区别,当时朦朦胧胧回答不出。现在想想,他们可以说是角度不同。精准营销可以理解为帮助物品寻找用户,而个性化推荐则是帮助用户寻找物品。

[/blockquote]

什么是推荐系统?

那么什么是推荐系统呢?简单的来说,就是帮助用户和物品联系起来,让信息展现在对他感谢兴趣的用户面前。

在互联网最开始兴起的时候,最便捷的帮助用户的方法就是进行分类,比如当时的雅虎,hao123等等。后来互联网兴起,这种分类已经装不下太多的信息,于是出现了搜索引擎,当用户需要什么东西的时候,可以直接主动的去获取。而推荐系统的出现,则帮助用户在没有明确的目的时,根据行为历史或者用户信息为用户提供有价值的东西。

所以一个完整的推荐系统需要包括前段的展示页面,后台的日志系统以及良好的推荐算法。

个性化的推荐系统应用

现在个性化推荐已经应用的很广泛了,比如:

  • 1 电子商务网站、亚马逊:个性化推荐、相关推荐(打包和相似产品)
  • 2 电影和视频网站,Netflix,YouTube,Hulu:基于物品用户评分进行推荐
  • 3 个性化音乐网络电台:音乐推荐难度比较大,因为考虑到用户的心情、音乐很短、免费等等
  • 4 社交网络:facebook,用户之间的网络关系、用户的偏好关系
  • 5 个性化阅读:Google Reader,Digg
  • 6 基于位置的服务:基于地理位置推送饭店
  • 7 个性化邮件:帮助筛选出优先级高的邮件
  • 8 个性化广告:CPM按照看到广告的次数收费、CPC按照点击广告的次数收费 、CPA按照最后的订单收费,个性化推荐帮助用户找到他们感兴趣的东西;广告推荐帮助广告找到对他们感兴趣的用户。 主要包括:上下文广告(通过用户浏览的内容)、搜索广告、个性化展示

基于行为数据

大多数的推荐系统都是基于用户行为的,当你浏览了一款商品,推荐列表将会更新,推荐一些与你浏览产品相关或者类似的产品。

常见的推荐算法就时基于用户或者物品的协同过滤。

  • 基于用户的协同过滤,userCF,即会搜索你的好友喜欢的东西推荐给你
  • 基于物品的协同过滤,itemCF,即搜索您喜欢的物品相类似的东西推荐给你

这两种算法都有各自的使用场景的优劣势。

推荐系统冷启动

对于很多公司都是在一定规模才引入推荐系统的,这时候已经拥有了大量的用户行为数据,做推荐算法就很容易了。但是有一些系统想在初期就引入,这就比较困难了。因为既没有大量的物品,也没有太多的用户关系,做协同过滤就很费劲了。

因此可以考虑费个性化的推荐,比如热门排行、利用用户的注册信息、社交账号、反馈信息等进行推荐。之后再慢慢调整..

在系统的初期也可以考虑选择合适的物品启动用户的兴趣,需要有比较热门、代表性和区分行。

利用用户标签数据

基于标签是一种很简单很暴力的推荐方法,给用户打上相关的标签,然后就可以基于标签进行精准营销或者个性化推荐了。

一般打上的标签都是 物品定义、种类、所有者、观点、用户胡哦哦相关的。也可以分成:类型、时间、人物、地点、语言、等等

一般的标签都是由三元组组成(用户、物品、标签)

在打标签的时候还需要注意标签的清理。

利用上下文信息

因为用户的兴趣是变化的,可能随着季节的效应而变化(比如衣服、考试资料),也可能根据购买的历史(比如你买了一样东西,以后就再也不需要买了)。

因此时间是一个很重要的上下文环境,另外就是地理位置,比如吃饭、逛街等等。

数据挖掘、机器学习、深度学习的含义

数据挖掘:

data mining,是一个很宽泛的概念。字面意思就是从成吨的数据里面挖掘有用的信息。这个工作BI(商业智能)可以做,数据分析可以做,甚至市场运营也可以做。你用excel分析分析数据,发现了一些有用的信息,然后这些信息可以指导你的business,恭喜你,你已经会数据挖掘了。

机器学习:

machine learning,是计算机科学和统计学的交叉学科,基本目标是学习一个x->y的函数(映射),来做分类或者回归的工作。之所以经常和数据挖掘合在一起讲是因为现在好多数据挖掘的工作是通过机器学习提供的算法工具实现的,例如广告的ctr预估,PB级别的点击日志在通过典型的机器学习流程可以得到一个预估模型,从而提高互联网广告的点击率和回报率;个性化推荐,还是通过机器学习的一些算法分析平台上的各种购买,浏览和收藏日志,得到一个推荐模型,来预测你喜欢的商品。

深度学习:

deep learning,机器学习里面现在比较火的一个topic(大坑),本身是神经网络算法的衍生,在图像,语音等富媒体的分类和识别上取得了非常好的效果,所以各大研究机构和公司都投入了大量的人力做相关的研究和开发。

总结下,数据挖掘是个很宽泛的概念,数据挖掘常用方法大多来自于机器学习这门学科,深度学习是机器学习一类比较火的算法,本质上还是原来的神经网络。