一、整体介绍
1.1 背景与挑战
地理位置搜索需要在极短时间内从海量POI(Point of Interest)中理解用户意图、筛选并排序出最优结果。与传统网页搜索相比,它面临以下独特挑战:
- 空间约束的刚性:距离30公里的咖啡店无论评价多好,都无法满足"附近咖啡店"的查询需求。
- 意图与地理上下文的耦合:同一关键词在不同区域指向不同结果,如"吃饭"在商业中心和住宅区的期望截然不同。
- 多因素综合决策:排序受相关性、距离、质量、价格等多因素综合影响,单一维度无法决定最终结果。
- 海量候选与实时响应:城市级POI达数千万量级,系统需在百毫秒内完成全流程。
1.2 端到端优化的核心理念
传统级联架构中,召回追求召回率最大化,排序追求排序质量最优,两者优化目标天然不对齐——召回阶段过滤的优质候选意味着排序上限的直接损失。
端到端搜索的核心思路是打通全链路优化目标,使召回和排序在统一语义空间下协同工作,包含三个层面:
1.统一表征基础:召回和排序共享相同的预训练语言模型作为底层表征,保证两个模块对文本语义的理解处于同一认知水平。
2.知识传递机制:建立从排序到召回的反向知识蒸馏通道,让召回阶段的候选生成直接学习排序阶段的偏好判断,在源头保证候选集质量。
3.空间语义一体化:将地理空间信息编码为可学习的表征,贯穿预训练、召回、排序全流程,使空间感知能力成为模型的内建属性而非外挂特征。
1.3 系统整体架构
系统整体采用"预训练-召回-排序"三层架构,各层之间通过统一的模型基座和数据飞轮形成有机整体:
- 预训练层:基于大规模搜索日志和POI语料,结合S2空间编码进行领域自适应预训练,为下游任务提供具备地理知识感知的语义表征。
- 召回层:采用多路召回并行架构,语义召回基于双塔模型实现ANN(Approximate Nearest Neighbor)检索,融入S2空间编码实现空间感知;配合传统倒排召回保证字面匹配的覆盖率。
- 排序层:通过粗排-精排-重排的级联架构,综合相关性、距离、质量、需求满足等多维度信号,实现精细化的结果排序。
二、预训练与地理知识学习
通用预训练模型的语言知识与地理搜索的具体需求之间存在明显gap。为此,系统在通用模型基础上进行领域自适应预训练,使模型具备空间感知、地理实体关联和场景化语义泛化匹配能力。
2.1 领域数据的构建
预训练的基础是大规模的领域数据。系统整合了多个来源构建训练语料:
- 搜索日志数据:海量的用户Query和POI交互数据,记录了用户在真实场景下的搜索行为和选择偏好。这些数据天然地编码了"什么样的Query应该匹配什么样的POI"这一核心知识。
- POI文本信息:包括名称、地址、标签、品类描述、经营范围等,提供了丰富的实体语义内容。针对地理搜索场景,POI的地址信息尤为重要——"朝阳区三里屯太古里南区"这样的地址既包含行政区划信息,也包含商圈定位。
- 用户行为信号:用户行为信号:点击、导航、收藏、停留时长等隐式反馈信号。高质量正样本(如导航行为)和对比信号(如展示但未点击)为模型提供了丰富的监督信息。
2.2 S2空间编码的融入
对于地理位置搜索场景,模型必须具备对空间信息的原生敏感性。这不仅包括理解"附近"、"三里屯"、"朝阳区"等空间词汇的含义,更重要的是理解POI之间的空间关系以及空间位置对搜索相关性的影响。
S2 Geometry空间编码体系
S2 Geometry基于Hilbert空间填充曲线将地球表面递归划分为多层级Cell网格,每个Cell拥有唯一64位ID,层级结构如下:
S2编码的核心优势是层级递进的空间粒度,通过调整Level在不同精度间灵活切换,天然适合"从粗到细"的空间推理。此外,Hilbert曲线保证了空间局部性——地理位置相近的点,S2 Cell ID在数值上也趋于接近,模型可通过学习ID关系间接学习空间邻近性。
空间编码与语义表征的融合
在预训练阶段,每个POI被赋予其所在位置对应的S2 Cell ID作为额外的输入特征。具体而言,POI的经纬度坐标被转换为指定Level(如Level 17)的S2 Cell ID,该ID经过Embedding层映射为稠密向量后,与文本Token的Embedding进行拼接或融合,共同输入Transformer编码器。
这种融合训练方式使模型逐渐建立起"空间位置"与"语义内容"之间的对应关系:
- 建立空间与品类的关联(如CBD区域的S2 Cell与写字楼、商务餐厅高度关联)。
- 建立区域与Query类型的关联(如景区附近的S2 Cell与旅游相关Query关联度更高)。
- 理解S2 Cell间的空间邻近关系。
2.3 多任务预训练
预训练采用多任务学习的方式,同时优化多个目标以增强模型的综合能力:
掩码语言模型任务(MLM)
在Query和POI文本上进行掩码预测,使模型熟悉搜索场景特有的语言模式——例如"附近""好吃的""便宜的"等修饰词在搜索语境中的特定含义。
Query-POI匹配预测任务
直接建模搜索场景的核心问题——给定一个Query和一个POI,判断它们之间是否存在相关性。正样本来自用户的点击和导航行为,负样本通过随机采样和在线难负例挖掘获得。这种任务形式使模型学习到什么样的Query会触发对什么样POI的关注,为后续的排序任务打下基础。
Pairwise排序预训练任务
给定Query和两个候选POI,预测用户更可能点击哪一个。这种对比式的训练方式使模型具备了对候选进行相对排序的能力,初步建立起排序的直觉。相较于Pointwise方式,Pairwise训练能更好地学习到细粒度的优劣关系。
三、端到端召回
召回质量直接决定排序的上限。系统采用多路召回并行架构,其中语义召回是核心通道,S2空间编码的融入使其具备空间感知能力。
3.1 语义召回的基本原理
语义召回的核心思想是将Query和POI分别编码为稠密向量,在向量空间中计算两者的相似度。系统采用经典的双塔(Dual-Encoder)模型架构:
- Query塔:输入为用户的搜索词加上城市信息(Query + City),经过预训练语言模型编码后,输出固定维度的Query向量表示。
- POI塔:输入为POI的名称、地址、标签等文本信息,同样经过预训练语言模型编码后,输出POI的向量表示。
两个塔独立编码的架构设计带来了关键的工程优势:
- 双塔架构的核心工程优势在于:POI向量可离线预计算并构建ANN索引,线上仅需实时计算Query向量即可完成检索,同时支持POI的增量更新。
双塔模型的整体结构如下图所示:
3.2 S2空间编码在语义召回中的创新应用
纯语义匹配无法建模距离对相关性的调节——语义高度匹配但距离30公里的POI可能排名高于距离500米的POI。为此,系统将S2空间编码深度融入语义召回的训练和检索流程。
POI侧S2 Embedding融合
在POI塔的输入中引入空间格网编码信号:将POI坐标映射至特定层级的空间单元格ID,经独立Embedding层编码为稠密向量后,与文本语义表征进行深度融合。融合后的POI向量同时承载了语义信息和空间位置信息,语义相近且空间相邻的POI在向量空间中自然聚簇,使ANN检索天然具备空间区分能力,无需额外的地理过滤逻辑。
加权距离感知的训练策略
仅在表征层面融入空间信息还不够,模型还需要在训练目标上理解"距离如何影响相关性"。为此,训练阶段引入距离作为动态调节信号,综合语义得分与空间得分进行联合建模,其中空间权重依据Query的位置意图强度自适应调节——强地理意图Query(如"附近的"类查询)给予更高的空间权重,弱地理意图Query(如品牌名搜索)则以语义主导。
在样本工程层面,我们针对空间维度设计了专门的数据增强策略:对近距离正样本进行权重增强以强化近距离偏好,同时构造"语义高度相似但空间疏远"的对抗性难负样本,迫使模型学会在语义相近的候选中依据空间关系做出区分,而非仅凭文本相似度排序。
多Level S2编码的实验探索
空间编码的粒度直接决定了模型的空间感知精度与泛化能力之间的权衡。我们对多种编码粒度进行了系统性实验:过细粒度虽然空间分辨率高,但单元格数量急剧膨胀导致Embedding稀疏,大量低频空间单元难以得到充分训练;过粗粒度则丧失了同城区域内的空间区分能力,模型退化为"城市级"的粗粒度感知。最终选定的编码层级能够有效区分"同一街区"与"相隔数个街区"的空间差异,在空间分辨率与表征学习充分性之间取得最优平衡,核心召回指标取得显著提升。
3.3 分距离段多队列召回
系统针对不同距离范围内用户需求的差异性,设计了分距离段的多队列召回架构。各队列独立配置索引策略与候选规模——近距离队列侧重高相关性精准匹配,远距离队列以语义匹配为主导,辅以全距离补充队列覆盖长尾多样性需求。各队列召回结果通过优先级融合策略合并,结合去重与多样性控制,避免结果在空间或品类上过度集中。该方案在近距离与全距离场景的召回率上均取得了显著提升。
3.4 召回与排序的协同优化
端到端优化的一个关键环节是打通召回和排序之间的优化目标:
排序信号蒸馏到召回
精排模型的打分结果被用于指导召回模型的训练——召回模型的学习目标不仅包括预测样本是否被点击,还包括预测样本在精排模型中会获得多高的分数。这种蒸馏训练使召回模型的"品味"与排序模型逐渐对齐,减少两个环节之间的"审美差异"。
难负样本回流
排序阶段会识别出一些"看起来语义相似但实际不相关"的样本——这些样本在向量空间中与Query很接近,但在排序模型的多维度评估中表现不佳。将这类样本作为难负样本加入召回模型的训练集,能够显著提升模型区分相似但不相关候选的能力,降低"语义漂移"带来的噪声召回。
四、端到端排序
排序是搜索系统的核心环节,直接决定用户最终看到的结果顺序。系统采用粗排-精排-重排三级级联排序架构,通过层层筛选和精细化打分,将最符合用户需求的POI呈现在最靠前的位置。
4.1 多维度排序信号体系
地理位置搜索的排序决策需要综合考量多个维度,系统构建了完整的多维度信号体系:
相关性维度
系统建立了多档语义匹配评估体系,从精准匹配到无关联进行梯度化判定。相关性标注经历了从规则驱动到大语言模型辅助标注的演进,通过精心设计的Prompt工程与结构化评判流程,在保证标注一致性的同时大幅提升了生产效率。标注规范中特别针对地理搜索场景引入了品类对应、地理包含、功能满足等专项判断维度。
空间距离维度
空间距离是地理搜索最具特色的排序信号。系统将"距离合理性"建模为一个动态概念——不同品类、不同搜索意图下的合理距离阈值存在数量级差异。
核心创新在于引入POI热度感知的距离建模:高热度POI(知名品牌、热门景点)的距离容忍度显著高于低热度POI,系统通过热度分位数对距离判断进行自适应校准。同时,针对区域限定型查询(如"三里屯的餐厅"),距离锚点将自动切换至指定区域而非用户当前位置。
质量权威维度
质量评估综合了内容丰富度、用户关注度、服务能力及信息完整度等多源信号,进行多档位的质量判定。其中引入了品类校准机制——同一数值指标在不同品类下映射到不同的质量等级,避免跨品类的评估偏差。
需求满足维度
需求满足从端到端用户体验视角综合功能满足度、空间合理性、品质匹配度与实际可达性进行整体判断
4.2 排序模型训练方法
多目标联合训练
排序模型采用多阶段、多损失函数组合的训练策略,依次建立基础排序能力、分数校准能力和端到端列表级优化能力。训练流程中融合了Pairwise、Pointwise与Listwise三类损失函数,各阶段的损失配比与切换策略经过系统性调优,使模型在区分度、分数一致性与全局排序质量之间取得平衡。
大语言模型辅助的排序优化
系统在排序优化的多个环节引入大语言模型能力:在标注侧,通过结构化Prompt驱动大语言模型进行多维度评估,经置信度过滤后形成高质量训练数据;在模型侧,利用大语言模型对候选列表的Listwise排序偏好作为教师信号,蒸馏至在线排序模型,使其间接获得大语言模型的综合推理能力;同时通过领域微调使大语言模型的评判偏好与搜索场景深度对齐,形成"微调-标注-蒸馏"的闭环优化路径。
多维度信号融合
各维度模型的输出通过加权融合形成最终排序分数。融合权重并非静态配置,而是依据Query意图分类进行动态调整——不同意图类型下各维度的主导关系存在显著差异,系统据此实现了意图感知的个性化排序策略,具体权重配置通过大规模在线实验持续迭代优化。
4.3 空间信息在排序中的深度应用
空间信息在排序阶段的应用比召回阶段更加丰富和精细:
多层次空间特征
排序模型融入了S2编码的空间特征:
- 排序模型通过引入S2网格编码、精确与分箱距离,以及品类历史距离分布,构建了多层次的空间特征体系,从而全面捕捉用户与POI之间的物理距离、非线性衰减规律及品类空间偏好。
空间与语义的联合推理
排序模型通过将空间特征与文本语义特征拼接后共同输入Transformer,实现了空间与语义的联合推理。模型能够学习到:
- 对于"附近的咖啡店"这样的Query,即使远距离POI的语义相关性略高,距离过远仍会显著拉低其最终得分。
- 对于"全聚德烤鸭"这样的品牌搜索,距离的影响被大幅弱化,品牌匹配度成为主导因素。
- 对于"XX区XX路"这样包含地理限定的Query,模型会将空间判断锚定到指定区域,而非简单使用用户-POI距离。
五、数据飞轮与持续迭代
模型效果的持续提升依赖于高质量数据的持续供给。系统构建了一套智能化的数据生产流程,形成"数据-模型-数据"的正向循环。
5.1 大语言模型辅助标注体系
系统设计了基于大语言模型的智能化标注流程,覆盖相关性、距离、质量、需求满足等所有排序维度:
- 结构化Prompt工程:每个标注维度设计了专用的Prompt模板,清晰传达标注规范的核心原则,提供结构化格式的输入示例,并包含足够的Few-shot示例帮助模型理解任务要求。Prompt输出格式统一为JSON,便于自动化解析。
- 多轮质量控制:置信度过滤排除模型不确定的输出,人工抽检验证整体准确性(目标>85%一致率),交叉验证发现潜在的标注偏差。
- 问题回流机制:发现的问题样本回流分析,用于优化Prompt或补充训练数据,形成持续改进的闭环。
5.2 数据与模型的协同演进
经过验证的高质量标注数据发挥双重作用:
- 直接用于排序模型微调:高质量标注数据为各维度的排序模型提供精确的监督信号。
- 用于大语言模型的领域微调:通用大语言模型在搜索领域的特定任务上进行指令微调后,标注一致性显著提升,标注效率和质量形成正向循环。
这种数据与模型相互促进的飞轮机制,是系统持续迭代优化的核心驱动力。
六、总结与展望
6.1 技术总结
- 预训练:领域自适应预训练融合S2空间编码,建立地理知识的原生感知能力。
- 召回:S2编码融入语义召回,分距离段多队列策略兼顾语义泛化与空间感知。
- 排序:多维度信号体系(相关性、距离、质量、需求满足)结合级联架构和LLM辅助蒸馏实现精细排序。
- 全链路协同:排序信号蒸馏到召回、难负样本回流,实现端到端优化。
6.2 未来展望
面向未来,多个技术方向值得持续探索:
- 生成式搜索:基于大语言模型的生成式检索可能改变传统的"召回-排序"范式,直接根据用户意图生成结构化的搜索结果,在理解复杂意图和跨模态推理方面展现出独特优势。
- 多模态融合:将图片、视频等多模态信息融入POI表征和匹配过程,为搜索结果的质量判断和用户偏好建模提供更丰富的信息维度。
- 实时个性化:基于用户的即时行为序列和上下文信息(如时间、天气、出行方式),动态调整召回策略和排序权重,实现千人千面的搜索体验。
- 空间智能增强:探索更精细的空间建模方法,如路网距离替代直线距离、交通可达性建模、商圈热力感知等,使空间推理更贴近用户的真实出行决策。