在过去几年中,DeepMind(一家2014年被Google收购的人工智能研究公司)已经将它的技术应用到Google的各种产品和服务中,取得了显著的成效。例如,它帮助降低了数据中心的冷却能耗,提升了Android设备的电池性能。
接下来几个月,我们将分享更多关于这些成果的信息。
我们知道,用户在手机上安装自己喜欢的应用程序和游戏时会感到极大的满足,同时发现新的、有趣的App也是一件令人兴奋的事情。
通过与Google Play商店的合作,我们的团队大大改善了Play商店的发现系统,为用户提供了更加个性化和方便的购物体验。每月有数十亿用户在Google Play商店下载应用程序,Play商店支持着全球最大的应用推荐系统。
有些用户正在寻找特定的应用程序,比如照片分享应用Snapchat,而其他用户则在浏览应用商店,希望发现新的、有趣的东西。
Google Play团队致力于向用户提供实用的推荐,帮助他们找到最相关的应用和游戏。为了提供更丰富和个性化的体验,Play商店根据用户之前的偏好进行推荐。然而,这需要细致的分析,团队不仅需要了解一个应用的功能,还要了解它与特定用户的相关性。
例如,一个狂热的科幻游戏爱好者可能会对类似的游戏产生兴趣。但如果用户安装了一个旅游应用,那么推荐一个翻译应用可能比再推荐五个旅游应用更有意义。
这些用户偏好的收集和使用受到Google严格的隐私政策的保护。
为了改进Google Play推荐系统的用户偏好识别方式,我们首先采用了长短期记忆网络模型(LSTM)。尽管LSTM能够显著提高准确性,但也会增加服务延迟。由于处理长序列时,LSTM的计算量非常大。
为了应对这个问题,我们用Transformer模型替代了LSTM。Transformer模型因其高效并行化的特点而闻名,能够更好地处理序列到序列的预测和自然语言处理任务。它能够捕捉更长时间的单词依赖关系,从而提高模型的性能,但也会增加训练成本。
最终,我们开发了一个高效的加法注意力模型,可以应用于任何序列特征的组合,同时降低计算成本。
我们的模型基于用户从Play商店安装的应用历史记录,了解他们可能安装的应用。然而,这也可能导致推荐偏差问题。
例如,如果App A在Play商店中的安装次数是App B的10倍,那么用户更有可能选择安装App A,因此我们的模型也更可能推荐它。这就是模型出现偏差的原因:它倾向于推荐那些更频繁显示、更常被安装的应用。
为了避免这种偏差,我们在模型中引入了重要性加权。重要性权重基于每个应用的展示安装率与整个Play商店的展示安装率中位数进行比较。安装率低于中位数的应用的重要性权重将小于1。然而,如果安装率高于中位数,即使是安装频率较低的“利基”应用也会有较高的权重。
通过重要性加权,我们的候选生成器可以根据应用的安装率调整权重,从而缓解偏差问题。
推荐系统为用户提供多种选择,并将最好或与用户最相关的选择置于首位。但是,我们如何确定最相关的应用,并将其放在列表的顶部,以确保用户不会错过最佳选择?
许多推荐系统将排序问题视为二元分类问题,将用于机器学习的数据标记为正或负,然后通过这些标签进行机器学习,预测可能的排序。然而,这种“逐点”模型一次只能给一个对象排序,无法得知该对象与其他应用相比的表现。
我们的解决方案是构建重排序模型。该模型学习一对同时呈现给用户的两个应用的相对重要性。我们的核心思想是:如果用户在商店搜索到两个应用,那么他选择安装的那个必然是与自己更相关的那个。
我们可以通过为一对应用分别标注正或负的标签,使模型尽量减少排名颠倒,从而提高应用的相对排名。这种“逐对模型”在实际操作中比“逐点模型”更有效,因为它更接近排序的本质。
许多推荐系统都需要同时基于多个目标进行优化,如相关性、热度或个人喜好。我们将多目标优化视为一个约束优化问题:总体目标是在次级目标期望值的约束下,最大化主要目标的期望值。
用户需求和目标会随着时间变化——例如,一个之前对找房软件感兴趣的用户找到了新公寓,现在可能对家装软件感兴趣了。因此,我们需要一个动态解决方案。
我们没有采用离线解决问题,然后再将固定模型上线的方法。相反,我们根据用户的请求,在线提供解决方案,并且一切都基于目标的实际价值。
我们使用相对约束,换句话说,我们基于一个比值,而不是绝对值,来优化次级目标。这样,次级目标的任何改变都不会影响最终的解决方案。
我们开发的算法可以在多个目标之间进行权衡。通过在权衡曲线上找到合适的点,我们的算法可以大幅提高次级目标,并将其对主要目标的影响降到最低。
从这次合作中,我们学到了一个重要经验:在实际应用高级机器学习技术时,会遇到许多现实条件的限制。
Play商店与DeepMind团队密切合作,每天进行交流和沟通。因此,我们可以在算法设计、实施和最终测试阶段都考虑到产品的实际需求和限制,从而打造更成功的产品。
迄今为止,我们与Google的合作已经帮助其数据中心减少了30%的冷却能耗,提高了约20%的风能利用率,并开发了一种设备内置的学习系统,用于优化Android的电池性能。
世界各地的Google Assistant和Google Cloud Platform用户现在都可以使用语音识别和合成算法WaveNet。此外,我们与自动驾驶汽车公司Waymo的合作,提高了Waymo旗下车辆的性能和神经网络训练的效率。
与Google这样的大型企业合作带来了独特的研发挑战,但也给了我们机会,将实验室的研究突破应用到更广泛和复杂的实际用例中。