导读

百度搜索是全球最大的中文搜索引擎,拥有着几十亿级的流量,作弊团伙通过各种各样的手段妄想从巨大的流量中不劳而获。搜索反作弊团队维护百度搜索生态安全和质量,经过不断探索并利用前沿技术过滤低质作弊网页,保护真正付出劳动的站长的利益。本文介绍了基于MarkupLM的网页建模方式,引入XPath embedding自动化提取作弊页面结构特征,并与文本结合来进行采集站点识别。

01 背景

1.1 业务背景

采集是指网站维护人员(下文中统称站长)通过程序或者人工手段,将他人网站的内容复制到自己的网站中的行为。优质的采集网站会在原有内容的基础上进行加工,为用户输出更有价值的内容,比如删掉不必要的内容、高成本的编辑和内容的重新排版等。而少量站长为了利用搜索引擎获取更多不法流量,无视用户的浏览体验,从别处大量采集内容并通过使用一些作弊手段来提升自身排名。

恶劣采集网站的展现会使得投入大量精力建设优质内容的站长流失本该属于他们的流量,造成站长获得的收益与付出的精力不匹配。长此以往,互联网上的原创内容将会越来越少,因此识别并打击这部分作弊站点,是维护站长创作公平性和搜索内容生态环境质量的关键。

网页结构建模在低质采集站上的识别应用_标记语言

△采集示例(1)

网页结构建模在低质采集站上的识别应用_HTML_02

△采集示例(2)

1.2 传统解决方案

恶劣采集站采集的内容排版质量差,将一些问答站(如知乎、百度知道等)的多个主题相似的问题和回答拼凑,如图1和图2所示。页面除了文本语义、句子通顺度特征外,也存在文本重复堆叠的特征。文本模型会难以捕捉到该类表征,因此需要结合网页结构和网页内容综合分析,常规的策略和技术手段可以分为:

  • 内容重复检测:
  • 文本指纹:通过构建网页指纹(如SimHash、MD5等)进行不同页面的相似文本识别。
  • 文本相似度:使用自然语言处理技术计算页面内容的语义相似度。
  • 网页结构分析:
  • DOM树分析:通过对比不同页面的DOM树结构,识别出结构高度相似的网页。
  • 网页标签分析:通过计算网页中特定HTML标签(如<div><p>等)的标签密度和套嵌关系进行内容堆叠识别
  • 机器学习模型:
  • 特征工程:结合HTML结构特征、内容相似度、用户行为等信号构建特征向量,用于训练机器学习模型。
  • 模型训练与验证:使用作弊站点和正常站点的样本数据进行模型训练,并通过交叉验证评估模型效果。
  • 持续学习与更新:不断优化特征集和模型参数,提高识别效果。
  • 辅助手段:除了技术识别手段之外,同步建立用户举报机制,收集用户关于内容质量的反馈,作为识别恶劣采集站的辅助手段

通过上述方法,可以有效地识别恶劣采集站,保护原创内容创作者的权益,提升搜索结果质量和用户浏览体验。但是随着对抗的深入,恶劣采集也呈现出新的形式,如

  • 多源拼凑:不再局限于简单地从少数网站进行采集,而是从网站、论坛、社交媒体等多个渠道进行内容采集和智能化拼凑,导致文章风格、语言表达和观点与正常页面差异变小
  • 内容改写:运用自然语言处理技术或文本替换工具,对采集内容进行同义词替换、语序调整等改写操作,使文本与原文有所不同,但核心内容并未改变,以此来逃避文本相似度检测

对于上述问题,需要同时结合页面排版特征和语义信息进行综合识别,将采集识别问题抽象成结合文本与布局信息实现视觉富文本文档理解(Visually-Rich Document Understanding,简称VRDU)的任务,同时考虑问题复杂度,采用预训练的MarkupLM模型识别恶劣采集页面。

02 MarkupLM模型

视觉富文本文档可以大致被分为两大类。

  • 第一类是固定布局的文档,比如扫描件和电子pdf等文件,这类文档是预先渲染并且布局固定。通过基于布局(layout-based)预训练模型进行文档理解和下游任务,如Xu等人(2020)\[1\]提出的LayoutLM为代表的基于文本、布局和图像的多模态预训练模型。
  • 第二类是标记语言文档(markup-language-based documents),如HTML、XML等,其布局和样式信息会动态地根据软件、硬件或操作系统来进行渲染可视化,这类无明确格式的布局信息不能直接用于预训练,使得基于布局的预训练模型难以应用。

不同于固定布局的文档,微软团队LI等人(2021)\[2\]提出一种针对基于标记(mark-up based)的VRDU任务的预训练模型-MarkupLM,利用基于树状结构的优势对文档中不同单元的关系进行建模,直接对网页类标记语言文档的源代码进行处理和学习。

在实际网页场景下,spammer通过一些手段隐藏和动态展现作弊内容。理论上,相较于渲染后的网页视觉信息,对网页html深度解析和建模也更能捕捉到一些潜在异常。

2.1 模型架构

模型整体采用BERT\[3\]架构作为编码器主干,为了在模型中加入基于标记语言的布局信息,在原有embedding layer上新增了一个XPath embedding模块。如图3所示,每个输入文本都对应一个XPath的嵌入表征向量。

网页结构建模在低质采集站上的识别应用_HTML_03

△图3.MarkupLM模型架构及预训练任务示意图

2.2 结构建模

MarkupLM利用标记语言中的DOM树和XPath来获取文档中的标记路径和对应自然文本。XPath是一种能便于从基于Dom树的标记语言文档里定位节点的查询语言,可以理解为Dom树中以深度优先遍历方式抽取出的从根节点到一段文本所在节点经过的路径。

具体如图4例子所示,“6.5 inch” 文本对应XPath表达式为 “/html/body/div/li\[1\]/div/span\[2\]”。“span” 代表节点的标记名,“\[2\]” 下标代表当多个相同名为 “span” 的节点在同一个父节点下时节点的序号。由此可见,XPath embedding可以被视为 LayoutLM 中 2D-position embedding 的替代,能够表达文本在标记文档中的位置信息。

网页结构建模在低质采集站上的识别应用_建模_04

△图4.HTML源码转成Dom树和XPath的例子

以图4的XPath表达为例,图5展示了如何得到其XPath嵌入表征网络结构。

网页结构建模在低质采集站上的识别应用_建模_05

△图5.XPath embedding详细结构

对于第i个输入token网页结构建模在低质采集站上的识别应用_标记语言_06,首先将它对应的XPath表达式按层级切分,得到一个包含不同深度上的Xpath单元列表

网页结构建模在低质采集站上的识别应用_HTML_07

d为XPath的深度,每个单元网页结构建模在低质采集站上的识别应用_HTML_08的两个元素分别为深度j的XPath单元的标签名及下标,对于无下标的单元则统一设置为0。随后在每层深度里,XPath Embedding模块均含有一个独立的标签嵌入表与下标嵌入表。因此每个 XPath 单元均会产生两个向量,分别为标签名称与下标的嵌入表征,随后两个向量相加即可得到各 XPath 单元的表征,即单元网页结构建模在低质采集站上的识别应用_HTML_08的表征为

网页结构建模在低质采集站上的识别应用_建模_10

为了保留单元之间的层次信息,该模块将所有单元的表示按原有位置进行拼接操作,得到整个 XPath 表达式的表示向量网页结构建模在低质采集站上的识别应用_标记语言_11

最后,为了匹配上原有输入的embedding向量维度同时保证模型稳定性,采用了一个前馈神经网络(FFN)来进行维度转换,并引入非线性激活函数增强表达能力,最终得到

网页结构建模在低质采集站上的识别应用_HTML_12

03 恶劣采集上的应用

在作弊网页识别的工作中,网页结构的多样化让规则性的策略难以识别,特定标签内容的提取需要人工手动参与。恶劣采集站点的识别更是如此,文不对题、段落拼凑等场景的识别都需要网页结构特征(标签、标签之间的关系等)和文本的共同参与。

对于文本采集的检测模型而言,需要具有理解节点间关系和对网页内容进行总结概括的能力来理解网页的上下文信息。为此,采集模型通过引入markuplm对于Xpath embedding表征部分来强化作弊识别能力。具体落地过程中,为了降低数据抽取、模型训练的时间和存储成本,采用ernie+XPath embedding结构,并在数据提取过程中只保留了文本标签(如<div>, <span>, <p>, <h1>等)对应的XPath和文本,以及限制深度优先遍历提取文本时的XPath深度。

为了有效捕捉标记html页面的复杂结构,我们参考了markuplm从token-level、node-level和page-level不同层面的三个预训练任务:掩码标记语言模型、节点关系预测,以及标题-页面匹配。

  • 掩码标记语言模型(Masked Markup Language Modeling, MMLM):任务用来提高模型根据标记线索对语言的建模能力,输入数据中文本的token会被随机按比例替换成[MASK], 同时会保留所有的XPath信息(包括被替换的token对应的XPath), 模型基于所有标记线索(XPath信息)来完成文本的“完形填空”的任务。
  • 节点关系预测(Node Relation Prediction, NRP):为增强模型对Xpath embedding表征里Xpath语义信息的理解,MarkupLM通过节点级别的节点关系预测任务去显示地建模一对节点之间的关系。具体上,我们首先定义一个有向的节点关系集合,包括:自己,父,子,兄弟,祖先,子孙和其他。然后随机组合每个样本上的节点获得节点对,并根据节点关系集合分配相应的标签,模型需要用每个节点的第一个token的输出表征来预测分配的节点关系。模型对节点之间关系的理解非常有助于我们自动化地挖掘作弊页面中一些特殊结构特征,例如图6所示采集作弊页面html源码中具有的特征:同一个<div>下有多个由<h2>和<p>组合成的段落,且互相为兄弟节点。再结合语言模型本身对文本的通顺度和相似性上的判别能力,模型就可以认为这一内容片段出现在的网页很可能是恶劣采集作弊页面。
  • 标题-页面匹配(Ttile-Page Matching, TPM):除了文本标记带来的精细粒度信息,句子级别和主体级别的信息也对标记语言文档的学习有帮助。对于网页来说,元素<title>可以代表正文<body>内容的概括性总结,这就为较高级的语义提供了监督性。利用网页中这种天然的自监督特性,额外增加了一个页面级别的预训练任务:随机替换标记语言文档样本中<title>标签里的文本,让模型对每个输入根据输出序列中的[CLS]表示判断样本是否被替换。采集作弊页面中也不乏文不对题的案例,我们将这些页面加入预训练,提升模型判断页面title与正文内容是否匹配的能力,让模型在做恶劣采集识别的下游任务时,可以本能地提取到标题与正文不匹配这样的恶劣采集特征,对识别具有这部分特征的采集页面具有极大促进作用。

网页结构建模在低质采集站上的识别应用_HTML_13

△图6. 采集页面html源码片段

3.1 效果验证

通过下面两个实验来验证采集模型引入XPath embedding后的效果增益

  • 实验1: 从黑白样本中提取text和XPath对并将其打乱。把黑text-白XPath、白text-黑xpath、黑text-黑xpath和白text-白XPath混合拼接并通过裁剪对齐生成一些新text-path对的样本,分别计算识别为作弊的比例。

网页结构建模在低质采集站上的识别应用_HTML_14

  • 实验2: mask掉XPath,将每个token对应的XPath embedding通过<pad>标签和下标为0对应的embedding替换掉,评估准召。测试集黑白比1:1情况下实验结果为:recall=0.121,precisinotallow=0.829,accuracy=0.548。

由两个实验分析可得:

  • 实验1中白XPath+任意text识别为黑的比例都非常少,不足总量10%,而以黑xpath+任意text的组合识别为黑的比例比较多,当白text+黑xpath组合时模型识别作弊比例接近一半,全黑组合则几乎都被识别为作弊。
  • 实验2中模型单纯对文本进行预测时,会将几乎所有样本预测为非作弊,模型召回能力较差,效果类似在作弊与非作弊间做随机二选一

3.2 采集模型新增识别页面

相比规则性的策略,引入网页结构信息的模型能更加灵活地根据标签与标签之间的关系去做判别。当规则中只有针对<h2>或<h3>标签的段落进行采集特征捕获时,图7中的作弊页面会因为采集特征的段落在<h5>和<li>标签上(从图8中可知)被漏过,而基于页面结构和文本建模的采集模型则依然可以识别。

网页结构建模在低质采集站上的识别应用_HTML_15

△图7. 采集示例(3)

网页结构建模在低质采集站上的识别应用_标记语言_16

△图8. 采集示例(3)源码片段

相比单纯基于文本的语言模型(如句子通顺度模型、文章拼接模型),融合网页结构的模型更容易从网站全局识别一些文章与网站主旨严重偏移的页面。如图9和图10中两个同样属于采集作弊站的页面,左图的页面标题与内容毫无关联,段落间也毫无相似处,会同时被文章级拼接模型(能够识别文章段落是否拼接、是否文不对题)和采集模型识别为采集作弊;而右图中标题与内容关联度高,段落间表达语义情感相似,文章拼接模型则无法识别作弊,采集模型能够根据页面里导航条和网页所属主题等方式进行判断识别为采集。

网页结构建模在低质采集站上的识别应用_HTML_17

△图9. 采集示例(4)

网页结构建模在低质采集站上的识别应用_标记语言_18

△图10. 采集示例(5)

04 总结和展望

本文首先讨论了恶劣采集作弊站点的识别难点,以及利用网页结构信息进行辅助识别的必要性。然后介绍了MarkupLM对于内容文本和页面排版的优势。最后介绍反作弊方向将MarkupLM建模方法应用于恶劣采集站上的识别,并通过实验展示XPath embedding结构对于识别作弊站的效果。

除了应用在恶劣采集站的识别上,这样引入网页结构信息的建模方式还可以尝试扩展到其他的一些针对网页类型的作弊识别模型上,亦或是作为网页特征提取的基座对作弊页面实现多分类功能。

参考文献

[1] Yiheng Xu, Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, and Ming Zhou. 2020. Layoutlm: Pretraining of text and layout for document image understanding. In KDD ’20: The 26th ACM SIGKDD Conference on Knowledge Discovery and Data Mining, Virtual Event, CA, USA, August 23-27, 2020, pages 1192–1200. ACM.

[2] Junlong Li, Yiheng Xu, Lei Cui, and Furu Wei. 2021. MarkupLM: Pre-training of Text and Markup Language for Visually-rich Document Understanding. arXiv:2110.08518 [cs.CL]

[3] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of deep bidirectional transformers for language understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pages 4171–4186, Minneapolis, Minnesota. Association for Computational Linguistics.

————END————

推荐阅读

海量存储的批量计算框架

百度垂搜一站式研发平台演进实践

初探图谱Embedding用于异常检测(一)

AIAPI - 转向AI原生检索

AI Agent重塑微服务治理