Flink + 强化学习搭建实时推荐系统
简介: 如何根据用户反馈作出快速及时的实时推荐? 如今的推荐系统,对于实时性的要求越来越高,实时推荐的流程大致可以概括为:推荐系统对于用户的请求产生推荐,用户对推荐结果作出反馈 (购买/点击/离开等等),推荐系统再根据用户反馈作出新的推荐。这个过程中有两个值得关注的地方: 这可被视为是一个推荐系统和用户不断交互、互相影响的过程。 推荐系统需要对用户反馈作出快速及时的响应。 这两点本篇分别通过强化学习和 Flink 来实现,而在此之前先了解一些背景概念。 强化学习 强化学习领域的知名教材 《Reinforcement Learning: An Introduction》开篇就写道 : 当我们思考学习的本质的时候,脑中首先联想到的可能就是在与环境不断交互中学习。当一个婴儿在玩耍、挥舞手臂或是旁顾四周时,并没有任何老师教它,但它确实能直接感知到周围环境的变化。 强化学习的主要过程是构建一个智能体,使之在与环境交互的过程中不断学习,以期获得最大的期望奖励。它是一种非常通用的学习范式,可以用于对各种各样问题的建模,比如游戏、机器人、自动驾驶、人机交互、推荐、健康护理等等。其与监督学习的主要不同点在于:强化学习根据延迟的反馈通过不断试错 (trial-and-error) 进行学习,而监督学习则是每一步都有明确的反馈信息进行学习。 下图反映了一个推荐智能体 (recommender agent