点击蓝字,关注我们
01
1.1 业务背景
采集是指网站维护人员(下文中统称站长)通过程序或者人工手段,将他人网站的内容复制到自己的网站中的行为。优质的采集网站会在原有内容的基础上进行加工,为用户输出更有价值的内容,比如删掉不必要的内容、高成本的编辑和内容的重新排版等。而少量站长为了利用搜索引擎获取更多不法流量,无视用户的浏览体验,从别处大量采集内容并通过使用一些作弊手段来提升自身排名。
恶劣采集网站的展现会使得投入大量精力建设优质内容的站长流失本该属于他们的流量,造成站长获得的收益与付出的精力不匹配。长此以往,互联网上的原创内容将会越来越少,因此识别并打击这部分作弊站点,是维护站长创作公平性和搜索内容生态环境质量的关键。
△采集示例(1)
△采集示例(2)
1.2 传统解决方案
恶劣采集站采集的内容排版质量差,将一些问答站(如知乎、百度知道等)的多个主题相似的问题和回答拼凑,如图1和图2所示。页面除了文本语义、句子通顺度特征外,也存在文本重复堆叠的特征。文本模型会难以捕捉到该类表征,因此需要结合网页结构和网页内容综合分析,常规的策略和技术手段可以分为:
内容重复检测:
文本指纹:通过构建网页指纹(如SimHash、MD5等)进行不同页面的相似文本识别。
文本相似度:使用自然语言处理技术计算页面内容的语义相似度。
网页结构分析:
DOM树分析:通过对比不同页面的DOM树结构,识别出结构高度相似的网页。
网页标签分析:通过计算网页中特定HTML标签(如<div>
、<p>
等)的标签密度和套嵌关系进行内容堆叠识别
机器学习模型:
特征工程:结合HTML结构特征、内容相似度、用户行为等信号构建特征向量,用于训练机器学习模型。
模型训练与验证:使用作弊站点和正常站点的样本数据进行模型训练,并通过交叉验证评估模型效果。
持续学习与更新:不断优化特征集和模型参数,提高识别效果。
辅助手段:除了技术识别手段之外,同步建立用户举报机制,收集用户关于内容质量的反馈,作为识别恶劣采集站的辅助手段
对于上述问题,需要同时结合页面排版特征和语义信息进行综合识别,将采集识别问题抽象成结合文本与布局信息实现视觉富文本文档理解(Visually-Rich Document Understanding,简称VRDU)的任务,同时考虑问题复杂度,采用预训练的MarkupLM模型识别恶劣采集页面。
02
视觉富文本文档可以大致被分为两大类。
不同于固定布局的文档,微软团队LI等人(2021)[2]提出一种针对基于标记(mark-up based)的VRDU任务的预训练模型-MarkupLM,利用基于树状结构的优势对文档中不同单元的关系进行建模,直接对网页类标记语言文档的源代码进行处理和学习。
在实际网页场景下,spammer通过一些手段隐藏和动态展现作弊内容。理论上,相较于渲染后的网页视觉信息,对网页html深度解析和建模也更能捕捉到一些潜在异常。
2.1 模型架构
模型整体采用BERT[3]架构作为编码器主干,为了在模型中加入基于标记语言的布局信息,在原有embedding layer上新增了一个XPath embedding模块。如图3所示,每个输入文本都对应一个XPath的嵌入表征向量。
△图3.MarkupLM模型架构及预训练任务示意图
2.2 结构建模
MarkupLM利用标记语言中的DOM树和XPath来获取文档中的标记路径和对应自然文本。XPath是一种能便于从基于Dom树的标记语言文档里定位节点的查询语言,可以理解为Dom树中以深度优先遍历方式抽取出的从根节点到一段文本所在节点经过的路径。
具体如图4例子所示,“6.5 inch” 文本对应XPath表达式为 “/html/body/div/li[1]/div/span[2]”。“span” 代表节点<span>的标记名,“[2]” 下标代表当多个相同名为 “span” 的节点在同一个父节点下时节点的序号。由此可见,XPath embedding可以被视为 LayoutLM 中 2D-position embedding 的替代,能够表达文本在标记文档中的位置信息。
△图4.HTML源码转成Dom树和XPath的例子
以图4的XPath表达为例,图5展示了如何得到其XPath嵌入表征网络结构。
△图5.XPath embedding详细结构
对于第i个输入token$x_i$,首先将它对应的XPath表达式按层级切分,得到一个包含不同深度上的Xpath单元列表
d为XPath的深度,每个单元$(t_{j}^{i}, s_{j}^{i})$的两个元素分别为深度j的XPath单元的标签名及下标,对于无下标的单元则统一设置为0。随后在每层深度里,XPath Embedding模块均含有一个独立的标签嵌入表与下标嵌入表。因此每个 XPath 单元均会产生两个向量,分别为标签名称与下标的嵌入表征,随后两个向量相加即可得到各 XPath 单元的表征,即单元$(t_{j}^{i}, s_{j}^{i})$的表征为
为了保留单元之间的层次信息,该模块将所有单元的表示按原有位置进行拼接操作,得到整个 XPath 表达式的表示向量$[ue_{0}^{i}; ue_{1}^{i};... ; ue_{d}^{i}]$。
最后,为了匹配上原有输入的embedding向量维度同时保证模型稳定性,采用了一个前馈神经网络(FFN)来进行维度转换,并引入非线性激活函数增强表达能力,最终得到
03
在作弊网页识别的工作中,网页结构的多样化让规则性的策略难以识别,特定标签内容的提取需要人工手动参与。恶劣采集站点的识别更是如此,文不对题、段落拼凑等场景的识别都需要网页结构特征(标签、标签之间的关系等)和文本的共同参与。
对于文本采集的检测模型而言,需要具有理解节点间关系和对网页内容进行总结概括的能力来理解网页的上下文信息。为此,采集模型通过引入markuplm对于Xpath embedding表征部分来强化作弊识别能力。具体落地过程中,为了降低数据抽取、模型训练的时间和存储成本,采用ernie+XPath embedding结构,并在数据提取过程中只保留了文本标签(如<div>, <span>, <p>, <h1>等)对应的XPath和文本,以及限制深度优先遍历提取文本时的XPath深度。
为了有效捕捉标记html页面的复杂结构,我们参考了markuplm从token-level、node-level和page-level不同层面的三个预训练任务:掩码标记语言模型、节点关系预测,以及标题-页面匹配。
△图6. 采集页面html源码片段
3.1 效果验证
通过下面两个实验来验证采集模型引入XPath embedding后的效果增益
由两个实验分析可得:
3.2 采集模型新增识别页面
相比规则性的策略,引入网页结构信息的模型能更加灵活地根据标签与标签之间的关系去做判别。当规则中只有针对<h2>或<h3>标签的段落进行采集特征捕获时,图7中的作弊页面会因为采集特征的段落在<h5>和<li>标签上(从图8中可知)被漏过,而基于页面结构和文本建模的采集模型则依然可以识别。
△图7. 采集示例(3)
△图8. 采集示例(3)源码片段
相比单纯基于文本的语言模型(如句子通顺度模型、文章拼接模型),融合网页结构的模型更容易从网站全局识别一些文章与网站主旨严重偏移的页面。如图9和图10中两个同样属于采集作弊站的页面,左图的页面标题与内容毫无关联,段落间也毫无相似处,会同时被文章级拼接模型(能够识别文章段落是否拼接、是否文不对题)和采集模型识别为采集作弊;而右图中标题与内容关联度高,段落间表达语义情感相似,文章拼接模型则无法识别作弊,采集模型能够根据页面里导航条和网页所属主题等方式进行判断识别为采集。
△图9. 采集示例(4)
△图10. 采集示例(5)
04
本文首先讨论了恶劣采集作弊站点的识别难点,以及利用网页结构信息进行辅助识别的必要性。然后介绍了MarkupLM对于内容文本和页面排版的优势。最后介绍反作弊方向将MarkupLM建模方法应用于恶劣采集站上的识别,并通过实验展示XPath embedding结构对于识别作弊站的效果。
除了应用在恶劣采集站的识别上,这样引入网页结构信息的建模方式还可以尝试扩展到其他的一些针对网页类型的作弊识别模型上,亦或是作为网页特征提取的基座对作弊页面实现多分类功能。
END
推荐阅读