介绍
我们的许多音乐推荐问题都涉及为用户提供有序的项目集,以满足用户在那个时间点的收听偏好和意图。我们根据以前与应用程序的交互来提供当前的推荐,抽象地说,由于我们不断向用户推荐内容,因此我们面临着一个连续的决策过程。
强化学习 (RL) 是一种成熟的顺序决策工具,可用于解决顺序推荐问题。我们决定探索如何使用 RL 为用户打造聆听体验。在我们开始训练代理之前,我们需要选择一个 RL 库,使我们能够轻松地构建原型、测试和部署我们的解决方案。
在 Spotify,我们将 TensorFlow 和扩展的 TensorFlow 生态系统(TFX、TensorFlow Serving 等)作为我们生产机器学习堆栈的一部分。我们很早就决定将 TensorFlow Agents 用作我们的首选 RL 库,因为我们知道将我们的实验与我们的生产系统集成会大大提高我们的效率。
笔记
TFX
当您准备好将模型从研究状态切换到生产状态时,可以使用 TFX 创建和管理生产流水线。
TensorFlow Serving
TensorFlow Serving 是一种灵活的高性能机器服务系统 专为生产环境设计的学习模型。TensorFlow Serving 使 轻松部署新算法和实验,同时保持相同的服务器 架构和 API 的 API 中。TensorFlow Serving 提供开箱即用的集成 使用 TensorFlow 模型,但可以轻松扩展以服务于其他类型的 模型和数据。
我们需要的一个缺失的技术是离线 Spotify 环境,我们可以在在线测试之前使用它来离线原型、分析、探索和训练代理。TF-Agents 库的灵活性,加上 TensorFlow 及其生态系统的更广泛优势,使我们能够干净利落地设计出一个强大且可扩展的离线 Spotify 模拟器。
我们的模拟器设计基于 TF-Agents Environment 基元,并使用这个模拟器我们开发、训练和评估了物品推荐、原版 RL 代理(PPG、DQN)和改进的深度 Q 网络(我们称之为动作头 DQN(AH-DQN))的顺序模型,它解决了我们的 RL 公式的大状态和动作空间所带来的特定挑战。
通过实时实验,我们能够证明我们的线下效果估计值与线上结果密切相关。这为 Spotify 的大规模实验和强化学习应用打开了大门,这得益于 TensorFlow 和 TF-Agents 解锁的技术基础。
在本文中,我们将提供有关 RL 问题的更多详细信息,以及我们如何使用 T