新智元报道
来源:google AI blog
编辑:LRS
推荐系统对于用户来说是很重要的,能帮助用户从互联网上海量的数据中找到真正合适的内容。一个好的推荐系统在整个用户群中寻找一个公正的平衡。
Google于2019年发布了一个可配置的平台RecSim用于为推荐系统提供仿真环境,该系统支持与用户的顺序交互。
RecSim允许创建新的环境,该环境能从指定角度来抽象地反映用户行为和项目结构,非常适合顺序交互式推荐问题,能够突破强化学习和推荐系统技术的限制,可以轻松配置各种环境,包括用户偏好和项目熟悉程度;用户潜在状态及其倾向动态;选择模型和其他用户响应行为。
但是,随着技术的进步,实际应用也更复杂,确保模型灵活且易于扩展,实现用户动态的概率推断以及解决计算效率变得越来越重要,增强模拟系统的能力也变得更关键。
为了解决这些问题,Google最近又发布了RecSim NG,号称是用于推荐系统研究和开发的「下一代」模拟器。
RecSim NG是对一组用户和数据的模拟,这些用例能够更好地贴近实际应用,确保了模型的灵活性和易于扩展性,能够对用户动态进行概率推断,并提高了计算效率。
RecSim NG是啥?
RecSim NG是在Edward2和TensorFlow中实现的可扩展的、模块化的、可微分的模拟器。它提供的代理行为规范可以作为一种通用概率编程语言。
RecSim NG通过两种方式大大扩展了RecSim的建模功能。
首先,「story API」允许模拟任意数量的参与者(例如,推荐者,内容消费者,内容制作者,广告商)相互交互的场景,能够很好地建模「推荐生态系统」。
其次,RecSim NG引入了一个行为构建模块库,该模块类似于Keras层,可以将底层操作组装起来以快速构建复杂的模型。模块设计遵循面向对象的范例,RecSim NG使用实体模式以封装控制各种代理行为(如用户满意度)的共享参数。
除了常见的蒙特卡洛采样外,RecSim NG还可以包括了各种其他的概率推理模型。尽管领域知识和算法对推荐问题的建模来说至关重要,但是弥补仿真与实际之间的差距所需的保真度只能通过观测真实数据来实现。对于数据驱动的仿真,RecSim NG可以轻松实现各种模型学习算法,例如EM算法,生成式对抗训练等。
RecSim NG中还提供了概率推断和潜在变量模型学习的工具,并能够自动微分。
评估推荐生态系统的健康状况也是至关重要的,即推荐策略对整体满意度、集体公平性和安全性等方面的长期影响,需要对大型多主体系统进行仿真,以合理地再现不同参与者之间的相互作用。
为了提高计算性能,RecSim NG基于TensorFlow的runtime的仿真,可以在硬件上进行加速。该模拟利用了TensorFlow的AutoGraph编译器提供的所有优化功能,包括XLA等。
模拟器还能够自动利用主机上的所有可用内核以及专用硬件,例如张量处理单元(TPU)等。RecSim NG核心体系结构是后端独立的,因此可以在其他计算框架(例如JAX或PyTorch)中开发应用程序。
推荐系统生态
为了演示RecSim NG的功能,我们在程序化的推荐生态系统中介绍了用户与内容提供商之间的多代理交互的非常简化的模型。
该模拟器捕获了一个推荐系统的动态过程,该系统通过随着时间的推移向用户推荐那些提供者的内容项的选项来介导用户和内容提供者之间的交互。我们采用简化的用户模型,其中,每个用户都具有一个静态的,可观察的「用户兴趣向量」。
此向量可以用来确定用户与推荐项目的匹配程度,然后将其用作选择模型的输入从推荐的面板中确定用户的可能项目选择。
和用户一样,每个内容提供者也都有一个「兴趣向量」,根据它提供的内容条目能够反映该提供者的专业知识和趋势。
提供者有其提供内容的动机:他们的效用是根据最近任何用户选择的项目数量来衡量的。而且,效用更高的提供者生成或提供更多的项目,从而增加了用户(和推荐者)可以选择的“目录”。
文中还比较了两种不同的推荐策略。
第一个是标准的「myopic」策略,对于任何用户,该策略始终会推荐对该用户具有最大预测匹配度的商品。在这样的策略下,提供者的行为有可能引起马太效应现象:最初吸引用户的提供者在随后的时期生产更多的物品,这增加了吸引甚至进一步参与的机会。随着时间的流逝,可用的商品条目逐渐集中在「主流」内容提供商,对总体用户效用产生了负面影响。
第二个推荐程序策略了解这些提供程序的动态,它通过提升服务不足的供应商来抵消这些动态。
这两个都是简单的启发式方法,但提供者感知的策略在扩展的范围内增加了总体用户效用。
仿真器中的代理数很多,我们使用RecSim NG提供的可重用建模模块对用户和内容提供者进行模板化。确定如何并行执行仿真并非易事,因此利用TF的AutoGraph和其他计算优化至关重要。
RecSim NG意在使研究人员和从业人员都可以更轻松地开发,训练和评估推荐系统的新颖算法,尤其是旨在在更长的范围内优化系统行为,捕获复杂的多主体交互和激励的算法。
同时Google也正在研究如何更逼真地模拟真实用户模型。
参考资料:
https://ai.googleblog.com/2021/04/flexible-scalable-differentiable.html