作者 | 鄭奕嘉
1. 背景
什么是素材優選?
近年來,基于 feed 流推薦的短視頻業務帶來了巨大的廣告商業價值,例如,抖音推出的「游戲發行人計劃」就是一個鼓勵達人發布游戲相關短視頻,從而為游戲推廣帶量并實現流量變現的有效工具。相比于專業的廣告素材(PGC),這些由達人自主創作的原生廣告素材(UGC)往往具有顯著的成本優勢,而且風格多樣、素材量大。但是,在發行人計劃產生的大量 UGC 短視頻中,有許多優質素材由于作者熱度等原因無法得到足夠的曝光,導致這些素材的價值無法得到充分利用。因此,我們通過挑選「游戲發行人計劃」中有廣告價值的素材進行素材加熱(dou+投放),并借助智能投放、人群定向等其他技術,更精準有效地為游戲獲量,最大限度挖掘游戲達人素材的潛在價值,更好地實現內容營銷。所謂素材優選,即是從海量的短視頻素材中,尋找出廣告投放效果最好的素材。
為什么需要素材優選?
傳統的素材篩選,往往依賴于運營同學依據人工經驗進行篩選,一般會基于簡單規則過濾(如按視頻 vv 數過濾等),再人工從中挑選。這種人工的方式面臨著許多困難:
- 過濾規則依賴人工經驗,往往比較簡單效果不好,容易導致大量優質素材的遺漏;
- 篩選素材的人力成本高,往往需要人工觀看大量視頻才能篩出少部分優質素材;
- 缺乏客觀的篩選依據,容易受主觀因素影響,而且無法定量評估素材可能帶來的轉化效果。
所以,如何利用算法來進行自動化的素材優選,是一個非常具有應用價值的研究方向。
2. 業務場景
在正式介紹建模方法之前,有必要先對背后的業務場景進行說明,一方面是對齊一些相關術語,另一方面也使讀者對這些方法實際要解決的問題有一個更清楚的認識。在其他業務場景下,讀者需要靈活結合自身業務的特點,對這些方法加以改進。
- 業務場景 一句話概括
我們的業務場景:篩選出抖音「游戲發行人計劃」下的優質游戲素材,用于 dou+素材加熱,從而更好地為游戲帶量。
「游戲發行人計劃」是一個連接了游戲廣告主和抖音視頻達人的平臺,廣告主會在該平臺發布任務,達人接任務并投稿對應游戲相關視頻素材,從而根據素材帶量效果獲得一定的現金收益,而廣告主也完成了游戲獲量的目標。這些通過發行人計劃投放的素材,會被帶上錨點鏈接(如圖 1 所示),能夠鏈接到對應的游戲推廣落地頁,從而為游戲帶來預約、轉化。由于素材在自然流量下受到作者熱度等因素影響,可能導致一些好素材難以起量,所以我們會在發行人計劃基礎之上,挑選具有帶量潛力的原生素材進行 dou+加熱,從而為游戲獲量。
圖 1 發行人素材及錨點鏈接展示示例
在這篇文章中,我們定義的優質素材為:相同消耗規模下,為該游戲帶量效果好的素材(其他目標如付費等在本文中暫不討論)。那么什么叫帶量效果好呢?在我們的業務場景中,主要考慮兩個指標CTR(點擊率)和CVR(轉化率)。CTR是指視頻所帶錨點展示后,用戶點擊該錨點進入落地頁的概率,該指標可以近似衡量視頻的吸引程度。CVR是指用戶進入落地頁后,下載安裝并激活該游戲的概率,該指標可以近似衡量該視頻帶來的用戶質量(是否對該游戲感興趣)。我們定義的激活效果好,即是廣告投放后的CTR*CVR要高。(在素材篩選準則中,這兩個指標需要同時考慮,缺少其中一個都可能導致最終效果不好。比如只考慮CTR很可能會找到一些能夠吸引用戶,但是跟該游戲相關性不大的素材,如一些影視劇片段等,這類素材點擊率高,但往往轉化效果很差。)
圖 2 簡化的發行人素材廣告轉化鏈路示意圖 (真實場景更復雜一些,但不影響我們這里的技術方案討論)
CTR、CVR 的具體計算方式如下:
其中,anchor_vv 即視頻錨點 vv,anchor_click_vv 即錨點點擊 vv,active_cnt 即激活數。
素材優選與常見的個性化廣告業務有什么區別?
另外,雖然我們的任務是為了建模點擊率和轉化率,這聽起來似乎與典型的個性化廣告/推薦業務比較類似,但還是有必要強調一下兩者的區別。個性化廣告目的是建模用戶在某個時間(上下文)下點擊廣告素材的概率,是一種實時的個性化建模方式,可以獲取到用戶信息和上下文信息,其建模目標往往是單次曝光的點擊率(訓練時樣本標簽被點擊的為 1,未被點擊的為 0,是二分類目標);而素材優選目的是在海量視頻中挑出適合廣告投放的素材,是一種前置的篩選過程,無法決定某個素材在具體投放過程中會展示給哪些用戶,也無法做實時的干預,所以一般建模目標也是預估素材的整體效果,比如在某次投放過程中總體的點擊率(點擊次數/展示次數,是連續的數值型目標)。
3. 建模方法
3.1 整體建模方案
本文的建模方案,主要站在業務的角度,關注樣本、特征及 Label 的構建,模型結構可以嘗試使用傳統的機器學習或者深度學習進行建模,我們在前期嘗試過程中主要利用 boost 系列模型進行實驗,沒有進行過多模型結構上的探索(當然模型結構設計也很重要,后期會嘗試更多結構上的改進)。
如圖 3 所示,整體的建模思路是輸入素材相關特征(見 3.2 小節),建立機器學習/深度學習模型回歸素材投放的表現效果即 CTR 和 CVR(見 3.3 小節)。
圖 3 建模架構示意圖
根據預測的 CTR、CVR 計算綜合打分值 score:
最終利用打分值對素材進行排序從而得到頭部的優質素材。
3.2 特征抽取
如第 2 小節所述,素材優選是一種前置的篩選過程,無法決定素材會展示給哪些用戶,也無法做實時干預,所以無法使用實時的上下文特征和用戶特征。因此,我們只能盡可能挖掘出對投放效果可能有較大影響的素材相關特征。另外,相比個性化廣告,素材優選的建模數據量比較少,個性化廣告的數據量大概是 N_I×N_U(素材數 × 用戶數),而素材優選只能使用素材側的聚合信息,數據量級大概為 N_I(素材數),這導致可供訓練的樣本量比較少,所以在進行特征構建時要考慮特征維度避免過擬合。
我們最終抽取的特征可以劃分為 4 大類:素材側特征、作者側特征、游戲側特征、素材的歷史表現效果。
- 素材側特征:為了避免過擬合,我們沒有直接使用視頻的畫面等高維信息作為輸入,而是基于內容理解識別、預訓練等方式提取到更高階的特征。最終使用的特征包括:視頻類型(類別、畫風等)、視頻 embedding(如推薦模型產生的 embedding 等)、視頻基礎信息(時長、地理信息等)。
- 作者側特征:作者的熱度和活躍度信息(投稿量、粉絲數等)、作者個人屬性(地域、教育水平等)、作者風格(如萬粉標簽)等。
- 游戲側特征:因為投放等目標是為游戲帶量,不同游戲的用戶群體不一樣,導致不同游戲用戶可能喜歡的素材也不一樣,所以我們引入了游戲相關特征,包括游戲的品類、題材、玩法等。
- 素材的歷史表現效果:包括抖音自然推薦流量下的表現、歷史用于廣告投放的表現(僅限于投放過的素材)。這類特征對模型效果幫助非常大,不過在構建過程要特別小心避免出現特征穿越的問題。
3.3 樣本構建
3.3.1 樣本構建存在的難點
既然預測目標是素材投放的表現,那么一種簡單的思路就是建模每個素材的歷史整體投放表現,即歷史投放過程中的總體 CTR 和 CVR,以此作為回歸模型的預測目標構建樣本。但在實踐的過程中,我們發現這種方式存在一些問題:
- 時間因素的干擾:同一款手游在不同階段投放效果差異巨大:比如在 OB 初期投放的素材,往往投放量大,轉化效果也比較好;而在 OB 末期由于大量用戶已經轉化,游戲的素材投放金額會大幅減少,而且轉化效果也會大打折扣,表現為 CTR、CVR 都會降低。但這不代表 OB 末期投放的素材就會比較差,而是受到不同投放周期的影響。類似的時間干擾因素還體現在節假日、活動節點等特殊時間。
- CTR/CVR 波動大:由于不同素材投放過程展示的用戶存在隨機性,比如有的素材正好展示給了對該游戲感興趣的用戶,就會導致該素材表現較好,從而導致統計的 CTR、CVR 存在波動。舉個極端的例子,某個素材只展示了 10 次,但正好有 1 個用戶點擊了,就會導致這個素材的點擊率很高(10%),但這是隨機性引起的波動,不代表這個素材在跑量規模上去后依然能保持這么高的點擊率。這種現象在素材展示量少時尤其明顯,隨著展示量增加可以減少這種隨機波動,但不能完全消除。
3.3.2 小節會介紹針對時間干擾因素的改進建模方式,3.3.3 小節會介紹針對 CTR/CVR 波動大大改進方式。
3.3.2 引入時間因素進行建模
我們一開始考慮建模素材整個投放周期下的 CTR/CVR,相當于對不同投放時間的表現做了聚合,這種方式能夠得到比較穩定的 CTR/CVR 統計,但是會抹去時間信息。而在素材優選的業務場景下,時間因素的影響是非常大的。為了解決這個問題,我們引入了時間因素進行建模,主要包括兩個改進:
- 基于天級別預測每個素材每天的投放效果,而不是整個投放周期的投放效果;
- 建模過程加入投放時間作為特征。
具體而言,我們以天級別抽取每天投放的素材表現效果作為訓練目標,比如一個素材投放過 n 天,則在我們的訓練樣本中對應 n 條樣本,每一條樣本的 label(即 CTR/CVR)為當天的表現,這樣就能將不同日期下的表現區分開來。同時,為了讓模型能夠區分不同投放日期對表現的影響,我們還需要在建模特征中引入時間信息??紤]到時間不是孤立的類別變量,相近的時間往往對投放表現的影響會更接近。所以我們實際輸入的是投放日期與某個固定時間的差值,從而能夠將時間類別變量轉化成具有連續意義的整數變量。調整后的建模架構如圖 4 所示。
圖 4 引入時間因素的建模方式示意圖
另外,由于素材在一天內的投放量較少,使用天級別的 CTR/CVR 統計,可能導致統計的 CTR/CVR 波動較大,不過相比之下樣本量變多了,模型抗噪聲的能力也更強,從實踐來看影響不大。另外,3.3.3 小節也會介紹應對 CTR/CVR 波動大的改進方案。
3.3.3 樣本損失加權策略
我們的建模方案是回歸素材的投放表現效果比如 CTR 等,但在實踐過程中我們發現統計的CTR 之類的比率信息存在波動,而且這種波動在視頻展示量較少時表現會更明顯(因為 CTR=點擊數/展示數,當展示數比較小時少量的點擊數變化也能引起較大的數值波動,CVR 同理)。
我們一開始的解決方案是卡視頻(錨點)vv 閾值,比如只利用 vv>5000 的視頻做訓練,這樣訓練樣本的 CTR 值相對穩定。但這種方式并不能解決問題:
- 在 vv>5000 的視頻中,雖然統計的 CTR 相對穩定,但仍然存在 vv 偏小的視頻 CTR 波動偏大的現象(表現為 CTR 頭部的視頻基本都是 vv 數偏小的);
- 這種方式造成訓練樣本有偏,因為訓練樣本中的視頻都是 vv 數偏高的,模型在訓練過程沒有見過 vv 數較低的樣本(這部分視頻一般來說相對會比較差,與高 vv 視頻存在比較大分布差異),導致模型無法很好預測這些低 vv 視頻的表現,而且這部分視頻雖然投放量少但視頻數量會多很多(存在長尾效應)。
我們最終使用了一個簡單但有效的解決方案:在訓練時對樣本損失進行加權。對于 CTR 預估,我們假設視頻每一次曝光是否點擊,都是一次獨立的隨機事件(暫不考慮曝光數對素材表現的影響,比如素材曝光量太多帶來點擊率衰減等情況),只要曝光數無限多的情況下,大數定律能夠保證最終的點擊率能夠收斂到一個穩定值,所以視頻(錨點)vv 本質上可以衡量統計得到的 CTR 的置信程度。于是,我們在訓練過程中根據 vv 數對樣本的損失進行加權:視頻 vv 越大,統計的 CTR 越置信,對應的樣本權重越高;視頻 vv 越小,統計的 CTR 越不置信,對應的樣本權重越低。通過引入樣本權重,模型能夠更加關注視頻 vv 數較大的樣本,同時避免了構造數據集時人工卡 vv 閾值帶來的樣本偏差問題。
具體地,我們對原始 RMSE 目標進行改進,增加 vv 數的加權項。針對 CTR 預測和 CVR 預測的損失函數分別計算方式如下:
(1)采用加權策略的 CTR 預測損失函數
其中各符號的含義如下:
(2)采用加權策略的 CVR 預測損失函數
其中各符號的含義如下:
4. 效果評估
4.1 離線評估
一般對于回歸模型,可以使用 RMSE 或者相關性度量等方式進行評估,這些評估指標的假設是,所有樣本標簽的置信度是一致的。但是,在我們的應用場景中,預測目標值(CTR)存在不同的置信度,比如視頻錨點 vv 數高的視頻,統計得到的 CTR 越接近真實值;而視頻錨點 vv 數低的視頻,比如只展示了 1 次,那得到的 CTR 值波動非常大,很不置信。
基于這種考慮,類似于 3.3.3 節的方案,我們設計了加權的 RMSE 作為評估指標,這種指標相對普通的 RMSE 更符合實際業務場景,可以用來離線對比不同模型的精度。具體計算公式與 3.3.3 節的損失函數相同,除了數據集換成測試集。
實驗數據集
我們利用「游戲發行人計劃」視頻在 dou+上的投放數據進行離線實驗。采用 Replay 的方式進行實驗,分別預測 20220128~20220216(共 20 天)期間每天的素材投放表現,即用 20220128 之前的數據訓練然后預測 20220128 的效果,再用 20220129 之前的數據訓練預測 20220129 的投放效果,以此類推(關于 Replay 評估方式可以參考王喆老師編著的《深度學習推薦系統》第 7 章)。我們的建模目標分別為預測每天的 CTR 和 CVR,目前的方案將 CTR 和 CVR 分開建模,后續會考慮引入多任務學習架構進行建模。
樣本量
由于我們使用 Replay 方式測試 20 天的表現(相對于有 20 輪訓練預測),預測不同日期時使用的訓練樣本和測試樣本均會發生變化(只使用預測日期之前 90 天的數據用于訓練驗證)。
總體上:
CTR 預測只采樣有 dou+錨點展示數據(即 anchor vv>0)的樣本進行訓練(否則得不到 CTR),每輪預測的訓練樣本量約為 200000 條,驗證集約為 50000 條,測試集約為 2000 條。
最終總的測試樣本量為 39411 條(共 20 天)。
CVR 預測只采樣有 dou+錨點點擊數據(即 anchor click vv>0)的樣本進行訓練(否則得不到 CVR),每輪預測的訓練樣本量約為 40000 條,驗證集約為 10000 條,測試集約為 500 條。
最終總的測試樣本量為 9882 條(共 20 天)。
實驗結果
我們在測試過程中,針對兩個主要的改進 trick:時間因素建模、樣本損失加權,分別進行了消融實驗,從而驗證這兩個改進能夠有效改善模型預測效果。最終的 CTR 預測和 CVR 預測的實驗結果如下:
從實驗結果可以看到,在 CTR 預測和 CVR 預測的實驗中,在同時使用兩個改進 trick的情況下,加權 RMSE 有比較明顯的下降。同時,也發現在單獨只使用其中一個 trick 時加權 RMSE 值反而會上升,說明兩個 trick 需要同時使用。只加入時間因素建模、不使用樣本損失加權的情況最差(加權 RMSE 最高),在這種情況下,由于模型預測目標為天級目標,投放量較少導致樣本 CTR、CVR 波動很大,此時如果不加入樣本損失權重的話,效果會變得非常差,效果不如去除時間因素的方式(直接預測整體效果,相對更穩定)。
另外,以上離線評估都是基于加權 RMSE 指標給出的結果,不代表在真實情況下我們的加權方案一定是最優的。由于我們的訓練方式是加權的,所以在加權 RMSE 指標上的表現更好是符合預期的,這里我們只給出結果。關于加權 RMSE 指標是否更加 match 線上的表現,是否有其他更合理的離線評估指標,值得進一步考慮和驗證。為了比較不同建模方式的效果,進行線上的實驗驗證才是最直接有效的方式,不過考慮到實驗的時間金錢代價,目前我們尚未進行這方面的實驗,后期有機會可以做進一步驗證。
4.2 線上評估
線上評估相比離線評估的優勢在于:
- 可以對許多干擾因素進行控制,如投放設置、時間等
- 可以打平不同素材的消耗,從而用統一的指標如 CPA(成本)來評估素材的優劣
- 能得到模型打分頭部素材的表現效果
- 相比于模型的整體排序效果,我們往往更關注打分頭部素材的表現(能否找到優質素材)
- 但打分頭部的素材可能之前沒有投放過,這時線上實驗就能驗證頭部素材的效果
當然,線上評估也存在一些劣勢:
- 耗費時間、金錢
- 導致無法快速、頻繁驗證模型效果
- 線上 AB 實驗相比離線數據,一般測試量會比較少,導致結果可能存在較大波動
為了驗證模型相比現有運營同學的篩選方式的優劣,我們在內部一款游戲上進行了 AB 實驗。我們每期實驗分別從模型打分素材與人工挑選素材中選擇相同數量的素材用于投放,控制預算、時間等變量相同,比較兩組素材的表現效果。由于素材優選的目的在于發現效果好的新素材,而投放過的素材效果已經得到驗證了,所以我們只使用未在 dou+投放過的素材進行實驗。
我們的建模方案在最近幾次的 AB 實驗中,模型打分素材在 CPA、優質素材占比等方面表現都比較好。最近一次兩組素材的表現對比如下(實驗組為模型挑選素材,對照組為運營同學人工挑選素材):
按預測 CTR 排序下的真實 CTR 表現折線圖
按預測 CVR 排序下的真實 CVR 表現折線圖
按預測 CTCVR 排序下的真實 CTCVR 表現折線圖(CTCVR=CTR*CVR)
*圖中對模型素材和人工挑選素材分別用不同顏色表示,并標注了重合素材(模型挑選素材與人工挑選素材重合的部分),以及漏召素材(人工挑選素材中表現較好,但沒有被模型挑出來的素材)。
從圖中可以看出盡管存在波動,但整體真實表現依然隨預測值降低呈現下降的趨勢,說明預測值與真實表現的相關性。另外,可以看出,CTR 模型的相關性較強,而 CVR 預測值排序下的真實表現波動大,說明 CTR 預測效果較好,CVR 預測效果可能較差。
針對 CVR 表現較差的情況,我們查看了這些 CVR 表現差異較大的素材,發現存在一些歷史自然流量 CVR 較低、但實驗 CVR 較高的素材,即出現歷史表現與實驗表現差異較大的情況。我們認為這與素材的激活量少有關(大部分的激活數是個位數),可能微小的變化(如多一兩個激活)也會導致 CVR 發生很大的變化,即 CVR 波動可能較大。而模型以這些波動大的歷史 CVR 作為重要特征,容易受到不置信的歷史 CVR 的影響,導致模型預測值有偏差。后續可能需要針對這些歷史 CVR 特征不置信的情況,考慮如何提升模型的魯棒性(比如在訓練樣本中對特征做隨機擾動?)。
5. 總結與未來方向
本文主要介紹了我們在素材優選方向的一些思考及實踐經驗,包括整體的建模方案及特征抽取、樣本構建過程,同時針對樣本存在的兩個問題詳細介紹了我們的解決方式,并給出了模型效果評估,說明了目前方案的有效性。雖然我們的方案主要適用于抖音「游戲發行人計劃」下原生游戲廣告素材的智能篩選,但讀者可以在其基礎上進行改進,設計出更適合自己業務業務領域下的素材篩選方案,希望本文的內容能夠帶給讀者一定的啟發。
另外,除了本文提出的技術方案外,還有一些可能的改進思路,可以在未來做進一步的探索:
1.建模目標: 我們的方案是使用回歸模型預測單個投放指標。但是回歸模型在樣本量少時學習難度大,MSE 容易受到噪聲點影響,而且不利于在建模時對多個指標進行權衡。所以這里提出另外兩種構造建模目標的想法:1)建立素材分類目標,比如根據業務經驗對素材劃分為優質/低質素材,得到二分類目標;2)建立 pairwise 的預測目標,即預測兩個素材中哪個素材更優。
2.模型結構: 本文更側重業務上的特征、樣本構建過程,沒有對模型結構做太多討論。但在確定了特征樣本之后,嘗試更多不同的模型結構是有必要的。比如,可以嘗試使用基于 FM 思想的深度推薦模型架構如 DIFM、DeepFEFM 等對特征交叉進行探索,或者在素材、作者、用戶、游戲構成的異質圖結構上利用GTN、LightGCN等圖網絡模型更好地利用高階鄰居結構抽取特征。同時,訓練好的深度模型可以在 base 模型基礎上針對不同游戲或者品類進行finetune,可能可以達到更好的效果。另外,我們在實踐中發現靠后端的指標如 CVR 等預測會比較差,這可能與數據較稀疏有關,可以嘗試引入像PLE之類的多任務學習架構進行改進。
3.特征: 我們的方案中使用的特征比較多,而素材優選業務本身樣本量相對較少,高維的特征容易導致模型的過擬合(特別是后期引入復雜模型后),有些特征可能幫助不大,可以通過模型得到的特征重要性以及消融實驗確定各部分特征的重要程度,去除無效的特征。
4.業務角度: 目前的素材優選目標是找到投放效果較好的素材。但可能存在一些素材本身具有抖音自然推薦帶來的流量,即使不用 dou+加熱,也能產生很好的帶量效果,即投放對這些素材的效果增益可能并不大,所以可以嘗試因果建模的方式,預測投放對素材帶量效果的 uplift 值,從而找到最能帶來增益的素材。