隨著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.