源数据嵌入(第0步):构建基础
本文解释了我们如何将所有可发现的源内容(产品、零件和站内页面)嵌入到共享的向量空间中,以支持跨SEO和搜索流程的语义匹配。
问题:通过含义匹配查询与内容
用户使用多种不同的措辞来描述其意图。当查询措辞与目录措辞不重叠时,关键词匹配就会失效。
我们使用语义嵌入,以便查询和源内容都可以根据含义进行比较(通常通过余弦相似度)。
嵌入的内容
我们嵌入用户可以发现且流程可以路由到的所有内容:
-
产品:可销售的目录项(标题 + 特性文本 + 任何策划/AI生成文案)。
-
零件:可销售的组件和配件(名称 + 规格)。
-
站内页面:文章(
/a/)以及其他可以出现在搜索和内部链接中的可导航页面。
嵌入所有可发现的内容支持跨类型检索(例如,一篇文章可以针对产品导向的查询进行排名,而一个产品在适当时也可以针对信息类查询进行排名)。
高层架构
flowchart TD
A[目录 + 零件 + 页面] --> B[规范化并构建描述]
B --> C[按规范URL去重]
C --> D[增量嵌入]
D --> E[源嵌入矩阵 + 键索引]
E --> F[下游:匹配、路由、相关搜索、搜索服务]嵌入流程
步骤 A:整合源数据
-
目的:构建一个规范的源项目数据集。
-
输入:产品目录、零件数据集和页面内容。
-
输出:一个整合的源数据集,包含:
- 键:规范URL(用作稳定标识符)
- 描述:用于嵌入的文本
- 类型:产品 / 零件 / 文章 / 页面(用于下游路由)
-
过程:
- 从每个源提取项目。
- 为每个项目构建描述。
- 按规范URL去重,确保每个URL只出现一次。
步骤 B:增量嵌入
我们使用增量学习原则,以避免为未更改的内容重新计算嵌入。
-
目的:仅嵌入新的/已更改的项目,同时重用未更改项目的缓存嵌入。
-
输入:整合的源数据集和嵌入缓存(来自之前的运行)。
-
输出:更新的嵌入矩阵和键索引。
-
过程:
- 加载缓存的键和嵌入。
- 为每个项目计算一个变更信号(基于项目的嵌入文本)。
- 仅使用配置的模型嵌入新的/已更改的项目(参见嵌入策略)。
- 将缓存的嵌入和新计算的嵌入按URL键控的稳定顺序合并。
步骤 C:持久化工件
嵌入以高效的数值格式(通常通过NumPy)存储,同时有一个单独的键索引,以便下游步骤可以将向量行映射回规范URL。
描述构建(我们嵌入的文本内容)
产品
产品描述由以下内容构建:
示例(说明性):
<产品名称>
<简短描述>
<关键特性亮点>
零件
零件描述由以下内容构建:
-
面向客户的名称
-
内部名称(技术标识符)
-
类别
-
规格/属性(渲染为文本)
站内页面
页面描述由以下内容构建:
-
标题
-
正文片段(介绍/导语部分)
-
上下文标识符(适用的类别/系列标签)
目标是生成稳定、能代表内容的文本,并在页面含义变化时随之变化。
去重规则
每个规范URL在整合的数据集中只出现一次。
-
原因:多个源可能通过不同的生成路径描述同一个URL;重复会破坏路由、匹配和下游索引。
-
方法:构建一个以规范URL为键的字典,并在整合时强制唯一性。如果发现重复项,脚本会打印计数并移除它们。
其他步骤如何使用源嵌入
-
产品匹配:通过语义相似度将聚类或查询匹配到最接近的源项目(参见SEO产品匹配)。
-
相关搜索:相关搜索生成器使用嵌入相似度来建议相关的导航链接(参见SEO相关搜索)。
-
搜索服务:在线搜索可以使用索引嵌入上的向量相似度(参见搜索服务架构)。
另请参阅
-
SEO嵌入策略 — 模型选择和嵌入约定
-
SEO产品匹配 — 使用嵌入进行到产品/页面的路由
-
SEO相关搜索 — 嵌入应用于内部链接生成
-
搜索服务架构 — 嵌入如何在线提供
-
SEO流程概述 — 端到端流程上下文
参考资料
总结
-
是什么:将产品、零件和可发现页面嵌入到共享的向量空间中。
-
如何做:按规范URL整合和去重,然后仅增量嵌入已更改的项目。
-
为什么:这使得跨流程(匹配、相关搜索和在线向量搜索)的语义检索和路由成为可能。