網(wǎng)頁結(jié)構(gòu)建模在低質(zhì)采集站上的識別應(yīng)用
一、背景
1.1 業(yè)務(wù)背景
采集是指網(wǎng)站維護人員(下文中統(tǒng)稱站長)通過程序或者人工手段,將他人網(wǎng)站的內(nèi)容復(fù)制到自己的網(wǎng)站中的行為。優(yōu)質(zhì)的采集網(wǎng)站會在原有內(nèi)容的基礎(chǔ)上進行加工,為用戶輸出更有價值的內(nèi)容,比如刪掉不必要的內(nèi)容、高成本的編輯和內(nèi)容的重新排版等。而少量站長為了利用搜索引擎獲取更多不法流量,無視用戶的瀏覽體驗,從別處大量采集內(nèi)容并通過使用一些作弊手段來提升自身排名。
惡劣采集網(wǎng)站的展現(xiàn)會使得投入大量精力建設(shè)優(yōu)質(zhì)內(nèi)容的站長流失本該屬于他們的流量,造成站長獲得的收益與付出的精力不匹配。長此以往,互聯(lián)網(wǎng)上的原創(chuàng)內(nèi)容將會越來越少,因此識別并打擊這部分作弊站點,是維護站長創(chuàng)作公平性和搜索內(nèi)容生態(tài)環(huán)境質(zhì)量的關(guān)鍵。
采集示例(1)
采集示例(2)
1.2 傳統(tǒng)解決方案
惡劣采集站采集的內(nèi)容排版質(zhì)量差,將一些問答站(如知乎、百度知道等)的多個主題相似的問題和回答拼湊,如圖1和圖2所示。頁面除了文本語義、句子通順度特征外,也存在文本重復(fù)堆疊的特征。文本模型會難以捕捉到該類表征,因此需要結(jié)合網(wǎng)頁結(jié)構(gòu)和網(wǎng)頁內(nèi)容綜合分析,常規(guī)的策略和技術(shù)手段可以分為:
- 內(nèi)容重復(fù)檢測:
文本指紋:通過構(gòu)建網(wǎng)頁指紋(如SimHash、MD5等)進行不同頁面的相似文本識別。
文本相似度:使用自然語言處理技術(shù)計算頁面內(nèi)容的語義相似度。
- 網(wǎng)頁結(jié)構(gòu)分析:
- DOM樹分析:通過對比不同頁面的DOM樹結(jié)構(gòu),識別出結(jié)構(gòu)高度相似的網(wǎng)頁。
- 網(wǎng)頁標(biāo)簽分析:通過計算網(wǎng)頁中特定HTML標(biāo)簽(如<div>、<p>等)的標(biāo)簽密度和套嵌關(guān)系進行內(nèi)容堆疊識別
- 機器學(xué)習(xí)模型:
- 特征工程:結(jié)合HTML結(jié)構(gòu)特征、內(nèi)容相似度、用戶行為等信號構(gòu)建特征向量,用于訓(xùn)練機器學(xué)習(xí)模型。
- 模型訓(xùn)練與驗證:使用作弊站點和正常站點的樣本數(shù)據(jù)進行模型訓(xùn)練,并通過交叉驗證評估模型效果。
- 持續(xù)學(xué)習(xí)與更新:不斷優(yōu)化特征集和模型參數(shù),提高識別效果。
- 輔助手段:除了技術(shù)識別手段之外,同步建立用戶舉報機制,收集用戶關(guān)于內(nèi)容質(zhì)量的反饋,作為識別惡劣采集站的輔助手段
通過上述方法,可以有效地識別惡劣采集站,保護原創(chuàng)內(nèi)容創(chuàng)作者的權(quán)益,提升搜索結(jié)果質(zhì)量和用戶瀏覽體驗。但是隨著對抗的深入,惡劣采集也呈現(xiàn)出新的形式,如
- 多源拼湊:不再局限于簡單地從少數(shù)網(wǎng)站進行采集,而是從網(wǎng)站、論壇、社交媒體等多個渠道進行內(nèi)容采集和智能化拼湊,導(dǎo)致文章風(fēng)格、語言表達和觀點與正常頁面差異變小
- 內(nèi)容改寫:運用自然語言處理技術(shù)或文本替換工具,對采集內(nèi)容進行同義詞替換、語序調(diào)整等改寫操作,使文本與原文有所不同,但核心內(nèi)容并未改變,以此來逃避文本相似度檢測
對于上述問題,需要同時結(jié)合頁面排版特征和語義信息進行綜合識別,將采集識別問題抽象成結(jié)合文本與布局信息實現(xiàn)視覺富文本文檔理解(Visually-Rich Document Understanding,簡稱VRDU)的任務(wù),同時考慮問題復(fù)雜度,采用預(yù)訓(xùn)練的MarkupLM模型識別惡劣采集頁面。
二、MarkupLM模型
視覺富文本文檔可以大致被分為兩大類。
- 第一類是固定布局的文檔,比如掃描件和電子pdf等文件,這類文檔是預(yù)先渲染并且布局固定。通過基于布局(layout-based)預(yù)訓(xùn)練模型進行文檔理解和下游任務(wù),如Xu等人(2020)[1]提出的LayoutLM為代表的基于文本、布局和圖像的多模態(tài)預(yù)訓(xùn)練模型。
- 第二類是標(biāo)記語言文檔(markup-language-based documents),如HTML、XML等,其布局和樣式信息會動態(tài)地根據(jù)軟件、硬件或操作系統(tǒng)來進行渲染可視化,這類無明確格式的布局信息不能直接用于預(yù)訓(xùn)練,使得基于布局的預(yù)訓(xùn)練模型難以應(yīng)用。
不同于固定布局的文檔,微軟團隊LI等人(2021)[2]提出一種針對基于標(biāo)記(mark-up based)的VRDU任務(wù)的預(yù)訓(xùn)練模型-MarkupLM,利用基于樹狀結(jié)構(gòu)的優(yōu)勢對文檔中不同單元的關(guān)系進行建模,直接對網(wǎng)頁類標(biāo)記語言文檔的源代碼進行處理和學(xué)習(xí)。
在實際網(wǎng)頁場景下,spammer通過一些手段隱藏和動態(tài)展現(xiàn)作弊內(nèi)容。理論上,相較于渲染后的網(wǎng)頁視覺信息,對網(wǎng)頁html深度解析和建模也更能捕捉到一些潛在異常。
2.1 模型架構(gòu)
模型整體采用BERT[3]架構(gòu)作為編碼器主干,為了在模型中加入基于標(biāo)記語言的布局信息,在原有embedding layer上新增了一個XPath embedding模塊。如圖3所示,每個輸入文本都對應(yīng)一個XPath的嵌入表征向量。
圖3.MarkupLM模型架構(gòu)及預(yù)訓(xùn)練任務(wù)示意圖
2.2 結(jié)構(gòu)建模
MarkupLM利用標(biāo)記語言中的DOM樹和XPath來獲取文檔中的標(biāo)記路徑和對應(yīng)自然文本。XPath是一種能便于從基于Dom樹的標(biāo)記語言文檔里定位節(jié)點的查詢語言,可以理解為Dom樹中以深度優(yōu)先遍歷方式抽取出的從根節(jié)點到一段文本所在節(jié)點經(jīng)過的路徑。
具體如圖4例子所示,“6.5 inch” 文本對應(yīng)XPath表達式為 “/html/body/div/li[1]/div/span[2]”。“span” 代表節(jié)點<span>的標(biāo)記名,“[2]” 下標(biāo)代表當(dāng)多個相同名為 “span” 的節(jié)點在同一個父節(jié)點下時節(jié)點的序號。由此可見,XPath embedding可以被視為 LayoutLM 中 2D-position embedding 的替代,能夠表達文本在標(biāo)記文檔中的位置信息。
圖4.HTML源碼轉(zhuǎn)成Dom樹和XPath的例子
以圖4的XPath表達為例,圖5展示了如何得到其XPath嵌入表征網(wǎng)絡(luò)結(jié)構(gòu)。
圖5.XPath embedding詳細(xì)結(jié)構(gòu)
對于第i個輸入token$x_i$,首先將它對應(yīng)的XPath表達式按層級切分,得到一個包含不同深度上的Xpath單元列表
d為XPath的深度,每個單元$(t_{j}^{i}, s_{j}^{i})$的兩個元素分別為深度j的XPath單元的標(biāo)簽名及下標(biāo),對于無下標(biāo)的單元則統(tǒng)一設(shè)置為0。隨后在每層深度里,XPath Embedding模塊均含有一個獨立的標(biāo)簽嵌入表與下標(biāo)嵌入表。因此每個 XPath 單元均會產(chǎn)生兩個向量,分別為標(biāo)簽名稱與下標(biāo)的嵌入表征,隨后兩個向量相加即可得到各 XPath 單元的表征,即單元$(t_{j}^{i}, s_{j}^{i})$的表征為
為了保留單元之間的層次信息,該模塊將所有單元的表示按原有位置進行拼接操作,得到整個 XPath 表達式的表示向量$[ue_{0}^{i}; ue_{1}^{i};... ; ue_k6zqhab033oa^{i}]$。
最后,為了匹配上原有輸入的embedding向量維度同時保證模型穩(wěn)定性,采用了一個前饋神經(jīng)網(wǎng)絡(luò)(FFN)來進行維度轉(zhuǎn)換,并引入非線性激活函數(shù)增強表達能力,最終得到
三、惡劣采集上的應(yīng)用
在作弊網(wǎng)頁識別的工作中,網(wǎng)頁結(jié)構(gòu)的多樣化讓規(guī)則性的策略難以識別,特定標(biāo)簽內(nèi)容的提取需要人工手動參與。惡劣采集站點的識別更是如此,文不對題、段落拼湊等場景的識別都需要網(wǎng)頁結(jié)構(gòu)特征(標(biāo)簽、標(biāo)簽之間的關(guān)系等)和文本的共同參與。
對于文本采集的檢測模型而言,需要具有理解節(jié)點間關(guān)系和對網(wǎng)頁內(nèi)容進行總結(jié)概括的能力來理解網(wǎng)頁的上下文信息。為此,采集模型通過引入markuplm對于Xpath embedding表征部分來強化作弊識別能力。具體落地過程中,為了降低數(shù)據(jù)抽取、模型訓(xùn)練的時間和存儲成本,采用ernie+XPath embedding結(jié)構(gòu),并在數(shù)據(jù)提取過程中只保留了文本標(biāo)簽(如<div>, <span>, <p>, <h1>等)對應(yīng)的XPath和文本,以及限制深度優(yōu)先遍歷提取文本時的XPath深度。
為了有效捕捉標(biāo)記html頁面的復(fù)雜結(jié)構(gòu),我們參考了markuplm從token-level、node-level和page-level不同層面的三個預(yù)訓(xùn)練任務(wù):掩碼標(biāo)記語言模型、節(jié)點關(guān)系預(yù)測,以及標(biāo)題-頁面匹配。
- 掩碼標(biāo)記語言模型(Masked Markup Language Modeling, MMLM):任務(wù)用來提高模型根據(jù)標(biāo)記線索對語言的建模能力,輸入數(shù)據(jù)中文本的token會被隨機按比例替換成[MASK], 同時會保留所有的XPath信息(包括被替換的token對應(yīng)的XPath), 模型基于所有標(biāo)記線索(XPath信息)來完成文本的“完形填空”的任務(wù)。
- 節(jié)點關(guān)系預(yù)測(Node Relation Prediction, NRP):為增強模型對Xpath embedding表征里Xpath語義信息的理解,MarkupLM通過節(jié)點級別的節(jié)點關(guān)系預(yù)測任務(wù)去顯示地建模一對節(jié)點之間的關(guān)系。具體上,我們首先定義一個有向的節(jié)點關(guān)系集合,包括:自己,父,子,兄弟,祖先,子孫和其他。然后隨機組合每個樣本上的節(jié)點獲得節(jié)點對,并根據(jù)節(jié)點關(guān)系集合分配相應(yīng)的標(biāo)簽,模型需要用每個節(jié)點的第一個token的輸出表征來預(yù)測分配的節(jié)點關(guān)系。模型對節(jié)點之間關(guān)系的理解非常有助于我們自動化地挖掘作弊頁面中一些特殊結(jié)構(gòu)特征,例如圖6所示采集作弊頁面html源碼中具有的特征:同一個<div>下有多個由<h2>和<p>組合成的段落,且互相為兄弟節(jié)點。再結(jié)合語言模型本身對文本的通順度和相似性上的判別能力,模型就可以認(rèn)為這一內(nèi)容片段出現(xiàn)在的網(wǎng)頁很可能是惡劣采集作弊頁面。
- 標(biāo)題-頁面匹配(Ttile-Page Matching, TPM):除了文本標(biāo)記帶來的精細(xì)粒度信息,句子級別和主體級別的信息也對標(biāo)記語言文檔的學(xué)習(xí)有幫助。對于網(wǎng)頁來說,元素<title>可以代表正文<body>內(nèi)容的概括性總結(jié),這就為較高級的語義提供了監(jiān)督性。利用網(wǎng)頁中這種天然的自監(jiān)督特性,額外增加了一個頁面級別的預(yù)訓(xùn)練任務(wù):隨機替換標(biāo)記語言文檔樣本中<title>標(biāo)簽里的文本,讓模型對每個輸入根據(jù)輸出序列中的[CLS]表示判斷樣本是否被替換。采集作弊頁面中也不乏文不對題的案例,我們將這些頁面加入預(yù)訓(xùn)練,提升模型判斷頁面title與正文內(nèi)容是否匹配的能力,讓模型在做惡劣采集識別的下游任務(wù)時,可以本能地提取到標(biāo)題與正文不匹配這樣的惡劣采集特征,對識別具有這部分特征的采集頁面具有極大促進作用。
圖6. 采集頁面html源碼片段
3.1 效果驗證
通過下面兩個實驗來驗證采集模型引入XPath embedding后的效果增益
- 實驗1: 從黑白樣本中提取text和XPath對并將其打亂。把黑text-白XPath、白text-黑xpath、黑text-黑xpath和白text-白XPath混合拼接并通過裁剪對齊生成一些新text-path對的樣本,分別計算識別為作弊的比例。
圖片
- 實驗2: mask掉XPath,將每個token對應(yīng)的XPath embedding通過<pad>標(biāo)簽和下標(biāo)為0對應(yīng)的embedding替換掉,評估準(zhǔn)召。測試集黑白比1:1情況下實驗結(jié)果為:recall=0.121,precisinotallow=0.829,accuracy=0.548。
由兩個實驗分析可得:
- 實驗1中白XPath+任意text識別為黑的比例都非常少,不足總量10%,而以黑xpath+任意text的組合識別為黑的比例比較多,當(dāng)白text+黑xpath組合時模型識別作弊比例接近一半,全黑組合則幾乎都被識別為作弊。
- 實驗2中模型單純對文本進行預(yù)測時,會將幾乎所有樣本預(yù)測為非作弊,模型召回能力較差,效果類似在作弊與非作弊間做隨機二選一
3.2 采集模型新增識別頁面
相比規(guī)則性的策略,引入網(wǎng)頁結(jié)構(gòu)信息的模型能更加靈活地根據(jù)標(biāo)簽與標(biāo)簽之間的關(guān)系去做判別。當(dāng)規(guī)則中只有針對<h2>或<h3>標(biāo)簽的段落進行采集特征捕獲時,圖7中的作弊頁面會因為采集特征的段落在<h5>和<li>標(biāo)簽上(從圖8中可知)被漏過,而基于頁面結(jié)構(gòu)和文本建模的采集模型則依然可以識別。
圖7. 采集示例(3)
圖8. 采集示例(3)源碼片段
相比單純基于文本的語言模型(如句子通順度模型、文章拼接模型),融合網(wǎng)頁結(jié)構(gòu)的模型更容易從網(wǎng)站全局識別一些文章與網(wǎng)站主旨嚴(yán)重偏移的頁面。如圖9和圖10中兩個同樣屬于采集作弊站的頁面,左圖的頁面標(biāo)題與內(nèi)容毫無關(guān)聯(lián),段落間也毫無相似處,會同時被文章級拼接模型(能夠識別文章段落是否拼接、是否文不對題)和采集模型識別為采集作弊;而右圖中標(biāo)題與內(nèi)容關(guān)聯(lián)度高,段落間表達語義情感相似,文章拼接模型則無法識別作弊,采集模型能夠根據(jù)頁面里導(dǎo)航條和網(wǎng)頁所屬主題等方式進行判斷識別為采集。
圖9. 采集示例(4)
圖10. 采集示例(5)
四、總結(jié)和展望
本文首先討論了惡劣采集作弊站點的識別難點,以及利用網(wǎng)頁結(jié)構(gòu)信息進行輔助識別的必要性。然后介紹了MarkupLM對于內(nèi)容文本和頁面排版的優(yōu)勢。最后介紹反作弊方向?qū)arkupLM建模方法應(yīng)用于惡劣采集站上的識別,并通過實驗展示XPath embedding結(jié)構(gòu)對于識別作弊站的效果。
除了應(yīng)用在惡劣采集站的識別上,這樣引入網(wǎng)頁結(jié)構(gòu)信息的建模方式還可以嘗試擴展到其他的一些針對網(wǎng)頁類型的作弊識別模型上,亦或是作為網(wǎng)頁特征提取的基座對作弊頁面實現(xiàn)多分類功能。
參考文獻
[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.