对称和非对称语义搜索模型在处理查询和文档的方式上有所不同。对称模型对查询和文档使用相同的编码方法,将它们视为可互换的输入。例如,如果要比较两个句子的相似性,对称模型会通过相同的神经网络处理两者以生成嵌入。另一方面,非对称模型对查询和文档使用不同的编码策略。当查询较短(例如,搜索词)而文档较长(例如,网页)时,这非常有用,因为这使得模型能够针对每种输入独特的结构和意图进行优化。
对称模型的一个常见例子是 Sentence-BERT,它微调 BERT 以生成句子嵌入。它使用相同的网络对查询和文档进行编码,因此对于查找相似句子或文本聚类等任务非常高效。当查询和文档在结构上相似时,对称模型效果最好,例如匹配常见问题解答或检测释义。但是,当查询和文档的长度或复杂性不同时,它们可能会遇到困难。例如,如果编码方式相同,像“东京天气”这样的短查询可能与关于东京气候的详细文章不匹配。非对称模型通过定制编码器来解决这个问题:查询可以使用轻量级模型进行处理以提高速度,而文档则使用更深层的网络来捕获细微的含义。密集段落检索 (DPR) 是一个例子——它使用单独的基于 BERT 的编码器处理问题和段落,经过训练以最大限度地提高它们之间的相关性。
对称模型和非对称模型之间的选择取决于用例。对称模型更容易实现,并且由于文档嵌入可以预先计算,因此对于实时应用程序来说速度更快。非对称模型需要更多的计算资源,但在网络搜索或电子商务等场景中表现出色,这些场景中的查询简洁而文档冗长。例如,“平价无线耳机”的搜索受益于非对称方法,其中查询编码器侧重于“平价”和“无线”等关键词,而文档编码器则分析产品描述中的技术规格。对于输入对平衡的任务(例如推荐系统),开发人员应优先选择对称模型;对于查询与文档不匹配情况普遍存在的检索密集型应用,则应优先选择非对称模型。