圖片來源: 

iThome

該推薦什麼廣告給下午3點正在使用手機的上班族呢?當這位上班族打開App或是瀏覽網頁含有廣告板位時,威朋便會接到廣告請求,在綜合使用者、廣告主以及內部的資料後,決定出多少價錢以標下這個板位,並投放什麼樣的廣告給這位上班族。威朋在亞洲覆蓋4.5億不重複使用者,每日需處理42億次廣告請求,每一次的廣告推薦都要在0.1秒內完成,除了快還要準,關鍵就是機器學習!

行動廣告即時競價(RTB,Real-Time Bidding)的生態系中有非常多的角色,各自負責不一樣的工作,雖然臺灣即時競價的生態系較為單純,但是要能讓行動裝置使用者看到廣告,過程也是需要有不同的角色互相支援。行動裝置使用者所看到的廣告,其板位由廣告供應方平臺(SSP,Supply Side Platform)擁有,廣告供應方平臺會傳送廣告流量請求給像是威朋的廣告需求方平臺(DSP,Demand Side Platform),並由各廣告需求方平臺出價標下該板位,取得廣告主廣告曝光的機會。

對於威朋來說,最理想的情況是用最低的價格競標到廣告板位,推送使用者最想看的廣告,並把使用者的點擊轉換(Conversion)成App下載或是資料填寫等,以達到廣告主期待的目標。廣告推薦是由許多複雜小問題組成的複雜大問題,除了需要知道廣告受眾的屬性與所處情境外,還包括什麼廣告是當下使用者最想看到的,或是這個板位究竟出價多少錢才划算,整個過程有許多需要權衡的環節。

這些問題必須借助資料科學之力來解決,威朋組織了約10位工程師投入機器學習的研究以及開發。威朋研究開發部軟體工程師廖耘說,訓練 機器學習模型的資料來自廣告板位以及廣告主。當使用者透過App或是瀏覽網頁看到廣告板位,廣告板位便會發送廣告流量請求給威朋,這項請求包含了廣告供應方平臺與廣告需求方平臺資訊交換的協定,其中資訊包含板位大小、裝置型號、裝置ID、位置以及使用者個人資訊等,而在廣告主的資料方面,包含廣告的內容、標籤、風格與類別等資料。

威朋根據這些資料,以事先訓練好的模型預測出廣告板位價格以及內容並回傳,廣告供應方平臺則利用廣告需求方平臺提供的資訊做最後廣告板位顯示的決定,廖耘表示,機器學習在預測的步驟很快,而且因為他們必須在收到請求的50毫秒內給出回應,因此也不會做太複雜的運算。

用非監督式機器學習找出廣告受眾族群

機器學習分為非監督式與監督式,威朋研究開發部數據工程師陳嘉宏表示,兩者威朋都有使用。利用非監督式機器學習善於分群的特性,將從廣告供應平臺收集來的歷史紀錄做群體分析,根據樣本的多項特徵與屬性,找出這些樣本中存在的7種類型,並由人解讀後分別命名為白領商務族、熟齡樂活族、小資樂購族、完美時尚族、活力校園族、美麗媽媽族以及娛樂玩咖族。而且不只要對廣告受眾屬性分析,還要能夠猜出廣告受眾正在做什麼,藉由分析這些收集到數億筆的歷史資料,找出是哪些人正在做哪些事,建立出完整的情境(Scenario)用於投放廣告的決策。

威朋主要將監督式的機器學習用於即時的廣告決策。陳嘉宏認為,機器學習最困難的部分就在於樣本資料的彙整。一筆樣本廣告推薦系統的訓練樣本是一個數十個欄位的數學向量,其中包含來自廣告供應方平臺、廣告主以及威朋內部分析的情境資料,再以廣告受眾是否點擊廣告作為標籤,標記樣本廣告被點擊的情況。

而困難之處,陳嘉宏說,除了要先使用特別的演算法計算收集來的資料,找出與點擊率相關的屬性,才能擺進樣本中之外,還要處理許多空值資料以及假資料。

廖耘也表示,他們所處理的資料是不停流動的,新的資料會不斷進來而舊的資料會被排除,為了訓練出最適合當下的模型,需要不停更新訓練模型的樣本,但偶而會因為特殊的社會事件而收集到偏頗的樣本,這時候也要將這些極端值資料移除,以避免影響模型預測的精準度。

現在威朋廣告推薦的機器學習演算法使用的是Mutual Information,用以計算樣本中每一個特徵與標籤間的相關性。當待預測的資料進來時,跟模型比對每一個屬性的加權分數,以線性轉換的方式綜合所有特徵的計算出一個價錢,而這個價錢就是當下威朋想要用以競標該次廣告板位的價格。

廖耘說,無法一開始就算出一個最好的模型,但是隨著樣本資料的更新,訓練出來的模型將是最適合當下的。預測模型會因為應用的不同而採用不一樣的更新策略,而威朋其中一種更新策略是,新累積固定筆數的資料後,就拿一段時間的資料重新訓練模型,例如每新增500筆資料,就取近2天的資料重新訓練預測模型。

為機器學習量身打造大量資料處理引擎

威朋用8臺伺服器組成的運算叢集來計算出這些機器學習的模型,同時訓練多個應用在不同國家以及活動的模型。廖耘表示,他們本來使用大量資料處理引擎Spark,但是因為Spark採用的資料分散機制,無法適用於威朋機器學習的系統設計需求,因此決定改用Scala重新打造了自家專用的大量資料處理引擎。

雖然威朋現在使用的機器學習演算法Mutual Information無法做分散式運算,但是藉由平行運算系統的設計,能夠同時計算多個預測模型,好處是除了可以支援多市場與多活動的運算,還能加速進行參數調整的實驗。由於機器學習模型的訓練,需要調整非常多的參數,要透過實際計算才能找出最好的參數設定,如果需要依序測試10次才能找出最佳解,過於耗時,而威朋的平行運算系統,能夠同時以10組參數訓練模型,只要十分之一的時間就能得到相同的結果。

威朋研發機器學習廣告推薦機制的團隊約有10人,6人組成專門研究演算法的研究團隊,其餘4位則負責將演算法應用在實際系統。

研究團隊的目標,就是要讓演算法出價準、廣告點擊率高以及得到最大的點擊轉換率,但是在他們眼中最佳的演算法在實作面卻是不可行,因為許多演算法或許預測結果很好卻花費太多成本,而實際上應用機器學習的情況是非常複雜的,屬於系統實作團隊的廖耘表示,他們需要面對不斷更新的資料,或是計算時間的壓力。因此即使預測出來的結果再精確,若需要很長的計算時間,這樣的演算法也無法使用,反之,演算法反應速度超快,但是結果不準也是枉然,這是一個需要權衡的決定。

另外,系統實作的團隊也可以幫助研究團隊取得更多的實驗資料,廖耘表示,當研究團隊想要實驗新的演算法,系統實作團隊可以在不影響線上環境下,另外執行一次新的演算法,並把這些結果回傳給研究團隊,讓他們比對新舊演算法的差異。

廖耘以及陳嘉宏都認為,要達到威朋廣告推薦現在的結果,在處理大量資料且要求快速回應的條件,機器學習是不可或缺的。

熱門新聞

Advertisement