当前位置: 首页 > web >正文

Airbnb更智能的搜索:嵌入式检索(Embedding-Based Retrieval,EBR)工作原理解析

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

Airbnb通过引入嵌入式检索技术,显著提升了搜索系统的效率与相关性。

面临的挑战:规模下的相关性问题
Airbnb的搜索使命看似简单——帮助客人找到合适的住宿,但实际上异常复杂。平台上有数百万条房源信息,用户的查询需求差异巨大,例如有的用户搜索“纽约”,而有些用户则会输入“卡茨基尔山带壁炉的舒适小木屋”。此外,由于灵活搜索选项,部分用户甚至不会固定旅行日期。这些因素使得传统依赖关键词匹配或筛选器的搜索系统难以快速提供优质结果。

Airbnb提出了一个关键洞见:如果可以利用深度学习,将房源信息和用户查询都表示成同一空间中的向量,再在向量空间中查找彼此接近的项目呢?这便是嵌入式检索(EBR)的基本理念。

什么是嵌入式检索(EBR)?
嵌入(embedding)指的是将对象(如房源或搜索查询)转换为多维空间中的数字表示(可以想象成拥有上百条轴线的地图)。在这个空间中,相似的事物会彼此靠近。

检索(retrieval)是从海量数据库中提取相关候选项的过程。通过EBR,Airbnb能够基于查询在嵌入空间中快速检索与之“接近”的房源,大大加速了从数百万条房源中筛选小规模候选集的过程,从而在执行昂贵的最终排序之前,完成高效的初步筛选。

例如,“迈阿密海滨公寓”和“南滩海边公寓”在关键词匹配上可能差异较大,但在嵌入空间中却因概念相近而非常接近;而“迈阿密海滨公寓”和“阿斯本滑雪小屋”尽管都是度假房源,却在嵌入空间中相距遥远。

🛠 第一步:构建训练数据
为了有效训练EBR模型,Airbnb采用了复杂而系统的方法生成高质量的训练样本:

  • 基于行程的查询分组:
    将一次完整预订旅程中的历史查询定义为一个“行程”,并根据地理位置、入住人数和停留时长等关键参数进行分组,从而捕捉用户预订前的多阶段搜索过程。
  • 正负样本选择策略:
    用户最终预订的房源被作为正样本;负样本则精选用户在搜索过程中曾经浏览但未最终预订的房源,包括出现在搜索结果中但未被点击、被详细查看过、或被加入心愿单但最终未预订的房源。
  • 采样策略背后的逻辑:
    故意避免随机负样本采样,以防训练任务过于简单。通过选择用户真正考虑过但未选择的房源,模型能够学习到更细腻的偏好信号。这种方法反映了用户在做出预订决策前,通常会经历多轮探索比较。
  • 对比学习(Contrastive Learning)实现:
    模型被训练将查询、正样本房源与负样本房源映射到同一嵌入空间。训练目标是将查询向量拉近到正样本房源,同时拉远与负样本房源的距离。通过这种对比学习,模型能够捕捉到超越简单关键词匹配的细微用户偏好。

👉 关键概念:在机器学习中,对比学习通过比较好与坏的样本,帮助模型更深刻理解相似性。

🧱 第二步:模型设计——双塔架构(Two-Tower Architecture)
Airbnb采用了常见于检索系统的双塔模型架构:

  • 房源塔(Listing Tower):输入房源相关信息,如地理位置、床位数量、过往评分等。
  • 查询塔(Query Tower):输入用户查询信息,如目的地、入住人数、停留时长等。

每个塔会将输入内容转化为一个嵌入向量。训练过程中,目标是让查询向量与正确的房源向量在嵌入空间中靠得更近。

例如,某用户搜索“家庭住宅,靠近迪士尼,2位成人,3位儿童,7月15日至22日”:

  • 查询塔处理的信息包括地点(阿纳海姆地区)、人数(5人)、日期(7晚7月中旬)、隐含需求(适合家庭)。
  • 房源塔则预先计算出如“阿纳海姆地区,三卧室,可容纳6人,有泳池,家庭友好型,夏季有空房”等房源的嵌入向量。

两者在嵌入空间中相似度高,因此成为候选房源。

💡 技巧亮点:房源塔每天离线批量计算一次房源嵌入,因此在实时搜索时无需重新计算,极大节省计算资源。

👉 关键概念:双塔模型非常适用于一侧(如房源信息)可预先计算、另一侧(如用户查询)需实时计算的场景。

⚡ 第三步:快速检索——近似最近邻搜索(ANN)
完成嵌入后,Airbnb需要快速找到与查询最接近的房源。这时便引入了ANN技术。

什么是ANN?
相比逐一比对所有向量(速度慢),ANN能够快速找到“足够好”的附近向量。

Airbnb评估了两种流行方法:

  • HNSW(分层可导航小世界图):准确率高,但在应用筛选器(如地理位置)时,内存消耗和延迟大。
  • IVF(倒排文件索引):准确率稍低,但应用筛选器时速度快、内存效率高。

最终选择了IVF方法,因为它能够将房源向量聚类,并仅在最相关的群集中进行搜索。

IVF实际运作流程:

  • 离线阶段:将所有房源向量分为不同聚类(如“海滩别墅”、“城市公寓”、“山间小屋”)。
  • 查询到来时:系统识别出查询最接近的若干聚类,只在这些聚类内进行比对。

例如,搜索“Lake Tahoe附近带热水浴缸的宠物友好小屋”:

  • 精确搜索需对全球700多万条房源逐一比对;
  • IVF搜索则先定位到“美国西部小屋”、“太浩湖地区”等聚类,仅在约1万条房源中比对。

这样计算量减少了约99.9%,但相关性仍可达到95-98%。

性能差异明显:

  • 精确搜索:500-1000毫秒
  • IVF搜索:10-20毫秒

这使得Airbnb能几乎瞬时返回搜索结果,同时兼顾复杂的匹配标准。

👉 关键概念:像IVF和HNSW这样的ANN方法能够在速度与准确率之间取得良好平衡,尤其在需要筛选和内存受限的场景中,IVF优势明显。

相似度度量方法的选择
Airbnb测试了两种相似度函数:

  • 点积(Dot Product):关注向量方向,不考虑大小。
  • 欧氏距离(Euclidean Distance):同时考虑方向和大小。

最终发现,欧氏距离在形成更优聚类方面效果更好,因为房源特征(如过往预订次数)的数量级差异是重要信号。

例如:

  • 房源A:5卧室新房,仅有3次预订记录;
  • 房源B:3卧室热门房源,有300次预订记录。

在点积下,这两者方向接近,容易被视为同样相关;而使用欧氏距离,系统可以更好地辨别房源B的高人气特性,从而提升检索质量。

👉 经验教训:相似度函数的选择直接影响向量分组质量及系统检索效果。

成效:更优预订体验
EBR系统上线后,Airbnb观测到:

  • 预订转化率有统计意义上的显著提升;
  • 检索性能与主力排序模型改进后的水平相当,但响应速度更快;
  • 在搜索返回大量候选结果(如搜索整片区域或热门城市)时表现尤为优异;
  • 在搜索意图模糊或需求多样的情况下,能够提供更具个性化和相关性的结果。

总结
Airbnb应用EBR技术的经验表明,现代机器学习方法在实际系统中可以带来巨大的改进。主要启示包括:

  • 将查询和房源映射到同一嵌入空间,有助于实现个性化推荐;
  • 基于真实用户行为的对比学习,能训练出高质量模型;
  • 结合ANN技术实现高效检索,在速度和准确性之间取得最佳平衡。

http://www.xdnf.cn/news/2825.html

相关文章:

  • git 如何清空当前分支的历史提交记录,仅保留最后一次提交
  • Vue3中Hooks与普通函数的区别
  • Python pip下载包及依赖到指定文件夹
  • 23.开关电源干扰控制的EMC改善措施
  • 正常流布局
  • Terraform的加密功能
  • 解决 Win11/Win10 “为了对电脑进行保护,已经阻止此应用”问题
  • Linux环境变量配置与std访问环境变量
  • 【Linux实践系列】:进程间通信:万字详解命名管道实现通信
  • 谷歌浏览器如何优化网页的视频播放体验【提升播放效果】
  • 二极管钳位电路——Multisim电路仿真
  • 数组滑动窗口单调栈单调队列trick集【leetcode hot100 c++速查!!!】
  • 遇到前后端半分离老项目的速度解决方法
  • 如何选择合适的RFID手持终端设备?
  • 【C++QT】Item Views 项目视图控件详解
  • Nginx支持HTTP2/HTTP3的并用CURL测试
  • RSYNC命令使用详解
  • JLink,程序烧写流程、步骤
  • 阿里语音处理工具ClearerVoice-Studio项目上手指南
  • 2302. 统计得分小于 K 的子数组数目 滑动窗口 or 前缀和+二分
  • 6. 页面对象开发的第一种实现方式:页面继承
  • 应用在通信网络设备的爱普生晶振SG2016CBN
  • Matplotlib可视化基础
  • 如何获取按关键字搜索京东商品详情(代码示例)
  • 无需手动重建!Altium到Cadence的封装转换:ASCII文件方法详解
  • LangChain4j +DeepSeek大模型应用开发——3 人工智能服务 AIService
  • 网工备考考纲变化总结
  • 【大模型ChatGPT+R-Meta】AI赋能R-Meta分析核心技术:从热点挖掘到高级模型、助力高效科研与论文发表“
  • AE插件中文汉化 RGB色彩通道分离故障复古视觉特效 RGB Split v1.0.0
  • watch 监视器