博客 / 詳情

返回

網頁結構建模在低質採集站上的識別應用

導讀

百度搜索是全球最大的中文搜索引擎,擁有着幾十億級的流量,作弊團伙通過各種各樣的手段妄想從巨大的流量中不勞而獲。搜索反作弊團隊維護百度搜索生態安全和質量,經過不斷探索並利用前沿技術過濾低質作弊網頁,保護真正付出勞動的站長的利益。本文介紹了基於MarkupLM的網頁建模方式,引入XPath embedding自動化提取作弊頁面結構特徵,並與文本結合來進行採集站點識別。

01 背景

1.1 業務背景

採集是指網站維護人員(下文中統稱站長)通過程序或者人工手段,將他人網站的內容複製到自己的網站中的行為。優質的採集網站會在原有內容的基礎上進行加工,為用户輸出更有價值的內容,比如刪掉不必要的內容、高成本的編輯和內容的重新排版等。而少量站長為了利用搜索引擎獲取更多不法流量,無視用户的瀏覽體驗,從別處大量採集內容並通過使用一些作弊手段來提升自身排名。

惡劣採集網站的展現會使得投入大量精力建設優質內容的站長流失本該屬於他們的流量,造成站長獲得的收益與付出的精力不匹配。長此以往,互聯網上的原創內容將會越來越少,因此識別並打擊這部分作弊站點,是維護站長創作公平性和搜索內容生態環境質量的關鍵。

圖片

△採集示例(1)

圖片

△採集示例(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的嵌入表徵向量。

圖片 △圖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不同層面的三個預訓練任務:掩碼標記語言模型、節點關係預測,以及標題-頁面匹配。

  • 掩碼標記語言模型(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,precision=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)

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重塑微服務治理

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.