隨著UGC內容爆發式增長,資訊流產品佔領越來越多的使用者時間。愛奇藝作為國內領先的網際網路影片媒體,承擔了正確引導使用者價值觀的社會責任。所以識別和遮蔽低俗內容、做好風險內容控制、淨化短影片生態是一項非常值得重視的工作。下面我們從技術的角度,以“軟色情識別”為例,介紹愛奇藝的多模態低俗內容識別技術。
軟色情不是色情,但內容(文字、圖片、聲音或影片等)卻又充滿挑逗、誘惑、讓人想入非非,其程度介於性感和色情之間。
使用者每天新上傳的影片以及短影片推薦池中都存在一定比例的軟色情影片,需要大量稽核人員進行人工清查、效率較低、成本昂貴;此外,人工稽核的另一個難點是對軟色情的判斷過於主觀,甚至對於部分隱晦內容需要一定的背景知識。所以融合文字、圖片、影片內容的多模態軟色情識別模型應運而生,消除了人工稽核的主觀因素和“知識”盲區,節省了人力成本。
面臨的挑戰
· 標準難統一:人類對軟色情的定義主觀性較強,穿著暴露、激吻、性暗示、維密走秀等都可能被視為不同尺度的軟色情,在不同的場景下或者面對不同的人群,軟色情定義標準較難統一。
· 類別分佈極度不平衡:軟色情影片相對於非軟色情影片而言,比例非常低,樣本類別的分佈不平衡大大增加了軟色情識別的難度。
· 多模態學習:決定一個影片是否屬於軟色情,除了影片的文字資訊,封面圖外,還包括影片內容以及音訊資訊,所以影片的軟色情識別本質上是一個多模態feature整合的多工學習模型。如何充分利用和整合多模態的feature,以及合理最佳化多工學習,使每個子任務以及整體任務效益最大化,也具有較大的難度。
影片軟色情模型
1. 文字軟色情識別
目前最為常見的文字分類模型主要包括Fasttext【1】, TextCNN【2】, TextRNN【3】及其各種變形。其中,fasttext直接基於文字中token的average embedding進行分類,該方法雖然未考慮詞序,但簡單有效,是一個不錯的baseline。TextCNN基於卷積建模文字的區域性依賴關係(local feature), 透過pooling學習global資訊。CNN能夠在降維的同時捕捉到區域性詞序關係。若要建模長距離依賴關係,需依賴於多層的卷積和池化層,模型結構較複雜 。 TextRNN基於LSTM或GRU建模文字的sequential patterns, 能夠有效建模文字的長距離依賴關係。
短影片的文字軟色情模型採用convolutional LSTM模型結構,如圖1所示,其先經過若干conv layer學習文字的低層表示(減小LSTM輸入feature的維度),再經過LSTM學習文字的序列資訊。 Convolutional LSTM 結合CNN和RNN兩者的優點,一方面基於convolution建模local semantics,減小句子長度,同時加速LSTM推理; 另一方面,利用LSTM建模global semantics。
舉兩個實際應用中的例子:
· CNN能學習文字中有軟色情傾向的重要片段,不受切詞影響,如:“如願/娶/小嬌妻/甜蜜/滾/床單“;
· LSTM依賴整個句子的語義進行判別,能識別出不含明顯色情詞的case,如:“男子/開/蘭博基尼/邀/美女/上車/聊天/聊著聊著/就/上手”;
2. 封面圖軟色情識別
目前常見的影像分類的基本思路是直接基於ImageNet預訓練分類模型(e.g. ResNet【4】, Xception【5】, SENet【6】等)進行fine-tuning;然後基於微調後的模型提取影像feature,作為task-specific分類模型的輸入進行影像分類。
綜合考慮模型的準確率和複雜度(推理速度),決定選擇Xception進行fine-tuning, 抽取影像feature,其框架結構如圖2所示。
但透過這種方式抽取的影像表示通常為global average pooling的輸出,丟失了空間資訊和channel資訊;為充分利用channel和空間資訊,封面圖模型(如圖3所示)在Xception block-14和global average pooling之間引入CBAM(Convolutional Block Attention Module)【7】模組,建模channel和spatial的重要程度,再對Xception-CBAM進行finetuning, 以學習更好的影像表示,其中CBAM由channel attention和spatial attention兩個子模組構成:
· Channel attention模組:強調應該更關注什麼, i.e. “what is meaningful given an input image”。
· Spatial attention模組:強調應該更關注哪裡, i.e. “where is an informative part”; 和channel-attention module相輔相成。
3. 影片內容軟色情識別
Video內容軟色情識別模型主要包含3個主要模組:特徵抽取、特徵融合和分類模組;其中,特徵抽取模組主要包括多模態的影片資訊提取以及影片幀特徵提取; 特徵融合模組主要融合多模態資訊,學習video語義表示; 分類模組主要基於video語義表示對影片進行分類。如何訓練學習更好的特徵(RGB特徵,光流特徵,音訊特徵等),如何基於這些特徵建模時序關係,以及多模態融合是構建一個較好影片分類模型的關鍵因素。
在特徵抽取方面,通常從影片內容中抽取若干RGB關鍵幀序列表示影片。此外,引入影片中的音訊,光流(隨著時間演化的複雜運動資訊等),場景等資訊,能有效提升分類效果,但同時也會導致模型複雜度以及耗時倍增。為確保線上效率和模型效果,對於每個影片,僅抽取10個RGB關鍵幀序來表示影片內容,利用fine-tuned的Xception-CBAM模型抽取每個關鍵幀的語義表示作為模型輸入。
在特徵融合方面,主要嘗試了Bi-LSTM, Bi-LSTM + Attention,NetVLAD【8】, NeXtVLAD【9】等方法, 並最終選擇NeXtVLAD模型進行特徵融合。
基於Bi-LSTM的模型透過將影片的每一幀用預訓練的深度卷積網路抽取feature,然後將每一幀作為一個時間點,依次輸入到 LSTM 中學習影片的語義表示。但由於RNN網路結構的序列本質,推理效率較低;此外,判定一個影片是否為軟色情,並不需要考慮幀之間的順序關係,只需要某一幀為軟色情即可。
NetVLAD是目前將frame-level feature融合為video-level feature的另一種較流行的方案,強調建模distribution of features in the video,其主要思想是基於影片幀集合的frame-level feature學習影片幀集合的聚類,聚類中心向量作為video-level表示,如圖4所示。
NetVLAD將RGB幀視為整體進行建模,但一個RGB幀往往包含多個物體,為了刻畫更加細粒度的影像表示,NeXtVLAD(Youtube'18影片分類比賽第三名解決方案)在NetVLAD layer的基礎上將RGB幀劃分成多個group分別進行建模,並引入視覺attention機制對不同的group賦予不同權重, 其和NetVLAD的主要區別如圖5所示。
最後,我們基於NeXtVLAD構建最終的影片內容軟色情分類模型。如圖6所示,首先對影片的每個關鍵幀利用fine-tuned的Xception-CBAM抽取RGB特徵(frame-level)作為模型輸入,經過NeXtVLAD學習video-level語義表示,然後送入分類網路。其中,SE context gating主要嘗試在channel維度上引入 attention機制以學習更好的feature表示。
4. 整合模型
稽核video軟色情模型嘗試了兩種方式將文字模型、封面圖模型和影片內容模型三者融合為一個整體:pipeline模型和端到端的多工學習模型。
其中,pipeline模型如圖7所示,其主要流程是:文字軟色情識別 => 封面圖軟色情識別 => 影片內容軟色情識別。
端到端的多工學習模型結構圖8所示,該模型是一個包含文字軟色情二分類,封面圖軟色情二分類,影片內容軟色情二分類,feed軟色情二分類4個任務的端到端的多工學習模型。
兩種整合方式各有利弊(如下表所示),主要體現在以下四個方面:
Pipeline整合方式 | 端到端整合方式 | |
樣本標註 | 訓練文字、影像、影片模型的標註資料可相互解耦 | 每條樣本需要同時包含文字、影像、影片內容三個型別的標註資料;在實際工作中成本較高 |
特徵互動 | 文字、影像、影片內容三種特徵相互獨立 | 能充分利用文字、影像、影片內容三種特徵間的互動關係,提升模型識別效果 |
模型 | 三個子模型,部署成本及資源消耗較高;但比較靈活,可以根據實際業務場景組合不同的子模型 | 一個模型,部署成本及資源消耗較低;但缺乏靈活性 |
軟色情 識別方式 | 按照文字、影像、影片內容的順序識別軟色情;若某個子模型識別錯誤,整個識別結果就會出錯,無論後續子模型好壞 | 將文字、影像、影片內容作為一個整體進行識別 |
總結經驗
資料標註:早期質檢非常重要,早期標註同學在標註時由於對標註標準理解還不夠深入,標註質量較差,透過持續的質檢反饋,標註質量才能夠得以保障;
樣本:
資料增強:由於訓練樣本較少,需要透過資料增強快速擴充訓練集,同時可以增加模型的泛華能力;
樣本標籤修正:即使早期透過不斷質檢,標註質量有所保障,但後期透過bad case分析,發現大部分還是屬於人工標註錯誤,這對於正樣本(軟色情)較少的任務而言,及其影響模型效果。在整個過程中,我們利用訓練好的軟色情模型預測訓練集中的樣本,將人工標註和模型預測不一致的樣本,重新進行人工標註和模型訓練,迭代幾輪基本可以快速提升樣本標註質量。
類別不平衡:在短影片軟色情分類場景下,軟色情case非常少,透過引入focal loss, 解決難分case,同時增加正樣本的權重,在一定程度上解決類別不平衡問題;
模型不是最重要的:模型結構的最佳化增益往往低於樣本和特徵的最佳化。
資料sense非常重要:充分了解樣本,重視bad case分析,才能明確模型的最佳化方向。透過bad case分析,有針對性的增加模型較難識別的樣本,可以快速改善模型效果。
關注迭代質量: 記錄每次關鍵實驗:實驗目的,結論以及下一步最佳化方向。避免重複實驗的同時,提高迭代速度和質量。
下一步最佳化
文字模型: 目前文字模型僅使用convolutional LSTM,結構較簡單;同時feature僅使用token embedding,在特徵工程和模型結構方面還存在大量最佳化空間。
後設資料資訊:充分利用影片的各種後設資料,比如uploader, 影片長度,描述資訊,類別等。
多模態多工模型最佳化:目前大量樣本只有文字和封面圖的label,後續補充訓練集中的影片label,重新最佳化端到端的多工學習模型,同時構建一個有效的多模態feature融合模組,提升整體效果。
參考文獻
1. Armand J. etc. Bag of Tricks for Efficient Text Classification, EACL 2017.
2. Kim Y. Convolutional Neural Networks for Sentence Classification, EMNLP 2014.
3. Liu D. etc. Recurrent Neural Network for Text Classification with Multi-Task Learning, IJCAI 2016.
4. He K. etc. Deep Residual Learning for image recognition. CVPR 2016.
5. Chollet F. Xception: Deep Learning with Depth-wise Separable Convolutions. CVPR 2017.
6. Hu J. etc. Squeeze-and-Excitation Networks. CVPR 2018.
7. Woo S. etc. CBAM: Convolutional Block Attention Module, ECCV 2018.
8. Arandjelovic R. etc. NetVLAD: CNN architecture for weakly supervised place recognition, CVPR 2016.
9. Lin R. etc. NeXtVLAD: An Efficient Neural Network to Aggregate Frame-level Features for Large-scale Video Classification, ECCV 2018.