網頁結構建模在低質采集站上的識別應用
一、背景
1.1 業務背景
采集是指網站維護人員(下文中統稱站長)通過程序或者人工手段,將他人網站的內容復制到自己的網站中的行為。優質的采集網站會在原有內容的基礎上進行加工,為用戶輸出更有價值的內容,比如刪掉不必要的內容、高成本的編輯和內容的重新排版等。而少量站長為了利用搜索引擎獲取更多不法流量,無視用戶的瀏覽體驗,從別處大量采集內容并通過使用一些作弊手段來提升自身排名。
惡劣采集網站的展現會使得投入大量精力建設優質內容的站長流失本該屬于他們的流量,造成站長獲得的收益與付出的精力不匹配。長此以往,互聯網上的原創內容將會越來越少,因此識別并打擊這部分作弊站點,是維護站長創作公平性和搜索內容生態環境質量的關鍵。
采集示例(1)
采集示例(2)
1.2 傳統解決方案
惡劣采集站采集的內容排版質量差,將一些問答站(如知乎、百度知道等)的多個主題相似的問題和回答拼湊,如圖1和圖2所示。頁面除了文本語義、句子通順度特征外,也存在文本重復堆疊的特征。文本模型會難以捕捉到該類表征,因此需要結合網頁結構和網頁內容綜合分析,常規的策略和技術手段可以分為:
- 內容重復檢測:
文本指紋:通過構建網頁指紋(如SimHash、MD5等)進行不同頁面的相似文本識別。
文本相似度:使用自然語言處理技術計算頁面內容的語義相似度。
- 網頁結構分析:
- DOM樹分析:通過對比不同頁面的DOM樹結構,識別出結構高度相似的網頁。
- 網頁標簽分析:通過計算網頁中特定HTML標簽(如<div>、<p>等)的標簽密度和套嵌關系進行內容堆疊識別
- 機器學習模型:
- 特征工程:結合HTML結構特征、內容相似度、用戶行為等信號構建特征向量,用于訓練機器學習模型。
- 模型訓練與驗證:使用作弊站點和正常站點的樣本數據進行模型訓練,并通過交叉驗證評估模型效果。
- 持續學習與更新:不斷優化特征集和模型參數,提高識別效果。
- 輔助手段:除了技術識別手段之外,同步建立用戶舉報機制,收集用戶關于內容質量的反饋,作為識別惡劣采集站的輔助手段
通過上述方法,可以有效地識別惡劣采集站,保護原創內容創作者的權益,提升搜索結果質量和用戶瀏覽體驗。但是隨著對抗的深入,惡劣采集也呈現出新的形式,如
- 多源拼湊:不再局限于簡單地從少數網站進行采集,而是從網站、論壇、社交媒體等多個渠道進行內容采集和智能化拼湊,導致文章風格、語言表達和觀點與正常頁面差異變小
- 內容改寫:運用自然語言處理技術或文本替換工具,對采集內容進行同義詞替換、語序調整等改寫操作,使文本與原文有所不同,但核心內容并未改變,以此來逃避文本相似度檢測
對于上述問題,需要同時結合頁面排版特征和語義信息進行綜合識別,將采集識別問題抽象成結合文本與布局信息實現視覺富文本文檔理解(Visually-Rich Document Understanding,簡稱VRDU)的任務,同時考慮問題復雜度,采用預訓練的MarkupLM模型識別惡劣采集頁面。
二、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的嵌入表征向量。
圖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_owocgsc^{i}]$。
最后,為了匹配上原有輸入的embedding向量維度同時保證模型穩定性,采用了一個前饋神經網絡(FFN)來進行維度轉換,并引入非線性激活函數增強表達能力,最終得到
三、惡劣采集上的應用
在作弊網頁識別的工作中,網頁結構的多樣化讓規則性的策略難以識別,特定標簽內容的提取需要人工手動參與。惡劣采集站點的識別更是如此,文不對題、段落拼湊等場景的識別都需要網頁結構特征(標簽、標簽之間的關系等)和文本的共同參與。
對于文本采集的檢測模型而言,需要具有理解節點間關系和對網頁內容進行總結概括的能力來理解網頁的上下文信息。為此,采集模型通過引入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與正文內容是否匹配的能力,讓模型在做惡劣采集識別的下游任務時,可以本能地提取到標題與正文不匹配這樣的惡劣采集特征,對識別具有這部分特征的采集頁面具有極大促進作用。
圖6. 采集頁面html源碼片段
3.1 效果驗證
通過下面兩個實驗來驗證采集模型引入XPath embedding后的效果增益
- 實驗1: 從黑白樣本中提取text和XPath對并將其打亂。把黑text-白XPath、白text-黑xpath、黑text-黑xpath和白text-白XPath混合拼接并通過裁剪對齊生成一些新text-path對的樣本,分別計算識別為作弊的比例。
圖片
- 實驗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中可知)被漏過,而基于頁面結構和文本建模的采集模型則依然可以識別。
圖7. 采集示例(3)
圖8. 采集示例(3)源碼片段
相比單純基于文本的語言模型(如句子通順度模型、文章拼接模型),融合網頁結構的模型更容易從網站全局識別一些文章與網站主旨嚴重偏移的頁面。如圖9和圖10中兩個同樣屬于采集作弊站的頁面,左圖的頁面標題與內容毫無關聯,段落間也毫無相似處,會同時被文章級拼接模型(能夠識別文章段落是否拼接、是否文不對題)和采集模型識別為采集作弊;而右圖中標題與內容關聯度高,段落間表達語義情感相似,文章拼接模型則無法識別作弊,采集模型能夠根據頁面里導航條和網頁所屬主題等方式進行判斷識別為采集。
圖9. 采集示例(4)
圖10. 采集示例(5)
四、總結和展望
本文首先討論了惡劣采集作弊站點的識別難點,以及利用網頁結構信息進行輔助識別的必要性。然后介紹了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.