孫玥 楊國為 何鎏
摘要: 針對現(xiàn)有搜索廣告轉(zhuǎn)化率預(yù)測模型和分類模型未考慮店鋪特征和用戶需求,為了更好的預(yù)測廣告的轉(zhuǎn)化率,本文基于店鋪特征和用戶需求對廣告轉(zhuǎn)化率進(jìn)行預(yù)測。以阿里搜索廣告為研究對象,提出基于店鋪特征和用戶需求的數(shù)據(jù)預(yù)分析的特征處理方式,對特征進(jìn)行預(yù)分析,即對用戶和店鋪的相關(guān)特征進(jìn)行初次預(yù)測處理,分別求出轉(zhuǎn)化率,以此作為新特征。XGBoost算法泛化性能高,損失函數(shù)同時用到一階導(dǎo)和二階導(dǎo),可以加快優(yōu)化速度,所以運用該算法構(gòu)建基于店鋪特征和用戶需求的阿里搜索廣告轉(zhuǎn)化率預(yù)測模型和轉(zhuǎn)化率分類模型。通過對比預(yù)測結(jié)果在對數(shù)似然損失(Logarith mic loss, Logless)的指標(biāo),該預(yù)測模型的正確預(yù)測率和正確分類率顯著提升。本文使用的特征處理方式能夠充分挖掘商品信息,能夠更好的實現(xiàn)廣告轉(zhuǎn)化率的預(yù)測,有利于提高廣告的競爭力。
關(guān)鍵詞: 搜索廣告; 預(yù)分析; XGBoost; 轉(zhuǎn)化率; 店鋪特征; 用戶需求
中圖分類號: TP181? 文獻(xiàn)標(biāo)識碼: A
1 相關(guān)理論與證明
1.1 特征工程概念
特征工程是機器學(xué)習(xí)領(lǐng)域至關(guān)重要的概念,一般認(rèn)為是為機器學(xué)習(xí)應(yīng)用而設(shè)計特征集的相關(guān)工作。對于基于特征的機器學(xué)習(xí)方法,特征集的選擇決定了算法迭代到最優(yōu)情況的極值,特征體系設(shè)計的優(yōu)劣決定了整個模型的性能[6]。因此,如何利用已有的歷史數(shù)據(jù)抽取有效的、與預(yù)估任務(wù)高度關(guān)聯(lián)的特征是接下來要考慮的首要問題。特征設(shè)計的好壞直接影響預(yù)測模型預(yù)測效果的極限,對模型的時空復(fù)雜度及收斂速度都有較大影響。特征工程通過一系列必要的工程活動,將所有信息使用更加高效的編碼方式表示,獲取更好的訓(xùn)練數(shù)據(jù)。在對信息進(jìn)行特征處理時,要保證信息損失較少,原始數(shù)據(jù)中包含的規(guī)律依然保留。此外,新的編碼方式應(yīng)盡量減少原始數(shù)據(jù)中不確定性因素的影響[78]。
1.2 特征工程常用方法
對特征工程的數(shù)據(jù)處理一般包括3種方式。在進(jìn)行特征構(gòu)建時,分別對不同類型的數(shù)據(jù)進(jìn)行處理,獲得預(yù)測模型需要的特征。
1.2.1 數(shù)值型數(shù)據(jù)
1) 標(biāo)準(zhǔn)化處理:對于數(shù)值型的特征,特征取值范圍較大,數(shù)據(jù)分布也很分散,導(dǎo)致方差很大,因此在進(jìn)行處理時,需要將其標(biāo)準(zhǔn)化為正態(tài)函數(shù),均值為0,方差為1,但處理前需要提前考慮是否需要進(jìn)行這項處理[9]。
2) 歸一化處理:將數(shù)據(jù)大小調(diào)整到0~1之間,進(jìn)行歸一化處理后,不僅能夠提高收斂速度,減少運算時間,而且能夠提升模型精度。所以本文對廣告商品的銷量等級、價格等級、被收藏次數(shù)等級、被展示次數(shù)等級這些特征進(jìn)行歸一化處理。
3) 離散化處理:將連續(xù)值轉(zhuǎn)化成非線性數(shù)據(jù)。廣告商品的品牌編號是一個long類型,將其按照1 000以上,10到1 000和10以下進(jìn)行離散化處理。
1.2.2 類別型數(shù)據(jù)
類別型一般是文本信息,使用數(shù)據(jù)時采用OneHot編碼處理。OneHot編碼方法是使用N位狀態(tài)寄存器對N個狀態(tài)進(jìn)行編碼,每個狀態(tài)都有獨立的寄存器位,并且在任意時候只有一位有效[1011]。在對頁面展示編號廣告商品的類目進(jìn)行處理時,采用OneHot編碼處理。
1.2.3 時間型數(shù)據(jù)
時間型數(shù)據(jù)特征可被看作兩部分,當(dāng)為連續(xù)值時,用來統(tǒng)計持續(xù)時間和時間間隔等[1213];當(dāng)為離散值時,可以提取小時和星期,w和h就是提取出來的小時和星期。
2 基于XGBoost算法的轉(zhuǎn)化率預(yù)測模型和分類模型的構(gòu)建過程XGBoost是大規(guī)模并行Boosted tree工具,比常見的工具包快10倍以上,Boosted tree最基本的組成部分叫做回歸樹(Regression tree),也叫CART,它會把輸入根據(jù)輸入的屬性分配到每個葉子節(jié)點,且每個葉子節(jié)點上面都會對應(yīng)一個實數(shù)分?jǐn)?shù)[1415]。該算法可通過分布方式建立模型,在不斷更新迭代中選擇梯度下降的方向來保證預(yù)測結(jié)果最優(yōu),其算法流程如下[16]
本文使用XGBoost算法在CPU計算機上并行Boosted tree,提升Boosted tree的預(yù)測精度[17],調(diào)用train_test_split函數(shù),隨機將實驗數(shù)據(jù)劃分為訓(xùn)練集和測試集,其中實驗數(shù)據(jù)都是242維,用來訓(xùn)練模型。
3 系統(tǒng)實現(xiàn)
3.1 實驗數(shù)據(jù)
為保證實驗結(jié)果的準(zhǔn)確性,實驗使用的數(shù)據(jù)來自阿里媽媽國際廣告算法大賽,本次使用的數(shù)據(jù)包括基礎(chǔ)數(shù)據(jù)、廣告商品信息、用戶信息、上下文信息和店鋪信息5類。基礎(chǔ)數(shù)據(jù)表如表1所示,提供了搜索廣告最基本的信息以及“是否交易”的標(biāo)記;廣告商品信息、用戶信息、上下文信息和店鋪信息等4類數(shù)據(jù)如表2~表4所示,提供了
3.2 實驗數(shù)據(jù)特征處理
采集到的廣告數(shù)據(jù)由于相關(guān)性程度低等因素導(dǎo)致包含不實用數(shù)據(jù),為了使數(shù)據(jù)分析或數(shù)據(jù)預(yù)測工作具有科學(xué)性和可靠性,不能直接使用這些“臟數(shù)據(jù)”。因此,首先需要對采集到的原始數(shù)據(jù)進(jìn)行特征提取[18]。
3.2.1 用戶信息處理
用戶自然屬性特征來源與用戶的注冊信息,主要根據(jù)所給的數(shù)據(jù)進(jìn)行轉(zhuǎn)化率求解,即在所有給定的數(shù)據(jù)及標(biāo)簽的情況下,分別求出不同性別及不同年齡等級產(chǎn)生購買行為的轉(zhuǎn)化率,從而產(chǎn)生新的使用特征。
3.2.2 廣告商品的信息處理
對于廣告商品的屬性列表,由于其屬性有分類,所以需要計算其各屬性的數(shù)量及權(quán)重和。商品類目列表經(jīng)過計算,其第1列完全相同,所以只選后兩個,并把其分為兩個特征分別計入,為后面編碼做準(zhǔn)備。廣告商品編號、廣告商品的品牌編號、廣告商品的城市編號分別計數(shù),求其轉(zhuǎn)化率。
3.2.3 上下文信息處理
用戶是否購買商品與時間存在一定聯(lián)系,如雙十一購物節(jié)、春節(jié)、圣誕節(jié)、情人節(jié)等都會使用戶產(chǎn)生購買行為,因此商品的展示時間也是一個重要屬性。根據(jù)所給的原始數(shù)據(jù),先將時間轉(zhuǎn)化為正常格式,同時增加周屬性來增加新的特征。對于商品的預(yù)測類目屬性,由于其存在缺失值,可以統(tǒng)計類目屬性的個數(shù)、最大值及其總和。
3.2.4 OneHot Encoding處理
在很多機器學(xué)習(xí)任務(wù)中,特征有的是連續(xù)值,有的是分類值。如果將特征用數(shù)字表示,效率會很高。但是在轉(zhuǎn)化為數(shù)字表示后,數(shù)據(jù)不能直接用在分類器中。為了解決上述問題,可行的方法是采用獨熱編碼(OneHot Encoding),又稱1位有效編碼。其方法是使用N位狀態(tài)寄存器對N個狀態(tài)進(jìn)行編碼,每個狀態(tài)都有其獨立的寄存器位,并且在任意時候,其中只有一位有效[19
20]。所以對'item_sales_level','item_price_level','item_collected_level','item_pv_level','context_page_id','w','h','item_category1','item_category2'進(jìn)行編碼處理。
3.2.5 基于店鋪特征和用戶需求的預(yù)分析特征處理
為解決傳統(tǒng)特征處理的弊端,本研究加入創(chuàng)新點,為對shop和user的相關(guān)數(shù)據(jù)進(jìn)行預(yù)分析的特征處理,分別通過XGBoost后產(chǎn)生兩列新的特征,即不同店鋪和不同用戶的轉(zhuǎn)化率,其分別為predicted_shop_score和predicted_user_score。
用戶數(shù)據(jù)的轉(zhuǎn)化與否與用戶的意愿密切相關(guān),所以對用戶相關(guān)的特征處理非常重要。首先對每個用戶的相關(guān)特征進(jìn)行組合,然后通過XGBoost對組合后的數(shù)據(jù)求轉(zhuǎn)化率,進(jìn)而重新生成一維特征,即每個用戶的轉(zhuǎn)化率predicted_user_score。
店鋪優(yōu)劣對廣告商品轉(zhuǎn)化率有重大影響,對于同一商品,不同店鋪的轉(zhuǎn)化率不同,店鋪的評價數(shù)量、好評率、星級、服務(wù)態(tài)度、物流服務(wù)、描述相符等特征都會影響轉(zhuǎn)化率,而店鋪轉(zhuǎn)化率又與廣告商品的轉(zhuǎn)化率密切相關(guān),所以研究店鋪的相關(guān)特征對搜索廣告轉(zhuǎn)化率有重大影響。首先對每個店鋪的相關(guān)特征進(jìn)行組合,然后通過XGBoost對組合后的數(shù)據(jù)求出轉(zhuǎn)化率,進(jìn)而重新生成一維特征,即每個店鋪的轉(zhuǎn)化率predicted_shop_score。對于得到的兩維新特征predicted_shop_score和predicted_user_score,與其他特征一樣,作為最終需要的特征進(jìn)行訓(xùn)練。
4 實驗評價與討論
4.1 分類預(yù)測評估指標(biāo)
本文采用對數(shù)似然損失(logarithmic loss, Logloss)對模型進(jìn)行評價。對數(shù)損失通過懲罰錯誤的分類,實現(xiàn)對分類器準(zhǔn)確率的量化。最小化對數(shù)損失基本等價于最大化分類器的準(zhǔn)確度,為了計算對數(shù)損失,分類器必須提供對輸入所屬類別的概率值,不只是最可能的類別。對數(shù)損失的計算公式為
4.2 實驗評價
運行Python程序,通過模型將測試集的樣本進(jìn)行分類,求解其轉(zhuǎn)化率,用于求Logloss的pi,進(jìn)而求解Logloss值。實驗結(jié)果如表5所示。由表5可以看出,在沒有加入初次預(yù)測項數(shù)據(jù)時,logloss較高;在加入初次預(yù)測后,logloss明顯下降。因此,基于店鋪特征和用戶需求預(yù)分析的特征處理方式是可用的。
5 結(jié)束語
本文提出基于店鋪特征和用戶需求預(yù)分析的特征處理方式,對轉(zhuǎn)化率進(jìn)行正確分類及預(yù)測。通過實驗研究廣告轉(zhuǎn)化率的預(yù)測問題,訓(xùn)練數(shù)據(jù)特征的選擇對于模型的預(yù)測性能影響重大。廣告轉(zhuǎn)化率預(yù)測中,數(shù)據(jù)特征包含基礎(chǔ)數(shù)據(jù)、廣告商品信息、用戶信息、上下文信息和店鋪信息。這些特征組合得越好,模型性能就越好,模型的準(zhǔn)確率就越高。本文提出的模型更好地降低了Logloss值,預(yù)測廣告的轉(zhuǎn)化率更準(zhǔn)確,實現(xiàn)了廣告商的最大利益。如何從特征學(xué)習(xí)的角度預(yù)估稀疏廣告的轉(zhuǎn)化率,同時進(jìn)行不同模型融合方面的機理性研究是下一步的研究重點。
參考文獻(xiàn):
[1] Graepel T, Candela J Q, Borchert T, et al. Webscale Bayesian clickthrough rate prediction for sponsored search advertising in Microsoft's bing search engine[C]∥International Conference on International Conference on Machine Learning. Haifa, Israel: DBLP, 2010: 1320.
[2] 宋益多. 基于用戶特征的搜索廣告點擊率預(yù)測研究[D]. 哈爾濱: 哈爾濱工程大學(xué), 2015.
[3] Stankevich M, Isakov V, Devyatkin D, et al. Feature engineering for depression detection in social media[C]∥International Conference on Pattern Recognition Applications and Methods. Angers, France: IEEE, 2018: 426431.
[4] 余仕敏. 基于遞歸神經(jīng)網(wǎng)絡(luò)的廣告點擊率預(yù)估[D]. 杭州: 浙江理工大學(xué), 2016.
[5] 曹璨. 基于特征抽取和分步回歸算法的資金流入流出預(yù)測模型[D]. 合肥: 中國科學(xué)技術(shù)大學(xué), 2017.
[6] Thenmozhi D, Mirunalini P, Aravindan C. Feature engineering and characterization of classifiers for consumer health information search[M]. Springer, Germany: Text Processing, 2018.
[7] 張凱姣. 基于Python機器學(xué)習(xí)的可視化麻紗質(zhì)量預(yù)測系統(tǒng)[D]. 長寧: 東華大學(xué), 2017.
[8] 司向輝. 個性化廣告點擊率預(yù)測的研究和實現(xiàn)[D]. 北京: 北京郵電大學(xué), 2013.
[9] Chen J H, Li X Y, Zhao Z Q, et al. A CTR prediction method based on feature engineering and online learning[C]∥International Symposium on Communications and Information Technologies. Cairns, QLD,Australia: IEEE, 2017.
[10] 劉懷軍, 車萬翔, 劉挺. 中文語義角色標(biāo)注的特征工程[J]. 中文信息學(xué)報, 2007, 21(1): 7984.
[11] 王兵. 一種基于邏輯回歸模型的搜索廣告點擊率預(yù)估方法的研究[D]. 杭州: 浙江大學(xué), 2013.
[12] 周永. 基于特征學(xué)習(xí)的廣告點擊率預(yù)估技術(shù)研究[D]. 哈爾濱: 哈爾濱工程大學(xué), 2014.
[13] 胡平伍. 移動廣告點擊率預(yù)測方法的研究與實現(xiàn)[D]. 南京: 東南大學(xué), 2017.
[14] 葉倩怡. 基于Xgboost方法的實體零售業(yè)銷售額預(yù)測研究[D]. 南昌: 南昌大學(xué), 2016.
[15] 蘭曉然, 張灝, 李明, 等. 基于數(shù)據(jù)挖掘的手機用戶換機行為預(yù)測研究[J]. 數(shù)學(xué)的實踐與認(rèn)識, 2017, 47(16): 7180.
[16] 賈文慧, 孫林子, 景英川. 基于XGBoost模型的股骨頸骨折手術(shù)預(yù)后質(zhì)量評分預(yù)測[J]. 太原理工大學(xué)學(xué)報, 2018, 49(1): 174178.
[17] 樊鵬. 基于優(yōu)化的xgboosTLMT模型的供應(yīng)商信用評價研究[D]. 廣州: 廣東工業(yè)大學(xué), 2016.
[18] 劉懷軍, 車萬翔, 劉挺. 中文語義角色標(biāo)注的特征工程[J]. 中文信息學(xué)報, 2007, 21(1): 7984.
[19] 匡俊, 唐衛(wèi)紅, 陳雷慧, 等. 基于特征工程的視頻點擊率預(yù)測算法[J]. 華東師范大學(xué)學(xué)報: 自然科學(xué)版, 2018(3): 7787.
[20] 嚴(yán)嶺. 展示廣告中點擊率預(yù)估問題研究[D]. 上海: 上海交通大學(xué), 2015.