推荐系统要解决的根本问题是什么?
在"信息过载"的情况下,用户如何高效获取感兴趣的信息。

"人"和"信息"之间的关系问题

从"人"的角度出发,为了更可靠地推测出"人"的兴趣点,推荐系统希望能利用大量与"人"相关的信息,这类信息包括历史行为、人口属性、关系网络等,它们可以被统称为"用户信息"。
对于某个用户U(User),在特定场景C(Context)下,针对海量的"物品"信息构建一个函数 ,预测用户对特定候选物品I(Item)的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。

矩阵分解模型和深度学习矩阵分解模型的区别


让深度学习模型的神经网络模拟很多用户兴趣的变迁过程,甚至用户做出决定的思考过程。

深度学习推荐系统的技术架构

工程师需要着重解决的问题有两类。
一类问题与数据和信息相关,即"用户信息""物品信息""场景信息"分别是什么?如何存储、更新和处理数据?
另一类问题与推荐系统算法和模型相关,即推荐系统模型如何训练、预测,以及如何达成更好的推荐效果?
一个工业级推荐系统的技术架构其实也是按照这两部分展开的,其中"数据和信息"部分逐渐发展为推荐系统中融合了数据离线批处理、实时流处理的数据流框架;"算法和模型"部分则进一步细化为推荐系统中,集训练(Training)、评估(Evaluation)、部署(Deployment)、线上推断(Online Inference)为一体的模型框架。基于此,我们就能总结出推荐系统的技术架构图。

第一部分:推荐系统的数据部分

推荐系统的"数据部分"主要负责的是"用户""物品""场景"信息的收集与处理。
客户端与服务器端实时数据处理、流处理平台准实时数据处理、大数据平台离线数据处理。
比如使用 Spark 进行离线数据处理,使用 Flink 进行准实时数据处理等等。
大数据平台加工后的数据出口主要有 3 个:
生成推荐系统模型所需的样本数据,用于算法模型的训练和评估。
生成推荐系统模型服务(Model Serving)所需的"用户特征","物品特征"和一部分"场景特征",用于推荐系统的线上推断。
生成系统监控、商业智能(Business Intelligence,BI)系统所需的统计型数据

第二部分:推荐系统的模型部分

推荐系统的"模型部分"是推荐系统的主体。模型的结构一般由"召回层"、"排序层"以及"补充策略与算法层"组成。
从推荐系统模型接收到所有候选物品集,到最后产生推荐列表,这一过程一般叫做"模型服务过程"。为了生成模型服务过程所需的模型参数,我们需要通过模型训练(Model Training)确定模型结构、结构中不同参数权重的具体数值,以及模型相关算法和策略中的参数取值。
可以分为"离线训练"和"在线更新"两部分
"离线评估"和"线上 A/B 测试"等多种评估模块

  1. 深度学习中 Embedding 技术在

召回层
的应用。作为深度学习中非常核心的 Embedding 技术,将它应用在推荐系统的召回层中,做相关物品的快速召回,已经是业界非常主流的解决方案了。

  1. 不同结构的深度学习模型在排序层的应用。排序层(也称

精排层
)是影响推荐效果的
重中之重
,也是深度学习模型大展拳脚的领域。深度学习模型的灵活性高,表达能力强的特点,这让它非常适合于大数据量下的精确排序。深度学习排序模型毫无疑问是业界和学界都在不断加大投入,快速迭代的部分。

  1. 增强学习在模型更新、工程模型一体化方向上的应用。增强学习可以说是与深度学习密切相关的另一机器学习领域,它在推荐系统中的应用,让推荐系统可以在实时性层面更上一层楼。


  • 无标签