本文主要是介绍推荐系统入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
什么是推荐系统?
推荐系统应用场景
- 资讯类:今日头条、腾讯新闻等
- 电商类:淘宝、京东、拼多多、亚马逊等
- 娱乐类:抖音、快手、爱奇艺等
- 生活服务类:美团、大众点评、携程等
- 社交类:微信、陌陌、脉脉等
推荐系统分类
- 基于用户维度的推荐:根据用户的历史行为和兴趣进行推荐,比如淘宝首页的猜你喜欢、抖音的首页推荐等。
- 基于物品维度的推荐:根据用户当前浏览的标的物进行推荐,比如打开京东APP的商品详情页,会推荐和主商品相关的商品给你。
搜索、推荐、广告三者的异同
搜索和推荐是AI算法最常见的两个应用场景,在技术上有相通的地方。这里提到广告,主要考虑很多没做过广告业务的同学不清楚为什么广告和搜索、推荐会有关系,所以做下解释。
- 搜索:有明确的搜索意图,搜索出来的结果和用户的搜索词相关。
- 推荐:不具有目的性,依赖用户的历史行为和画像数据进行个性化推荐。
- 广告:借助搜索和推荐技术实现广告的精准投放,可以将广告理解成搜索推荐的一种应用场景,技术方案更复杂,涉及到智能预算控制、广告竞价等。
推荐系统整体架构
上面是推荐系统的整体架构图,自下而上分成了多层,各层的主要作用如下:
- 数据源:推荐算法所依赖的各种数据源,包括物品数据、用户数据、行为日志、其他可利用的业务数据、甚至公司外部的数据;
- 计算平台:负责对底层的各种异构数据进行清洗、加工,离线计算和实时计算;
- 数据存储层:存储计算平台处理后的数据,根据需要可落地到不同的存储系统中,比如Redis中可以存储用户特征和用户画像数据,ES中可以用来索引物品数据,Faiss中可以存储用户或者物品的embedding向量等;
- 召回层:包括各种推荐策略或者算法,比如经典的协同过滤,基于内容的召回,基于向量的召回,用于托底的热门推荐等。为了应对线上高并发的流量,召回结果通常会预计算好,建立好倒排索引后存入缓存中;
- 融合过滤层:触发多路召回,由于召回层的每个召回源都会返回一个候选集,因此这一层需要进行融合和过滤;
- 排序层:利用机器学习或者深度学习模型,以及更丰富的特征进行重排序,筛选出更小、更精准的推荐集合返回给上层业务。
推荐引擎核心功能和方法
其实对于推荐引擎来说,最核心的部分主要是两块:特征和算法。
特征计算由于数据量大,通常采用大数据的离线和实时处理技术,像Spark、Flink等。然后将计算结果保存在Redis或者其他存储系统中(比如HBase、MongoDB或者ES),供召回和排序模块使用。
召回算法的作用是:从海量数据中快速获取一批候选数据,要求是快和尽可能的准。这一层通常有丰富的策略和算法,用来确保多样性,为了更好的推荐效果,某些算法也会做成近实时的。
排序算法的作用是:对多路召回的候选集进行精细化排序。它会利用物品、用户以及它们之间的交叉特征,然后通过复杂的机器学习或者深度学习模型进行打分排序,这一层的特点是计算复杂但是结果更精准。
参考
- http://www.woshipm.com/pd/4223123.html
这篇关于推荐系统入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!