DoorDash凭借知识图谱与大语言模型(LLM)的深度融合,有效攻克了复杂搜索场景下的精准匹配挑战,使“热门菜品”功能的触发率提高了30%。接下来,我们将逐步解析这一技术方案,揭示其实现原理。
摘要
DoorDash为应对用户日益复杂的搜索需求,搭建了基于大语言模型的混合检索架构。借助知识图谱对LLM输出进行约束,实现了精准的查询理解与实体链接,大幅提升了搜索相关性。该方案在“热门菜品”功能上实现了30%的触发率增长,为构建企业级搜索系统提供了重要参考。
正文
一、DoorDash搜索挑战:精确性与灵活性的平衡
在DoorDash平台上,用户经常发起包含多重条件的精确搜索。例如,搜索“vegan chicken sandwich”(素食鸡肉三明治)时,传统的基于文档相似度的检索系统可能会返回如下结果:
- 素食三明治
- 纯素三明治
- 鸡肉三明治
- 素食鸡肉三明治
上述结果中,仅最后一项完全匹配用户意图。对于不同属性,用户的偏好存在差异:消费者可能接受任意素食三明治作为替代,但会拒绝非素食的鸡肉三明治,因为饮食限制通常比蛋白质选择等其他属性更为关键。
为应对这一难题,DoorDash采用了混合检索架构:将基于关键词的检索与强大的文档及关键词理解能力相结合,从而能够可靠地执行“仅检索素食商品”等严格规则。
小提示:混合检索架构的核心在于“刚柔并济”——对饮食限制等强约束条件采用精确匹配(MUST),对口味、数量等弱属性采用宽松匹配(SHOULD),既确保准确性,又保留灵活性。
二、搜索引擎架构:文档流与查询流
典型的搜索引擎包含多个阶段,主要分为两大流程:文档流与查询流。在DoorDash中,文档指代商品或商店/餐厅,而查询则是用户在搜索框中输入的搜索词。
如图1所示,查询流程的第一步是理解查询意图。查询理解模块通常涵盖解析与分割查询、用有用信息注释查询、将其链接到特定概念以及纠正拼写错误等步骤。在DoorDash的案例中,还包含更具体的环节,例如预测查询的垂直意图——判断搜索是针对零售/杂货商品还是餐厅/食品商品。
同样,在文档处理方面,DoorDash设置了关键阶段来注释和处理文档,添加有益的元数据信息,随后将这些文档摄入搜索索引并使其可被检索。这些信息不仅用于搜索场景,还服务于其他产品界面,如过滤器和分析工具。
三、知识图谱赋能文档与查询理解
DoorDash的文档处理部分依赖于为食品商品和零售商品构建的知识图谱。这些图谱能够定义不同实体之间的关系,从而更深入地理解文档内容。
这意味着商店和商品拥有丰富的元数据——标签和属性——有助于更精准地理解目录。例如,对于零售商品“Non-Dairy Milk & Cookies Vanilla Frozen Dessert - 8 oz”,可以包含描述有价值信息的元数据,包括:
- 饮食偏好:"Dairy-free"(不含乳制品)
- 口味:"Vanilla"(香草)
- 产品类别:"Ice cream"(冰淇淋)
- 数量:"8 oz"(8盎司)
查询可以被分割,随后链接到知识图谱中已有的概念。例如,查询“small no-milk vanilla ice cream”可被分割为以下片段:["small", "no-milk", "vanilla ice cream"]。然后,每个片段可链接到产品元数据中相应的属性。然而,由于片段粒度不同,某些片段难以精确匹配到单一属性;以“vanilla ice cream”为例,需要同时关联到两个不同字段:菜品类型“ice cream”和口味属性“vanilla”。解决之道在于采用上下文感知的方法,实现恰当的分割与实体链接。
四、LLM驱动的查询理解
4.1 查询分割
传统上,查询分割依赖于点互信息(PMI)或n-gram分析等方法,以判断查询中哪些词可能构成有意义的词段。对于简单查询,这些方法尚可奏效。但当面对包含多个重叠实体的复杂查询或高度歧义的查询时,其局限性便显现出来。
例如,查询“turkey sandwich with cranberry sauce”中,“cranberry sauce”应被视为独立商品还是“sandwich”的属性?缺乏上下文时,传统方法难以准确捕捉词段间的关系。
然而,在获得正确信息的前提下,大多数现代LLM能够理解复杂查询,并基于不同上下文中的词语关系提供准确的分割。
LLM的一个问题是容易产生幻觉。DoorDash需要设计受控词汇,以生成既真实又对检索系统有价值的有意义分割。幸运的是,知识图谱工作已提供了本体,使其能够访问多个可指导这一过程的分类体系。
与其将搜索查询分解为任意段落,DoorDash引导模型识别有意义的片段,并在分类体系下对其进行归类。尽管分割过程中的幻觉率很低(不足1%),但模型输出的即时分类对检索系统依然具有重要价值。
DoorDash拥有餐厅商品分类体系,定义了菜系、菜品类型、餐食类型和饮食偏好等层次关系。同样,零售商品分类体系涵盖品牌、饮食偏好和产品类别。
以前面的查询为例:“small no-milk vanilla ice cream”。与其简单地要求模型找到有意义的词段,DoorDash提示它提供结构化输出,将每个有意义的词段映射到分类类别之一:
{
Quantity: "small",
Dietary_Preference: "no-milk",
Flavor: "vanilla",
Product_Category: "ice cream"
}
评估结果表明,这种方法带来了更精准的分割,原因在于结构化类别为模型提供了有关可能关系的额外上下文。
小提示:结构化输出不仅提升了分割准确度,还简化了后续检索逻辑——可直接使用JSON中的字段名作为检索条件,无需再解析自然语言。
4.2 实体链接
查询分割完成后,需要将这些片段映射到知识图谱中已有的概念。由于知识图谱已作为文档理解工作的一部分被摄入搜索索引,许多丰富属性便可用于检索。例如,“no-milk”这一片段应链接到“dairy-free”概念,以确保检索到包含该属性的候选集,而不局限于商品名称或描述中的精确字符串匹配,以免影响召回率。
LLM在此任务中同样表现出色。然而,如查询分割部分所述,它们有时会生成事实错误或幻觉性输出。在实体链接场景中,这可能表现为将查询片段映射到知识图谱中不存在的概念,或给出完全错误的标签。
为缓解这一问题,DoorDash采用了约束模型输出的技术,仅允许包含受控词汇内的概念——即分类概念。通过近似最近邻(ANN)技术检索出的经过筛选的候选标签列表提供给LLM,从而减少此类错误。该方法确保模型从知识图谱中已有的概念中进行选择,保持映射的一致性与准确性。
以之前的查询片段“no-milk”为例,ANN检索系统可能提供“dairy-free”或“vegan”等候选实体。随后,LLM只需根据上下文选择最合适的概念,确保最终映射准确且位于知识图谱内。
为此,DoorDash采用了检索增强生成(RAG)。具体流程如下:
- 为每个搜索查询及知识图谱分类概念(候选标签)生成嵌入向量
- 利用ANN检索系统,为每个查询检索最接近的100个分类概念或候选标签
- 提示LLM将查询链接到特定分类中的相应实体,如菜品类型、饮食偏好、菜系等
该过程最终为每个查询生成一组链接的分类概念,可直接用于从搜索索引中检索商品。整体流程如图所示。
经过这一过程,查询“small no-milk vanilla ice cream”最终生成的查询理解信号将与目录中描述为“Non-Dairy Milk & Cookies Vanilla Frozen Dessert - 8oz”的文档或商品的多个属性相匹配:
{
Dietary_Preference: "Dairy-Free",
Flavor: "Vanilla",
Product_Category: "Ice cream"
}
这使得通过实施特定的检索逻辑更容易控制检索内容,例如将所有饮食限制设为MUST条件,同时允许口味等非严格属性作为SHOULD条件,从而保留灵活性。
常见问题1:为什么必须使用ANN检索候选标签,而不是直接让LLM从全部知识图谱概念中挑选?
答案:知识图谱中的概念数量可能极为庞大(数万甚至数十万),直接让LLM从中选择极易引发幻觉和错误。ANN先检索出最相关的100个候选,大幅缩小选择范围,LLM只需执行“挑出最合适的一个”这一相对简单的任务,从而显著降低出错概率。
五、评估与质量控制
在查询理解管道中保持高精度至关重要,尤其是在处理饮食偏好等关键属性时。为确保这一点,DoorDash开发了后处理步骤,以防范最终输出中可能出现的幻觉,并确保分割查询及其链接实体的有效性。完成这些后处理步骤后,对每批处理的查询进行人工审核,以评估系统质量。
标注人员审查统计上显著的输出样本,验证查询片段是否被正确识别并准确链接到知识图谱中的相应实体。这种人工评估有助于发现并纠正系统性错误,优化提示与流程,从而维持高精度。
小提示:质量控制并非一次性工作,建议每次更新LLM提示或知识图谱后都重新抽样审核,形成“发布-审核-优化”的持续改进闭环。
六、记忆与泛化的权衡
在搜索系统中,记忆与泛化之间存在着根本性的权衡。记忆导向的方法(如批量处理固定查询集)能够实现极高的精度,但难以应对长尾新查询,且维护成本较高。泛化方法(包括轻量级启发式、BM25等统计方法或嵌入检索等更复杂的方法)能够很好地泛化到新的查询-文档对,但可能无法达到专门针对特定查询优化的精度水平。
通过将本文所述方法与能够良好泛化到新查询-文档对的其他方法(如轻量级启发式、BM25等统计方法或嵌入检索等更复杂方法)相结合,可以充分利用多重优势,在保持适应性的同时实现更高精度。
常见问题2:如何判断应偏向“记忆”还是“泛化”?
答案:对于高频、固定的查询(如“热门菜品”),可采用记忆方法以获得极高精度;对于长尾、实时变化的查询,则应依赖泛化方法。DoorDash的做法是将二者混合,让“强规则”处理核心需求,让“弱模型”处理灵活匹配。
七、系统集成:新查询理解信号的整合
查询理解系统的有效性还取决于其与搜索管道其他组件(尤其是排序器)的集成程度。排序器负责根据与查询的相关性对检索到的文档——商品或商店——进行排序。
引入新的查询理解信号后,需要确保排序器能够利用这些信号。随着排序器掌握新信号,以及检索改进带来的消费者参与新模式,相关性和业务指标均有所提升,这已在在线测试中得到验证。
通过将排序器的能力与查询理解系统的精度相结合,能够提供更准确、更相关的搜索结果。这种协同效应对于满足用户日益增长的复杂需求至关重要。
八、实际应用与成效
DoorDash的“热门菜品”轮播依赖此检索管道,以展示反映特定菜品意图查询的相关结果。
当消费者搜索“açaí bowl”(阿萨伊碗)等内容时,表明他们正在寻找特定菜品。通过在搜索结果页面中直接展示该菜品,消费者可以快速比较多家商店的不同选项。
实施新的查询理解与检索改进后,DoorDash观察到“热门菜品”轮播的触发率大幅提升——能够检索到更多商品。具体而言,相比基线提升了近30%,这意味着搜索结果与消费者意图更加匹配,从而让用户更轻松地完成下单。
触发率的提升理应带来更相关的结果。当查询被准确分割并链接到知识图谱时,能够检索到更广泛、更精准的菜品商品集来填充这些轮播。更高的触发率与高质量结果相结合,意味着整体相关性得到提升。这通过整页相关性(WPR)指标得以体现,该指标从用户角度衡量不同查询片段和意图的搜索结果的整体相关性。该方法使菜品意图查询的WPR提升了2%以上,表明用户总体上看到了更相关的菜品。
在线测试还显示,相关性的提升与参与度及转化率的增长相一致。当日转化率上升,表明减少摩擦有助于消费者决定订购哪些商品。
此外,由于改进的检索系统带来了新的、更多样化的用户参与,可以利用更全面的数据集重新训练排序器。新的排序器版本进一步提升了相关性——如WPR增加1.6%所示——使消费者更容易发现并订购他们想要的菜品,从而带来更高的订单量和市场价值。
九、未来展望
既然已经验证了LLM能够很好地集成到DoorDash系统中,这便揭示了一个巨大的可能性探索空间。
基于大语言模型的搜索理解技术不仅在电商和餐饮平台有着重要应用,在企业级搜索、智能问答系统和知识管理等领域同样前景广阔。
对于科研院所和企业而言,这种结合知识图谱约束的LLM应用模式提供了可复制的技术路径:
- 构建领域知识图谱:建立受控词汇和本体结构
- RAG技术应用:通过检索增强生成减少幻觉
- 混合检索架构:平衡精确性与泛化能力
- 持续评估优化:建立人工审核和质量控制机制
这些技术创新为提升企业级搜索与知识发现能力提供了重要参考。
常见问题3:如果团队没有现成的知识图谱,是否还能采用这种方案?
答案:可以,但需要先投入资源构建基础的知识图谱,至少包含核心实体和关系(如商品类别、饮食偏好、品牌等)。也可以从开源分类法(如Schema.org)入手,逐步扩展。没有知识图谱的约束,LLM输出将不可控,效果会大打折扣。
结语
DoorDash通过将用于查询理解的大语言模型与知识图谱及灵活的检索方法相结合,如今能够处理更复杂、更细致的用户查询,同时在高度动态的环境中释放全新体验。希望本教程能为你在设计自己的智能搜索系统时提供有价值的参考。如有更多疑问,欢迎在实践中持续探索与优化。
