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