专栏首页相约机器人RecSim:推荐系统的可配置仿真平台

RecSim:推荐系统的可配置仿真平台

机器学习,语音识别和语言技术的重大进步正在迅速改变推荐系统与用户互动的方式。因此协作交互式推荐器 (CIR) — 推荐系统与用户进行了有意的交互,以最好地满足该用户的需求已经成为在线服务的切实目标。

尽管如此,CIR的部署仍受到开发能反映顺序定性特征的算法和模型的挑战的限制。用户互动。强化学习(RL)是解决顺序决策问题的事实上的标准ML方法,因此是在推荐系统中建模和优化顺序交互的自然范例。但是在CIR中无论是在研究还是在实践中,对它的研究仍未得到充分研究和利用。一个主要障碍是缺乏用于顺序推荐器设置的通用仿真平台,而仿真已成为在诸如机器人技术的现实应用中开发和评估RL算法的主要手段之一。

为了解决这个问题,开发了RecSim,一个可配置的平台,用于编写仿真环境,以促进研究推荐系统(尤其是CIR)中的RL算法。RecSim允许研究人员和从业人员在综合推荐环境中测试现有RL方法的限制。RecSim的目的是支持模拟真实推荐系统中用户行为特定方面的模拟,并作为受控环境来开发,评估和比较推荐器模型和算法,尤其是为顺序用户系统交互而设计的RL系统。

作为一个开源平台,RecSim:(i)促进RL和推荐系统的交叉点研究;(ii)鼓励可复制性和模型共享;(iii)在产生实时实验的潜在成本(例如时间,用户影响)之前,协助有兴趣应用RL来快速测试和改进仿真中的模型和算法的推荐系统从业者;(iv)通过发布“真实的”用户行为的程式化模型,而不会泄露用户数据或敏感的行业策略,作为学术与产业合作的资源。

强化学习和推荐系统

将RL应用于推荐人的一个挑战是,大多数推荐人的研究都是使用静态数据集进行开发和评估的,这些静态数据集无法反映推荐人与其用户的连续,重复的交互作用。即使是具有时间范围的内容(例如MovieLens 1M)也不能(轻松地)支持有关新颖推荐策略的长期性能的预测,这些策略与用于收集数据的策略明显不同,因为许多影响用户选择的因素并未记录在数据中。这使得即使是基本的RL算法也很难评估,尤其是在推理某些新推荐政策的长期后果时- 研究说明策略的更改可能对用户行为产生长期的累积影响。在模拟环境中对此类用户行为进行建模以及设计和测试新的推荐算法(包括使用RL的算法)的能力可以极大地加快此类问题的研发周期。

RecSim概述

RecSim模拟推荐程序代理与由用户模型,文档模型和用户选择模型组成的环境的交互。该代理通过向用户推荐文档集或列表(称为清单)来与环境进行交互,并且可以访问模拟的单个用户和文档的可观察特征以提出建议。用户模型从(可配置的)用户功能(例如,潜在功能,例如兴趣或满意度;可观察的功能,例如用户人口统计;以及行为功能,例如访问频率或时间预算)的分布中采样用户。文档模型从潜在特征(例如质量)和可观察特征(例如长度,受欢迎程度)的文档特征的先前分布中采样项目。与RecSim的所有其他组件一样,此先验可以由仿真开发人员指定,并可能从应用程序数据中获悉(或获悉)。

用户和文档功能的可观察性级别是可定制的。当代理向用户推荐文档时,响应由用户选择模型确定,该模型可以访问可观察的文档功能和所有用户功能。用户响应的其他方面(例如,花在与建议进行互动上的时间)可能取决于潜在的文档特征,例如文档主题或质量。消耗完文档后,由于用户满意度或兴趣可能会发生变化,因此用户状态会通过可配置的用户转换模型进行转换。

注意到,RecSim提供了轻松编写研究人员或从业人员感兴趣的用户行为的特定方面的能力,而忽略了其他方面。这可以提供关键能力,使其专注于针对感兴趣的新颖现象而设计的建模和算法技术(如在下面的两个应用中所说明的)。这种类型的抽象通常对于科学建模至关重要。因此,对用户行为的所有要素进行高保真模拟并不是RecSim的明确目标。话虽如此,希望它在某些情况下也可以用作支持“模拟到真实”传输的平台(见下文)。

通过RthroughSɪᴍ的组件的数据流。颜色代表不同的模型组件-用户模型和用户选择模型(绿色),文档模型(蓝色)和推荐者代理(红色)。

应用

已经使用RecSim调查了推荐系统中使用RL时出现的几个关键研究问题。例如slate建议可能会导致RL问题,因为行动的参数空间会随着石板的大小呈指数增长,这给探索,概括和行动优化带来了挑战。使用RecSim开发了一种新颖的分解技术,该技术利用了有关用户选择行为的简单且广泛适用的假设,以精确地计算整个推荐名单的Q值。特别是RecSim被用于测试许多实验假设,例如算法性能和对有关用户行为的不同假设的Robustness。

未来的工作

尽管RecSim为研究人员和从业人员提供了充分的机会来探究和质疑程式化环境中RL /推荐算法的假设,但仍在开发一些重要的扩展。这些措施包括:(i)使风格化的用户模型适合使用情况日志的方法,以部分解决“模拟到实际”的差距;(ii)使用TensorFlow的概率API开发自然API,以促进模型规范和学习,以及使用加速器和分布式执行来扩大仿真和推理算法;(iii)扩展为全要素混合模式交互模型,这将成为现代CIR的标志-例如基于语言的对话,偏好启发,解释等。

希望RecSim将成为弥补推荐系统与RL研究之间差距的宝贵资源—上面的用例是如何以这种方式使用它的示例。还计划通过共享用户行为的程式化模型(在适当的抽象水平上反映一定程度的逼真度,可以推动有用的模型和算法开发),将其作为支持学术界与行业合作的平台。

RᴇᴄSɪᴍ框架的更多详细信息可以在白皮书中找到,而代码和合作实验室/教程则在此处。

https://arxiv.org/abs/1909.04847

https://github.com/google-research/recsim

本文分享自微信公众号 - 相约机器人(xiangyuejiqiren),作者:代码医生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 现代机器学习中的模型可解释性概述

    模型可解释性是当今机器学习中最重要的问题之一。通常某些“黑匣子”模型(例如深度神经网络)已部署到生产中,并且正在运行从工作场所安全摄像头到智能手机的所有关键系统...

    代码医生工作室
  • 癫痫发作分类ML算法

    癫痫是一种中枢神经系统疾病(CNS),在美国影响约1.2%(340万人),全球影响超过6500万。此外大约每26人中就有一人会在其一生中的某个时刻患上癫痫症。癫...

    代码医生工作室
  • Uber开放源代码“ Manifold”:用于机器学习的可视化调试工具

    Uber最近为其机器学习模型开放了其与模型无关的可视调试工具“ Manifold”。该工具的目的是帮助数据科学家和数据工程师以直观的方式识别数据集和模型之间的性...

    代码医生工作室
  • 所有模型都是错的,但其中有些是有用的!

    2008年的金融危机以惊人的方式向世界揭示了金融模型的脆弱性。自金融危机以来,有一 个词一再出现:模型风险(model risk)。

    量化投资与机器学习微信公众号
  • 软件工程中的开发模型

    今天分享的是我在学习《软件工程之美》时候记录的最新的笔记,关于软件项目开发中的开发模型。

    阿杜
  • NLP系列学习:生成型模型和判别型模型

    在学习机器学习的过程中我们总会遇见一些模型,而其中的一些模型其实可以归类于生成模型或者是判别模型中去,而这一篇文章我将会简单的概述下我最近所遇到的一些模型,并且...

    云时之间
  • 中国台湾大学林轩田机器学习基石课程学习笔记16(完结) -- Three Learning Principles

    上节课我们讲了一个机器学习很重要的工具——Validation。我们将整个训练集分成两部分:DtrainD_{train}和DvalD_{val},一部分作为机...

    红色石头
  • 机器学习模型出错的四大原因及如何纠错

    【新智元导读】本文介绍了机器学习模型出错的常见原因, 讨论了如何用偏差和方差、精确率和召回率这些指标来评测模型的问题,并基于 Andrew Ng 在斯坦福机器学...

    新智元
  • 生成模型和判别模型

    生成模型(Generaive Model)一般以概率的方式描述了数据的产生方式,通过对模型采样就可以产生数据。 一个简单例子:给定平面上一系列点,我可以认为这些...

    故事尾音
  • 开发 | 谷歌对无监督解耦方法进行了大规模评估,还开源了用来实验的开发库!

    AI 科技评论按:如何能够以无监督的方式去理解高维数据,并进一步将这些知识提炼为有用的表示仍然是深度学习中的一个关键难题。该问题的一种解决方法便是解耦表示(di...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券