Neo's Blog

不抽象就无法深入思考
不还原就看不到本来面目!

0%

推荐系统介绍

亲爱的读者您好,感谢您在阅读我的文章。
出于发布渠道的考虑,我可能在各个渠道更新文章不够及时。
因此,如果您喜欢我的文章,想阅读更多我的文字,
您可转到我的个人博客或者公众账号阅读文章:
file

推荐系统产生的三个背景

  1. 服务“标的物”的种类也越来越多样
  2. 个性喜好,“长尾理论”也很好的解释了多样化物品中的非畅销品可以满足人们多样化的需求,这些需求加起来不一定比热门物品产生的销售额小。
  3. 不同于生存需求,面对非生存需求,人们实际上更愿意接受被动推荐的好的物品, 比如给你推荐一部电影,如果符合你的口味,你可能会很喜欢。

推荐系统能够解决了什么问题

从本质上讲,推荐系统提升了信息分发和信息获取的效率。
推荐系统本质上是在用户需求不明确的情况下, 从海量的信息中为用户寻找其感兴趣的信息的技术手段。
推荐系统结合用户的信息(地域,年龄,性别等),物品信息(价格,产地等),以及用户过去对物品的行为(是否购买,是否点击,是否播放等),利用机器学习技术构建用户兴趣模型,为用户提供精准的个性化推荐。
推荐系统很好的满足了“标的物”提供方,平台方,用户三方的需求。

应用领域

只要存在大量的“供用户消费的商品”的互联网产品,推荐系统就有用武之地!

推荐系统的定义

推荐系统是一项工程技术解决方案,通过利用机器学习等技术,在用户使用产品进行浏览交互的过程中,系统主动为用户展示可能会喜欢的物品,从而促进物品的“消费”,节省用户时间,提升用户体验, 做到资源的优化配置。

涉及到大量的工程开发,涉及到日志打点、日志收集、ETL、分布式计算、特征工程、推荐算法建模、数据存储、提供接口服务、UI展示与交互、推荐效果评估等各个方面;

推荐系统是一种为用户提供感兴趣信息的便捷渠道,通过为用户提供信息创造商业价值;推荐系统的本质是通过技术手段将“标的物”与人关联起来,方便人获取对自己有价值的“标的物”。

常用推荐算法

  1. 基于内容的推荐
    举个例子:系统分析了某个人的浏览记录,发现他对恐怖电影分类比较感兴趣,系统便推荐更多的恐怖电影给用户。
  2. 协同过滤
    基于“物以类聚,人以群分”的朴素思想:
    “人以群分” 基于用户的协同过滤
    拿看电影这个例子来说,如果你喜欢《蝙蝠侠》、《碟中谍》、《星际穿越》、《源代码》等电影,另外有个人也都喜欢这些电影,而且他还喜欢《钢铁侠》,则很有可能你也喜欢《钢铁侠》这部电影。
    所以说,当一个用户 A 需要个性化推荐时,可以先找到和他兴趣相似的用户群体 G,然后把 G 喜欢的、并且 A 没有听说过的物品推荐给 A,这就是基于用户的系统过滤算法。
    具体参考:https://blog.csdn.net/shixiaoguo90/article/details/80253567
    “物以类聚” 基于物品的协同过滤
    当用户表达出对一个物品的喜爱后, 推荐与该物品相似的物品。
    具体参考:https://www.jianshu.com/p/27b1c035b693 https://blog.csdn.net/qq_40006058/article/details/83385324
  3. 基于模型的推荐
    基于用户行为记录,用户相关信息(年龄,性别,地域,消费习惯等),物品相关信息,构建算法模型,预测用户对物品的偏好,常用的算法有logistic回归,矩阵分解等。
  4. 基于关注关系的推荐

推荐系统的挑战

  1. 推荐系统推荐精准度的问题?

  2. 冷启动问题: 新用户、新物品没有相关行为信息, 这时系统怎么给用户推荐,怎么将新物品推荐出去, 在推荐系统落地过程中都需要做结合业务场景的特殊处理才能达到好的用户体验;

  3. 高并发,高可用;

  4. 数据缺失的问题:现实场景中一定存在用户或者物品的信息不完善,或者部分信息有误,这些也是在构建推荐算法模型过程中必须考虑和解决的问题;

  5. 非结构化的信息:用户和物品相关的信息有可能是非结构化的信息,比如图片,视频,音频,文本等,怎么高效的利用这些信息,为推荐模型提供更多信息输入, 随着深度学习在推荐系统中大规模运用,这类问题可以得到较好的解决;

  6. 一些噪音及恶意攻击也会产生大量垃圾数据,对更好的做推荐产生很大的干扰, 怎么很好的保证训练数据的质量,这是ETL和特征工程需要解决的重要问题;

  7. 大规模计算与存储:大量的用户和大量的物品,对数据处理和计算造成很大的压力,需要采用分布式技术(如Hadoop,Spark等)来做数据存储,处理,计算等, 所以要很好的落地推荐系统需要企业构建一套高效的大数据分析处理平台;

  8. 实时性:为了给用户提供实时的个性化推荐(如今日头条的新闻推荐等), 需要实时收集处理用户的反馈,做到更及时精准的推荐,为用户提供强感知的服务。对大规模用户做到实时响应,对算法,计算,处理有相当大的挑战。

  9. 怎么评估推荐算法的价值:推荐系统怎么服务于业务,怎么衡量推荐系统的价值产出,怎么为推荐系统制定业务指标,通过指标提升推荐系统效果的同时促进业务发展?这些问题都是摆在推荐系统开发人员, 甚至是公司管理者面前的重要问题, 只有很好的度量出推荐系统的价值,才能更好的优化推荐系统,发挥推荐系统的价值。

你的支持是我坚持的最大动力!