提高 Airbnb 的计算机视觉准确性和性能
近年来,人工智能与旅游平台的融合改变了人们搜索和预订住宿的方式。作为全球领先的独特旅行体验和住宿市场,爱彼迎不断努力通过提供有关房东共享的各种房屋的信息内容来增强房客体验。我们帮助客人在预订前更好地了解房源提供的服务的方法之一是通过我们的人工智能照片游览功能。
“房源”选项卡中的人工智能照片之旅可帮助房东更好地组织房源照片,利用视觉转换器的微调功能来评估不同的房源图像集,并根据特定房间和空间准确识别和分类照片。在这篇博文中,我们将深入探讨照片之旅的内部工作原理,包括模型选择、预训练、微调技术以及计算成本和可扩展性之间的权衡。我们还将具体讨论如何在训练数据有限的情况下提高模型的准确性。
房间类型分类是照片之旅的第一个方面,房间分类的目标是将图像准确地分类为 Airbnb 产品中设计的 16 种不同的房间类型,例如“卧室”、“全浴室”、“半浴室”、“ “客厅”、“厨房”,为用户提供对可用空间的全面了解。挑战在于房间布局、照明条件的多样性,以及需要能够在各种环境中很好地推广的模型。
我们使用几种最先进的模型进行了实验,包括 Vision Transformer (ViT) 变体——ViT-base、ViT-large 和不同的分辨率。此外,我们还探讨了 ConvNext2(一种最近提出的卷积神经网络,其性能与 ViT 相当)和 MaxVit(一种结合了 Vision Transformers 和 CNN 优势的变体)的性能。在这个项目开始时,我们使用 Airbnb 主机提供的数据在图像分类任务上测试了这些方法,发现 ViT 优于其他方法。因此我们在接下来的研究中选择了ViT。
照片之旅的另一个关键组成部分是图像聚类,它将同一房间的图像分组为一个簇。其先决条件是能够测量两个图像之间的相似度,这表明两个图像属于同一房间的概率。这是一个监督分类问题,输入是两个图像,输出是 0 或 1 的二进制标签。如图 2 所示,我们采用了 Siamese 网络,通过应用相同的图像嵌入模型来同时处理两个图像对每个图像,然后计算所得嵌入的余弦相似度。
我们的分析发现,训练数据量是提高预测精度的关键。将训练数据量加倍通常会导致错误率平均降低约 5%,并且在早期阶段效果更为显着。
不幸的是,获取高质量的训练数据非常昂贵,因为它需要人工标记。因此,我们需要寻找其他方法,在有限的训练数据下提高模型的准确性。我们按照以下步骤来提高模型准确性:
第 1 步 – 预训练:我们从 ImageNet 上的预训练模型开始。我们采用该模型并使用大量主机提供的数据对其进行训练,但其准确性较低,并且仅覆盖了我们的一些类别标签。这为以下步骤中的迁移学习提供了基线模型。
步骤 2 — 多任务训练:我们使用目标任务的更高精度训练数据(例如,房间类型分类)以及已标记的附加类型训练数据对上一步的模型进行微调另一个相关任务(例如,对象检测)。这提供了额外的训练数据,并为未来的步骤创建了多个不同的模型。
步骤 3 — 集成学习:我们在步骤 2 中从多个模型创建了一个集成,这是通过使用不同的辅助任务进行训练并使用不同版本的 ViT(例如,ViT-base 与 ViT-large,和/或那些使用大小为 224 与 384 的图像)。这种方法使我们能够生成一组不同的模型,并从中选择表现最好的模型来构建最终的集成模型。
步骤 4 — 蒸馏:虽然集成模型比任何单个模型具有更高的精度,但它需要更多的计算资源,从而增加了我们产品的延迟和成本。我们训练了一个蒸馏模型来模仿集成模型的行为,该模型具有相似的精度,但计算成本降低了几倍。
我们的预训练过程涉及利用庞大的 Airbnb 列表照片存储库(包含数百万张图像)来训练 Vision Transformer (ViT) 模型。虽然利用 Airbnb 列表照片进行预训练具有很大的优势,但数据集也存在局限性。人工标记的数据集中存在不准确或错误标签,它们严重影响了模型有效识别模式的能力。另一个值得注意的限制是预训练数据集中总共 16 个房间分类中仅覆盖了 4 个。
因此,扩大微调的覆盖范围以包括额外的类势在必行。我们制定了详细且更新的指南,并生成了包含 16 个房间分类的完整人类标签数据集。迭代的微调过程逐渐涵盖了全部 16 种房型,从而形成了更加全面和多功能的模型。
由于标记过程成本高昂且耗时,获取高质量的人工标记训练数据是一项挑战。尽管如此,我们已经积累了跨其他各种任务的大型标记数据存储库,包括房间类型分类、图像质量预测、同房间分类、类别分类和对象检测。通过充分利用这个广泛且多样化标记的数据集,我们显着提高了任务的预测准确性。为了实现这一目标,我们实现了多任务训练,其中结合了现有任务中的附加标签类,如图 4 所示。每个学习者都是视觉转换器,除了预测一组标签之外,我们还允许不同的学习者学习其他标签。标签类型,例如设施和 ImageNet21k 标签,进一步提高了整体性能,如表 1 所示。
集成学习是机器学习中的一项强大技术,它利用具有相似精度的不同模型来实现更好的准确性和泛化性。
我们将集成学习应用于具有不同架构、模型大小和辅助任务(例如设施和 ImageNet21k 类别预测)的各种模型。在汇总各个模型的预测后,我们发现与任何单个模型相比,整体准确性显着提高。观察到的改进归功于该集成解决和减少单个模型的错误分类和不准确性的能力,从而实现更准确的预测,尽管人工标记的训练数据有限。
虽然集成学习在准确性方面取得了显着的进步,但它需要更多的计算资源,因为每个推理任务都涉及多个大型模型。为了在不影响性能的情况下优先考虑模型效率,我们转向知识蒸馏,这是一种围绕将知识从复杂的模型集合转移到更紧凑的单一模型的技术。
我们的蒸馏过程将复杂集成的硬目标和软目标中编码的知识转移到更小、更简单的模型中。硬目标是地面实况标签,而软目标是集成的概率预测,使较小的模型能够捕获集成学习到的微妙决策边界。总体训练目标是两个损失的加权组合:
其中第一个损失是基于硬目标的交叉熵损失,第二个损失是 Kullback-Leibler 散度,用于评估集成中的软目标与学生模型的预测之间的交叉熵,蒸馏系数决定分配的权重至蒸馏损失。
值得注意的是,我们的蒸馏模型实现了与集成模型相当的性能指标,尽管它显着减少了推理时间和资源需求。这一结果证明了知识蒸馏在更简化的模型中保留整体集体智慧的有效性。
作为推出端到端摄影之旅的准备工作的一部分,我们采用了名为“黄金评估”的严格评估流程,通过计算生成摄影之旅所需的最少更改次数来模拟实际用户体验通过我们的模型与人类标记的基本事实相同(即黄金评估)。与均匀分布在各个类别的训练数据不同,Airbnb 房源级别的黄金评估流程旨在复制用户的观点。我们对列表进行了抽样,每个列表平均包含 25-30 张照片,并将准确性定义为使分配与人工标签一致所需的最小修正次数。这些更正指的是房间分配的变化,其中照片的初始房间预测被修改以匹配多个人工标签提供的一致房间标签。例如,如果卧室 1 的照片被错误地分配给客厅,则需要进行一次更正才能将其从客厅移动到卧室 1。
有些照片无法正确分配到命名空间。我们将各种照片(包括特写照片、包含人类或动物的图像以及附近购物区、餐馆和公园的照片)分类为“其他”类别。此外,如果一张照片是房间里的空地,我们无法判断它的房间位置,我们可以将一些照片指定为“未分配”,这不计入精度计算。这种场景很少出现(如表3所示),主要用于让用户在最不明确的情况下做出决定。该评估作为最终的启动标准。最终,我们成功地将错误率降低到了 5.28%,通过了 Airbnb 的内部评估标准,并在 2023 年 11 月的产品发布会上将 Photo Tour 作为展示功能推出。
我们对使用 Vision Transformers 来改进我们的摄影旅游产品的探索取得了成功并得到了回报。通过结合预训练、多任务学习、集成学习和知识蒸馏,我们显着提高了模型的准确性。预训练提供了坚实的基础,而多任务学习则丰富了模型解释不同视觉效果的能力。集成学习结合了模型的优势来实现稳健的预测,知识蒸馏可以在不牺牲准确性的情况下实现高效部署。
这项人工智能驱动的照片之旅是 Airbnb 2023 年冬季发布的一部分。从那时起,我们一直在努力监控该产品的性能,并继续进一步完善我们的模型,以获得更加无缝的用户体验。
我们要感谢参与该项目的每个人。特别感谢整个 Airbnb 用户、房源和平台团队为开发和推出该产品所做的不懈努力,确保了其持续卓越。此外,我们还要感谢 Airbnb 机器学习基础设施团队在构建摄影之旅所依赖的强大基础设施方面提供的重要支持。
版权声明
本文为本站原创内容,转载需注明文章来源(https://www.eiefun.com),另:文中部分素材可能会引用自其他平台,如有侵权或其它,请联系 admin@eiefun.com,我们会第一时间配合删除