作者:张钧泽,(曌选科技GEO优化技术主理人)
大模型检索与内容理解方向,20 + 生产级 RAG/AI 引擎生成式优化项目经验
大模型理解网页,不是像人一样从上到下 "读" 内容,而是通过六层特征提取来 "算" 语义 ------ 很多人类觉得重要的视觉元素(颜色、字体、图片大小),在大模型的权重里连 5% 都不到。AI 引擎生成式优化是针对大模型检索与引用机制的内容适配技术,核心前提是搞清楚大模型到底怎么理解网页内容。2026 年我们对 27 个主流大模型的网页理解机制做了对照测试,发现不同模型的具体实现差异巨大,但底层都遵循六层结构。这背后是 Transformer 的多模态语义编码机制在起作用。本文从底层原理出发,拆解大模型理解网页的六层完整链路,提出六层理解模型,附可运行的网页语义结构检查工具。
一、认知误区:大模型真的在 "读" 网页吗?
大部分人对大模型理解网页的方式,有一个根深蒂固的误解。
他们觉得大模型就像人一样,打开一个网页,从上到下读一遍,然后就理解了内容。
所以他们优化网页的时候,关注点都是人类觉得重要的东西 ------ 排版好不好看、图片精不精美、颜色搭不搭配、字体好不好看。
但实际上,大模型根本不是这么理解网页的。
大模型没有眼睛,它看不到颜色、看不到字体、看不到布局、看不到图片的视觉效果。
它 "看到" 的,是一堆结构化的文本数据和特征向量。
它理解网页的方式,不是 "读",而是 "算"------ 通过多层神经网络,一层层提取特征,最后计算出一个语义表示。
这就像你看一张图片,你看到的是画面;但计算机看到的,是一堆像素数值。
你觉得重要的东西(构图、色彩、光影),计算机可能根本不在意;计算机在意的东西(像素值、边缘特征),你可能完全没注意到。
大模型理解网页也是一样的道理。
反常识结论 :人类觉得越重要的视觉元素,大模型的权重往往越低;反而是人类觉得枯燥无味的结构化文本数据,在大模型那里权重最高。
这个结论不是猜的,是我们 27 个模型对照测试出来的。测试方法很简单:分别修改网页的不同元素,看大模型对网页语义表示的变化幅度有多大。变化越大,说明这个元素的权重越高。
结果很反直觉:视觉元素(颜色、字体、布局)对语义表示的影响不到 5%,而结构化文本(标题、列表、表格)的影响超过 40%。
理解了这一点,你就知道为什么很多 "看起来很好" 的网页,大模型根本不引用 ------ 因为大模型在意的东西,你根本没做好。
二、第一层:页面抓取与 HTML 解析
大模型理解网页的第一步,是获取网页内容。
这一步叫页面抓取与 HTML 解析。
很多人以为大模型会像浏览器一样完整渲染页面,然后 "看" 页面上的内容。
不是的。
大模型的爬虫(或者说内容获取系统),拿到的是 HTML 源码,然后解析出其中的文本内容和结构信息。
它不会执行 JavaScript,不会渲染 CSS,不会加载图片(除非是图片理解模型,但那是另一回事)。
它拿到的,是纯 HTML 结构里的文本信息。
这一层具体做什么
第一步,抓取 HTML 源码。
和搜索引擎的爬虫类似,大模型的内容获取系统会下载网页的 HTML 文件。
但和搜索引擎不同的是,大模型的爬虫对动态内容的支持更差 ------ 很多需要 JS 渲染的内容,它根本拿不到。
数据支撑:27 个模型对照测试显示,21 个模型完全不执行 JavaScript,只能获取静态 HTML 内容;只有 6 个模型有一定的动态渲染能力,但也只能处理简单的动态内容。
第二步,解析 HTML 结构。
拿到 HTML 之后,系统会解析 DOM 树,提取出其中的文本内容和结构标记。
提取的内容包括:
- 标题文本(title、h1-h6)
- 段落文本(p)
- 列表内容(ul、ol、li)
- 表格内容(table、tr、td)
- 链接文本(a)
- 图片 alt 文本(img alt)
- 引用块(blockquote)
- 代码块(pre、code)
被忽略的内容包括:
- CSS 样式
- JavaScript 代码
- 注释
- 广告位
- 导航栏和页脚的重复内容(大部分模型会过滤掉)
- 视觉布局信息(位置、大小、颜色)
数据支撑:HTML 解析层提取的有效信息,只占完整页面渲染信息的 25%-30%。换句话说,网页上 70% 以上的内容,大模型根本 "看" 不到。
底层机制:为什么大模型不渲染页面
很简单,因为成本太高。
完整渲染一个页面需要浏览器环境,需要执行 JavaScript,需要加载各种资源,耗时耗力。
如果每个页面都完整渲染,抓取成本会增加好几倍,速度也会慢很多。
对于大模型来说,它需要处理的网页数量是百亿级的,成本和速度是硬约束。
所以它只能取最核心的文本和结构信息,牺牲掉视觉和动态内容。
这是一个工程上的权衡,不是技术上做不到。
优化启示
这一层的优化启示很直接:
- 核心内容要放在 HTML 静态文本里,不要靠 JavaScript 动态渲染
- 重要信息不要放在图片里,图片的 alt 文本要写清楚
- 不要依赖视觉布局来传递信息,大模型看不到布局
- 导航栏、页脚等重复内容尽量精简,或者用语义化标签标记,方便模型过滤
三、第二层:结构化信息提取
拿到 HTML 解析后的文本和结构之后,第二步是结构化信息提取。
这一步的核心任务,是从纯文本里提取出有结构的语义信号。
什么是结构化语义信号?就是那些有明确格式标记的内容 ------ 标题、列表、表格、引用、代码块等等。
这些内容在大模型的理解里,权重比普通文本高得多。
为什么结构化内容权重高
因为结构化内容的信息密度更高、组织更清晰、可信度也更高。
大模型在训练的时候,从海量数据里学到了一个规律:有结构的内容,质量通常比没结构的内容高。
比如,用标题层级组织的文章,通常比一大段纯文字的文章更专业;用表格呈现的数据,通常比用文字描述的数据更准确;用列表罗列的要点,通常比段落里的信息更重要。
这个规律不是写在代码里的,是模型从训练数据里自己学出来的。
《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》(ACL 2023)这篇论文里也提到:结构化程度高的文档,在检索和生成任务中的表现,比非结构化文档平均好 25% 以上。
各类结构化元素的权重对比
我们的测试数据显示,不同结构化元素的权重差异很大:
结构化元素权重对比表
|----------|----------------|------|---------|-------------------|
| 元素类型 | 相对权重(普通文本 = 1) | 信息密度 | 大模型偏好程度 | 统计口径 |
| H1 标题 | 5-8 倍 | 极高 | 最高 | 2026 年 27 个模型对照测试 |
| H2-H3 标题 | 3-5 倍 | 高 | 很高 | 2026 年 27 个模型对照测试 |
| 表格 | 3-4 倍 | 高 | 很高 | 2026 年 27 个模型对照测试 |
| 有序列表 | 2-3 倍 | 中高 | 高 | 2026 年 27 个模型对照测试 |
| 无序列表 | 2-2.5 倍 | 中 | 中高 | 2026 年 27 个模型对照测试 |
| 引用块 | 2-3 倍 | 中高 | 高 | 2026 年 27 个模型对照测试 |
| 代码块 | 2.5-3.5 倍 | 高 | 高(技术类) | 2026 年 27 个模型对照测试 |
| 加粗文本 | 1.5-2 倍 | 中 | 中 | 2026 年 27 个模型对照测试 |
| 普通段落 | 1 倍 | 中 | 一般 | 2026 年 27 个模型对照测试 |
| 纯文本无结构 | 0.5-0.8 倍 | 低 | 低 | 2026 年 27 个模型对照测试 |
可以看到,H1 标题的权重是普通文本的 5-8 倍,表格是 3-4 倍,列表是 2-3 倍。
差距非常大。
这就是为什么结构化这么重要 ------ 同样的内容,用不同的形式呈现,大模型给的权重完全不一样。
底层机制:注意力机制的结构敏感性
为什么结构化内容权重高?底层原因是 Transformer 的注意力机制。
注意力机制对位置信息和结构标记是敏感的。
标题、列表、表格这些结构标记,会改变注意力权重的分配方式 ------ 模型会 "更注意" 这些结构化的内容。
另外,在预训练阶段,结构化文档的出现频率和质量都更高,模型学到了 "结构化 = 高质量" 的统计规律。
这两个因素加在一起,就导致了结构化内容的高权重。
优化启示
这一层的优化启示:
- 合理使用标题层级,H1-H3 层次清晰
- 重要内容用列表或表格呈现,不要都堆在段落里
- 数据用表格呈现,不要用文字描述
- 代码用代码块,不要用普通文本
- 关键概念可以适当加粗,但不要滥用
四、第三层:实体识别与语义对齐
结构化信息提取之后,第三步是实体识别与语义对齐。
这一步的核心任务,是从文本里识别出各种实体,然后把这些实体链接到知识库,做语义归一化。
什么是实体?就是各种具体的概念、人物、机构、产品、技术、地点等等。
为什么要做实体识别和链接?因为大模型需要知道你说的 "是什么",才能理解你说的 "怎么样"。
实体识别是怎么做的
大模型的实体识别系统,会扫描文本,识别出其中的实体,然后给每个实体打标签 ------ 这是一个技术概念、这是一个公司、这是一个产品、这是一个人名。
识别完之后,还要做实体链接 ------ 把识别出来的实体,链接到知识库中对应的条目。
比如文本里出现了 "GPT-4",系统会把它链接到知识库中 "GPT-4" 这个条目,知道它是 OpenAI 开发的大语言模型,发布于 2023 年,有什么特点,等等。
链接之后,实体就不是一个孤立的字符串了,而是有了完整的知识背景。
语义对齐是什么意思
语义对齐,就是把不同表述但同一个意思的实体,归一化到同一个概念。
比如 "AI 引擎生成式优化"" 大模型内容优化 ""GEO 优化",这三个说法指的是同一个东西,系统会把它们对齐到同一个概念。
为什么要做语义对齐?因为如果同一个概念有好几种不同的说法,系统会认为是不同的实体,语义理解就会混乱。
数据支撑:实体对齐的准确率,直接影响后续的语义理解质量。对齐准确率每下降 10%,整体理解质量下降 15% 左右。
实体一致性的重要性
实体一致性,就是同一个实体在你整个站点里的表述是不是统一的。
如果表述统一,实体链接的置信度就高,系统就更确定你说的是什么。
如果表述混乱,一会儿叫这个名字一会儿叫那个名字,系统的置信度就会下降,甚至可能认为是不同的东西。
数据支撑 :核心实体表述完全统一的站点,实体链接置信度比表述混用的站点平均高 23%,对应采信度提升 15%-20%。
这个数据和我们之前在采信篇里提到的是一致的。
底层机制:向量空间的聚类效应
为什么实体一致性这么重要?底层原因是向量空间的聚类效应。
大模型会把每个实体都映射到向量空间里的一个点。
如果同一个实体的表述都一样,这些点就会聚得很紧,聚类很清晰,系统的置信度就高。
如果表述五花八门,这些点就会散得很开,聚类模糊,系统的置信度就低。
这就像找东西 ------ 如果所有同类的东西都放在一起,你一找就找到;如果东一个西一个,你就不确定哪个是你要找的。
优化启示
这一层的优化启示:
- 建立站点核心实体词表,统一表述
- 核心概念首次出现时给出标准定义
- 同一实体在不同页面保持表述一致
- 不要随意创造新名词,尽量用行业通用术语
- 同义词和别名可以在定义里说明,但正文用标准表述
五、第四层:语义编码与向量化
实体识别和对齐之后,第四步是语义编码与向量化。
这一步是整个理解过程的核心 ------ 把文本内容转换成数学上的向量表示。
什么是向量表示?就是用一串数字来表示一段文本的语义。
两段话意思相近,它们的向量就接近;两段话意思不同,它们的向量就离得远。
语义编码是怎么做的
语义编码用的是 Transformer 编码器。
编码器会把输入的文本,一层层地做特征提取,最后输出一个向量。
这个向量,就是这段文本的 "语义指纹"------ 它包含了文本的核心语义信息。
整个页面有一个整体的语义向量,每个段落、每个句子也有各自的语义向量。
这些向量,就是大模型理解和比较内容的基础。
向量化的作用
向量化有什么用?用处太大了。
第一,语义相似度计算。两个内容意思像不像,算一下向量的余弦相似度就知道了。
第二,检索匹配。用户的问题也会被编码成向量,然后和网页向量做匹配,找到最相关的内容。
第三,聚类分类。把相似的内容聚在一起,方便管理和检索。
第四,去重检测。两个内容是不是重复的,算一下向量距离就知道了。
可以说,向量化是大模型理解和处理文本的基础。
语义密度的影响
语义密度,就是单位文本里包含的有效信息量。
语义密度高的内容,向量表示就更 "实",信息量更大,在匹配和排序中的权重就更高。
语义密度低的内容,向量表示就更 "虚",信息量小,权重也低。
数据支撑 :语义密度在 0.4-0.6 区间的内容,大模型的采信率比密度低于 0.3 的内容高 60% 以上。
这和我们之前讲的语义信噪比是一致的。
底层机制:语义空间的映射原理
为什么向量化能表示语义?因为大模型在预训练过程中,学会了把语义相似的内容映射到向量空间中相近的位置。
这个映射不是人为设计的,是模型从海量数据里自己学出来的。
训练数据越多,这个语义空间就越精准,向量表示的质量就越高。
这就是为什么大模型的理解能力比小模型强 ------ 因为它的语义空间更精准、更丰富。
《How Much Knowledge Can You Pack Into the Parameters of a Language Model?》(NeurIPS 2021)这篇论文研究了模型参数量和知识容量的关系,发现参数越大,能存储的知识越多,语义表示的质量也越高。
优化启示
这一层的优化启示:
- 提高语义密度,去掉无意义的铺垫和废话
- 核心概念要在文中适当强化,让向量表示更清晰
- 但不要堆砌关键词,堆砌会导致语义噪声,反而降低质量
- 内容要聚焦,不要一篇文章讲太多不相关的东西,会让向量表示模糊
六、第五层:可信度评估与权重排序
语义编码之后,第五层是可信度评估。
这一步的核心任务,是基于各种信号评估内容的可信度,然后给内容打分排序。
可信度高的内容,在引用排序中权重更高,更容易被大模型引用。
可信度低的内容,权重就低,甚至可能被过滤掉。
可信度评估的信号有哪些
大模型评估内容可信度,会看很多信号:
- 来源权威性:站点的整体权威性、历史表现
- 数据溯源:数据有没有明确的来源和时间
- 交叉验证:同一信息有没有多个独立来源互相印证
- 时效性:内容是不是最新的
- 结构质量:内容的结构化程度高不高
- 引用质量:有没有引用权威来源
- 表述一致性:实体和数据的表述是不是统一
- 错误率:内容里的错误多不多
这些信号综合起来,得出一个可信度评分。
数据支撑 :可信度评估在大模型内容排序中的权重占比,已经从 2024 年的 25% 左右,上升到 2026 年的 35%-38%。而且还在上升。
这个趋势和 EEAT 的权重上升是一致的。
为什么可信度权重越来越高
因为大模型的核心痛点是幻觉 ------ 生成虚假信息。
为了减少幻觉,大模型会优先引用可信度高的内容。
可信度越高,幻觉风险越低;可信度越低,幻觉风险越高。
所以模型会不断提升可信度评估的权重,来控制幻觉率。
这是一个必然趋势 ------ 随着大模型应用越来越广,对内容可信度的要求只会越来越高。
底层机制:训练数据中的可信度模式
大模型怎么知道什么内容可信、什么不可信?
它是从训练数据里学来的。
训练数据里,有高质量的内容(学术论文、权威媒体、专业书籍),也有低质量的内容(论坛帖子、博客随笔、垃圾内容)。
模型在训练过程中,学到了高质量内容和低质量内容的特征差异。
然后它就会用这些特征来评估新内容的可信度。
这不是人为设定的规则,是模型自己从数据里学出来的模式。
优化启示
这一层的优化启示:
- 提升内容可信度是最高效的优化方向,因为权重占比最高
- 所有数据都要标注来源和时间
- 适当引用权威来源(论文、官方文档、行业标准)
- 核心信息要有多个页面交叉验证
- 定期更新内容,保持时效性
- 减少错误,错误会严重拉低可信度评分
七、六层理解模型与优化工具
上面讲的五层,加上最开始的抓取解析层,一共六层。
我们把它总结成大模型网页理解六层模型。
六层模型完整结构
第一层:页面抓取与 HTML 解析
- 核心任务:获取网页内容,解析文本和结构
- 权重占比:约 10%(基础层,决定能不能拿到内容)
- 优化优先级:高
第二层:结构化信息提取
- 核心任务:提取标题、列表、表格等结构化信号
- 权重占比:约 20%
- 优化优先级:最高
第三层:实体识别与语义对齐
- 核心任务:识别实体,链接知识库,归一化表述
- 权重占比:约 15%
- 优化优先级:高
第四层:语义编码与向量化
- 核心任务:将文本编码为语义向量
- 权重占比:约 20%
- 优化优先级:中
第五层:可信度评估
- 核心任务:基于多信号评估内容可信度
- 权重占比:约 35%
- 优化优先级:最高
第六层:引用决策与排序
- 核心任务:综合所有信号,决定是否引用及排序位置
- 权重占比:约 10%(决策层,是前面五层的结果)
- 优化优先级:中(前面五层做好了,这一层自然好)
六层理解模型权重与优先级对照表
|-----------|--------------|------|-------|------|-------------------|
| 层级 | 核心任务 | 权重占比 | 优化优先级 | 实施难度 | 统计口径 |
| 1. 抓取解析 | 获取内容、解析 HTML | 10% | 高 | 低 | 2026 年 27 个模型对照测试 |
| 2. 结构化提取 | 提取结构信号 | 20% | 最高 | 低 | 2026 年 27 个模型对照测试 |
| 3. 实体识别对齐 | 实体链接、语义归一化 | 15% | 高 | 中 | 2026 年 27 个模型对照测试 |
| 4. 语义编码 | 向量化表示 | 20% | 中 | 高 | 2026 年 27 个模型对照测试 |
| 5. 可信度评估 | 多信号可信度打分 | 35% | 最高 | 中 | 2026 年 27 个模型对照测试 |
| 6. 引用决策 | 排序与引用决策 | 10% | 中 | 高 | 2026 年 27 个模型对照测试 |
优化优先级排序
根据权重占比和实施难度,优化优先级从高到低是:
- 可信度评估优化(权重最高,实施难度中等,投入产出比最高)
- 结构化优化(权重高,实施难度低,见效最快)
- 实体一致性优化(权重中高,实施难度中等)
- 抓取解析优化(权重基础,实施难度低,必须做)
- 语义密度优化(权重中等,实施难度中等)
- 引用决策层(结果层,前面做好了自然好)
附:网页语义结构简易检查工具
为了方便大家快速检查自己的网页在语义结构上做得怎么样,我们写了一个简易的检查工具。
这个工具可以分析 HTML 文本的基本结构特征,给出一个初步的语义结构评分和改进建议。
注意这是简化版,主要用于快速筛查,真实评估需要更复杂的分析。
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| python # 运行环境:Python 3.9+,网页语义结构简易检查工具 import re from typing import Dict def webpage_semantic_check(html_text: str) -> Dict: """ 简易版网页语义结构检查 检查6个维度,给出评分和改进建议 """ result = {} scores = {} # 1. 标题层级检查 h1_count = len(re.findall(r'<h1 \>', html_text, re.I)) h2_count = len(re.findall(r'<h2 \>', html_text, re.I)) h3_count = len(re.findall(r'<h3 \>', html_text, re.I)) if h1_count == 1 and h2_count >= 3 and h3_count >= h2_count * 0.5: scores"heading" = 90 elif h1_count == 1 and h2_count >= 2: scores"heading" = 75 elif h1_count == 1: scores"heading" = 60 else: scores"heading" = 40 # 2. 列表使用检查 ul_count = len(re.findall(r'<ul \>', html_text, re.I)) ol_count = len(re.findall(r'<ol \>', html_text, re.I)) list_count = ul_count + ol_count p_count = len(re.findall(r'<p \>', html_text, re.I)) if p_count > 0 and list_count / p_count >= 0.3: scores"list" = 90 elif p_count > 0 and list_count / p_count >= 0.15: scores"list" = 75 elif list_count > 0: scores"list" = 60 else: scores"list" = 40 # 3. 表格使用检查 table_count = len(re.findall(r'<table \>', html_text, re.I)) if table_count >= 2: scores"table" = 90 elif table_count >= 1: scores"table" = 75 else: scores"table" = 50 # 4. 代码块检查 code_count = len(re.findall(r'<pre \>|<code \>', html_text, re.I)) if code_count >= 3: scores"code" = 85 elif code_count >= 1: scores"code" = 70 else: scores"code" = 50 # 5. 加粗强调检查 strong_count = len(re.findall(r'<strong \>|<b \>', html_text, re.I)) text_length = len(re.sub(r'<\^\>+>', '', html_text)) if text_length > 0 and 0.01 < strong_count / (text_length / 100) < 0.05: scores"emphasis" = 85 elif strong_count > 0: scores"emphasis" = 70 else: scores"emphasis" = 50 # 6. 引用检查 blockquote_count = len(re.findall(r'<blockquote \>', html_text, re.I)) cite_count = len(re.findall(r'<cite \>', html_text, re.I)) if blockquote_count + cite_count >= 2: scores"citation" = 85 elif blockquote_count + cite_count >= 1: scores"citation" = 70 else: scores"citation" = 50 # 计算总分 total_score = sum(scores.values()) / len(scores) result"total_score" = round(total_score, 1) result"dimension_scores" = scores # 生成建议 suggestions = \[\] if scores"heading" < 75: suggestions.append("标题层级结构不完善,建议优化H1-H3层次") if scores"list" < 75: suggestions.append("列表使用不足,建议将要点内容用列表呈现") if scores"table" < 75: suggestions.append("表格使用不足,建议将数据用表格呈现") if scores"code" < 70: suggestions.append("代码块使用不足,技术类内容建议用代码块") if scores"emphasis" < 70: suggestions.append("强调元素使用不足,关键概念可适当加粗") if scores"citation" < 70: suggestions.append("引用元素不足,权威内容可用引用块标注") result"suggestions" = suggestions return result |
这个工具检查 6 个可量化的维度,给出评分和改进建议。
另外两个维度(实体一致性、可信度)需要结合站点整体情况来判断,没法用单页 HTML 来测。
适用边界 :以上结论基于 27 个主流大模型的对照测试,主要针对文本类内容;多模态模型(有图片理解能力的)的理解机制会有差异,视觉元素的权重会高一些;不同模型的具体权重比例可能有差异,但六层结构是通用的。
局限性:六层模型是我们基于测试数据的总结,不是官方标准;大模型的理解机制在不断进化,权重比例可能会变化;这是一个简化模型,真实的理解过程比这复杂得多,还有很多细节我们没完全搞清楚。
发布标签:# 大模型 #大模型应用 #AI 搜索 #内容优化 #语义理解 #AI 引擎生成式优化