導語 |在推薦系統中,特徵工程扮演著重要的角色。俗話說數據和特徵決定了機器學習算法的上限,而模型、算法的選擇和優化只是在不斷逼近這個上限。特徵工程的前提是收集足夠多的數據,使用數據學習知識,從大量的原始數據中提取關鍵信息並表示為模型所需要的形式。本文主要說明微視,這種富媒體形態的短視頻平台,是如何通過視頻內容特徵以及用戶屬性和行為數據,來精準預測用戶對短視頻的喜好的。
引言
本文主要是跟各位讀者分享特徵工程領域的一些通用方法和技巧,以及微視在特徵工程上的相關實踐經驗。微視作為一個短視頻平台,存在其獨有的業務特點,這也給特徵構造帶來了一定的難度。比如熱目類目在播放時長、互動率等指標上表現出天然的優勢,長視頻相比於時長較短的視頻在播放完成度、完播率等指標上存在明顯的劣勢,如何消除這些bias的影響都是特徵構造時需要特別注意的地方,而對於我們線上的多目標排序模型來說,不同單目標對應的最優特徵組合也不盡相同,這些不僅需要較強的專業領域知識,更重要的是對自身業務場景的深刻認知以及大量線上實驗的探索嘗試與驗證。
一、特徵提取
微視作為一個短視頻平台,存在其獨有的業務特點,這也給特徵構造帶來了一定的難度。比如熱目類目在播放時長、互動率等指標上表現出天然的優勢,長視頻相比於時長較短的視頻在播放完成度、完播率等指標上存在明顯的劣勢,如何消除這些bias的影響都是特徵構造時需要特別注意的地方,而對於我們線上的多目標排序模型來說,不同單目標對應的最優特徵組合也不盡相同,這些不僅需要較強的專業領域知識,更重要的是對自身業務場景的深刻認知以及大量線上實驗的探索嘗試與驗證。
特徵工程就是將原始數據空間映射到新的特徵向量空間,使得在新的特徵空間中,模型能夠更好地學習數據中的規律。因此,特徵提取就是對原始數據進行處理與變換的過程。常見的原始數據類型有數值型、離散型,還有文本、圖像、視頻等。如果將這些數據作為一個整體來看待的話,把用戶、視頻、作者看作節點,用戶與視頻、作者的交互看作邊構建出的複雜網絡也是我們的原始數據。
事實上,如果特徵工程做的足夠好,即使是簡單的模型,也能表現出非常好的效果。而復雜的模型可以在一定程度上減少特徵工程的工作量。例如,對於線性模型,我們需要將類別變量進行獨熱編碼等處理,但對於復雜一些的模型如樹模型,則可以直接處理類別變量。像推薦系統中常用的LR模型,需要手工構造組合特徵,而FM模型可以解決特徵組合的問題,直接輸入原始特徵。而更複雜的DNN模型,可以自動學習特徵的表示。
在微視場景下,視頻的播放時長、播放完整度、點贊、轉發、分享、評論等多種互動行為都是推薦模型的訓練目標,根據模型所要學習的目標和業務邏輯,我們需要考慮數據中有哪些可能相關的信息,從現有數據中挖掘出對模型預測有用的特徵。比如在微視排序中,用戶的興趣,在App上的播放、互動等行為以及視頻的類別、標籤、熱度等都是強相關的因素。在確定了哪些因素可能與預測目標相關後,我們需要將此信息抽取成特徵,下面會對不同特徵的處理方式做具體介紹。