1. 程式人生 > >IJCAI-18 阿里媽媽搜尋廣告演算法大賽亞軍解決方案

IJCAI-18 阿里媽媽搜尋廣告演算法大賽亞軍解決方案

一、  團隊介紹

隊長:BRYAN

資料探勘從業者,國內資料探勘競賽名將,天池資料科學家,IJCAI-17冠軍獲得者。曾多次在國內外著名賽事中取得名次。

隊員:桑楡

資料探勘從業者,國內資料探勘競賽名將,天池資料大師,IJCAI-17冠軍獲得者。曾多次在國內外著名賽事中取得名次。

隊員:李困困

資料探勘從業者,國內資料探勘競賽名將。曾取得CCF-螞蟻金服-商場定位賽冠軍等多項國內外著名賽事的名次。

二、  賽題背景分析及理解

本賽題為搜尋廣告轉化預估問題,一條樣本包含廣告點選相關的使用者(user)、廣告商品(ad)、檢索詞(query)、上下文內容(context)、商店(shop)等資訊的條件下預測廣告產生購買行為的概率(pCVR),形式化定義為:pCVR=P(conversion=1 | query, user, ad, context, shop)。可以將問題抽象為二分類問題,重點對使用者,商品,檢索詞,上下文,商店進行特徵刻畫,來訓練模型。

三、  核心思路

(1)    資料分析


213

   通過資料分析我們發現,訓練資料的前7天轉化率維持在1%左右,但是在6號轉化率偏低,在預測當天7號的上午轉化率超過4%,所以這是一個對特定促銷日進行預測的問題。重點需要刻畫使用者,商品,店鋪,檢索詞等關鍵資訊在預測日前面7天的行為,預測日前一天的行為,預測日當天的行為。

   另外7號的樣本量遠遠超過前面每天的樣本量均值,是我們重點需要關注的時間區間。主模型是基於7號上午的樣本進行訓練,前面7天的資料輔助訓練。由於預估時間為7號下午,時間相關的特徵沒法在上午訓練,為了彌補7號上午訓練帶來是資料和資訊損失,我們隊伍採用了兩種方式:,一種採用前面7天訓練模型預估7號得到概率作為新的特徵,一種是訓練7號之前以及7號上午訓練全量模型進行加權。

(2)    使用者分析

從下圖可以看到大部分使用者的點選次數集中在5次以下,8天的時間內點選5次,說明這是一個低頻訴求的場景。

4

在下圖中可以看到,大部分使用者都沒有購買行為,少量使用者購買了一次,本次競賽的目標預測使用者是否購買,少量的購買行為構成了資料的長尾分佈形勢。

5

下圖是使用者點選次數和購買次數的關係,橫軸點選數,縱軸購買數。可以看到資料是呈左下角分佈的趨勢,也就是說購買行為發生在少量點選次數的情況下,說明這是一個即時興趣,目標明確的場景。我們需要重點刻畫使用者當前狀態。

6

從使用者分析中,我們發現,點選一次的使用者佔據較大的比例,這部分無法通過歷史行為的特徵刻畫表徵,因此提供的query資訊是表徵這部分使用者的關鍵;同時,絕大部分使用者沒有發生購買行為,因此,負樣本中包含了大量的資訊,另外評估指標是logloss,需要精確預測購買概率,所以並未對負樣本進行取樣,避免破壞正負樣本分佈。

(3)    預處理

缺失值填充:id類特徵使用眾值填充,數值特徵均值填充

挖掘隱藏資訊:針對item_property_list列,統計property出現次數,保留出現次數的top1~top10作為新的id特徵;針對predict_category_property列,直接按順序保留top1~top10的類別作為新的id特徵。針對item_category_list列,因為第一個大類都相同,取第二個類別作為新的id類特徵。

  78

(4)    線下劃分

由於線上提交的次數有限,因此,建立穩定的線下是取勝的關鍵。為提升我們優化演算法的效率,減少線上成績的運氣性成分,同時避免我們的演算法過度依賴於線上資料集,我們認真地進行了線下測試,分別採取7日上午最後兩個小時,7日上午隨機15%的資料進行驗證,只有兩者線上下均有提升,我們才進行線上提交。因此,我們始終確保我們在線上驗證的優化線上下均有顯著的提升。

10

(5)    模型設計

我們採用了3種資料劃分方式訓練模型,主模型使用7號上午的資料作為訓練樣本,對31-5號,6號,7號的資料提取特徵。全域性資料模型使用全部帶標籤的樣本作為訓練樣本,使用全部資料提取特徵。時間資訊模型使用31-6號的資料作為訓練樣本,對31-6資料提取特徵。訓練的時間資訊模型對7號全天的樣本進行預測,將預測結果(攜帶了時間資訊)作為新的特徵新增到前面的模型中,來彌補前面模型對時間刻畫的缺失。

11

(6)    特徵工程

   特徵工程是模型提分的關鍵,我們從簡單到複雜建立了基礎特徵群,轉化率特徵群,排名特徵群,比例特徵群,類特徵群,競爭特徵群,業務特徵群等多種特徵群,對使用者及行為進行了細緻的刻畫。

12

基礎特徵群是在原始特徵的基礎上的一些簡單擴充與統計,比如店鋪下面的商品數,商品和query相同的類別數,屬性數,商品屬性個數等等。

13

轉化率特徵群是一些簡單統計比如點選次數,購買次數,轉化率和佔比之類的,由於使用者的行為過於稀疏,提取使用者轉化率的時候做了平滑,另外使用者有300多w,對使用者的購買點選進行編碼之後,使用者的行為一共只有300多種,效果提升明顯。

14

排名特徵是計算id類特徵的轉化率在父類id特徵下的排名,比如商品轉化率在其店鋪下的排名

15

佔比特徵是計算組合類id特徵在父類id特徵下的佔比,即使用組合id點選次數除以父類id點選次數

16

趨勢特徵是使用id類特徵的點選購買數,用後一天除以前一天得到的比值作為趨勢特徵

17

query互動特徵是提升幅度最大的特徵群,正好印證了賽題背景搜尋廣告。當用戶輸入搜尋詞的時候,使用者的一系列搜尋行為已經包含了使用者的意圖資訊,比如使用者搜尋某個商品用了多個query,說明使用者看到了很多商品,最終都點選了這個商品,對該商品興趣大於其他商品。再比如使用者用同一個query搜尋後點擊了多個商品,說明使用者在這些商品中猶豫。

18

使用者互動特徵也是提升幅度相對較大的特徵群,比如一些點選間隔特徵,計算使用者的兩次行為直接的點選時間間隔,得到平均點選時間間隔,最大最小間隔,與上一次下一次點選的時間間隔

19

競爭特徵群是考慮使用者當前狀態下和其他狀態的一個對比,比如使用者之前點選了一個商品,當前點選的商品與之前的商品對比優勢劣勢如何,使用者是如何衡量價效比的,比如當前點選的商品價格是否更低,好評是否更多,銷量是否更高

20

業務特徵群是結合一些實際業務聯想到的特徵,比如使用者連續點選多少次沒有購買,商品店鋪被一次性購買的比例,商品在展示頁出現的佔比。另外商品和店鋪的屬性每天都在發生變化,預測日的屬性和前七天的屬性對比變化如何  

21

為了提高效率,我們採用分批測試特徵群的方式進行線下驗證。其中紫色特徵群是過擬合的特徵群,線下表現突出,在線上表現平平。究其原因是因為,這些特徵都是對當天上午的資料進行統計,即使我們使用交叉的方式提取,儘量避免資料穿越,由於上午下午資料分佈有差異,所以依然沒能很好的克服過擬合。

22

23

(7)    模型融合

      24 

    不同模型好而不同是融合提升的關鍵,我們隊伍隊員分別做了三個高分模型,每個模型在樣本與特徵上均有差異,因此,通過融合進一步提升了成績。最好的單模型依然能保持top2的成績。

四、  工程優化

為了使模型更具業務實用性,我們對程式碼進行了優化,主要包括下面四個方面:

1)id類特徵重編碼,直接當作特徵,樹模型深度設定-1,避免了onehot大量佔用記憶體空間,實際效果和onehot相當。

2)資料並行,主模型2小時提取完全部特徵。由於python的多程序中,子程序會拷貝父程序狀態,如果直接把資料分塊然後使用多程序會導致記憶體暴漲,所以我們的解決方案是先將資料分塊存為磁碟檔案,然後在多程序任務中分別讀取各自資料提取特徵,最後合併特徵,有效的減少了記憶體佔用。

3)資料合併,訓練預測資料一起提取特徵。直接使用day,hour等欄位在提取特徵完畢之後劃分訓練,驗證,測試集。提高了特徵提取,線下測試,線上預測的流程效率。

4)特徵分批測試,提高效率。由於複賽資料量比較大,如果使用warper類的特徵選擇方法會浪費大量時間,所以我們直接按特徵群分批測試,使用原始特徵+測試特徵群的方式進行線下驗證,少量的特徵得以快速迭代驗證。

5)並行特徵提取的關鍵程式碼

資料分塊儲存

25

特徵提取

26

特徵合併

27

五、  比賽經驗總結

(1)深刻的賽題理解

  對賽題進行認真而理性的分析和全面而深入的思考,對不瞭解之處做相應的調研。

  (2)細緻的資料分析

  從各個維度對資料進行細緻的觀察和分析,從中挖掘出重要的規律。

  (3)海量的特徵

  多角度地提取有效特徵,構造廣闊而高質量的特徵海洋,確保沒有遺漏有用的資訊。

  (4)強力的模型

  訓練多組不同取樣方式、不同特徵的強力模型,並將它們融合成威力巨大的終極模型。

(5)未完成的思考

賽題背景是搜尋轉化預估,可以直接使用的資料是使用者已經點選過的資料,實際上我們還可以拿到使用者看到過,但是沒點選的資料來輔助訓練。一個query會出多個商品,使用者可能只點擊了其中一個,如何獲取使用者看到的其他商品呢?關鍵還是在query上,如果有其他使用者用同樣的query進行了搜尋並且點選了不同的商品,那麼這個商品可能就是被其他沒有點選的使用者看到過的。

(6)比賽與實際業務的差距

  在本次比賽中,我們使用了大量的特徵以及模型融合,其中存在兩個需要討論的問題。首先是特徵,我們使用了部分使用者當前狀態的特徵,比如距離上一次點選時間間隔,距離下一次點選時間間隔。第一個特徵在實際業務中,需要實時提取,如何設計實時特徵的計算框架,效能能否跟上都是需要考慮的問題。第二個特徵距離下一次點選時間間隔,這個特徵甚至在實際業務中根本提取不到,屬於未來的資訊,但是在比賽中卻可以利用到。如果把預測時間段的使用者資料調整為一個使用者只出現一次,那麼這個問題就可以得到很好的解決。隨之而來的另一個問題是,使用者只出現一次,就無法統計到使用者當前狀態的其他未利用到未來資訊的特徵,像商品店鋪的統計資訊也不完全,會引起一個資訊缺失的問題。所以如何在比賽與實際業務中平衡資料的利用程度是一個需要考慮到的問題。另外一個是模型設計的問題,實際業務中幾乎不太可能會用到stack之類的模型融合方案,模型複雜度帶來的計算代價和線上預估時間的代價可能會超過模型融合效能提升帶來的收益,實際業務簡單加權融合可能會成為多數時候的選擇。本次比賽我們選擇了LightGBM模型,因為資料量少,訓練快,可以線上下快速迭代。在實際業務中,使用的更多的模型可能是LR,FFM,DNN之類的模型,實際業務的資料是海量的,這些模型更能學習到穩定魯棒的引數,並且預估速度更快。由於正負樣本比例懸殊,如果考慮訓練效率的話,其實也可以對負樣本進行取樣後訓練,比如LR模型訓練之後通過對截距項的修正,依然可以保持預估的資料符合實際分佈。

六、  團隊亮點

(1)強大的陣容

  聚集三位優秀的資料探勘競賽選手。

  (2)一致的目標

  隊員們對本次比賽的目標一致而明確(雖然最終並未達成)。

  (3)良好的溝通

  隊員們頻繁地對賽題進行討論,及時地同步各自的進展。

  (4)完美的配合

  隊員們分別訓練不同的模型,彼此的模型差異極大,特別適合進行融合。

相關推薦

IJCAI-18 阿里媽媽搜尋廣告演算法大賽亞軍解決方案

一、  團隊介紹隊長:BRYAN資料探勘從業者,國內資料探勘競賽名將,天池資料科學家,IJCAI-17冠軍獲得者。曾多次在國內外著名賽事中取得名次。隊員:桑楡資料探勘從業者,國內資料探勘競賽名將,天池資料大師,IJCAI-17冠軍獲得者。曾多次在國內外著名賽事中取得名次。隊員

IJCAI-18 阿里媽媽搜尋廣告轉化預測 總結

1. 比賽背景官網介紹:本次比賽以阿里電商廣告為研究物件,提供了淘寶平臺的海量真實交易資料,參賽選手通過人工智慧技術構建預測模型預估使用者的購買意向,即給定廣告點選相關的使用者(user)、廣告商品(ad)、檢索詞(query)、上下文內容(context)、商店(shop)

哈哈~,終於把阿里媽媽廣告申請下來了

今天終於把阿里媽媽的廣告申請下來了,真的很不容易,不知道被拒絕了多少次啊,一開始去管理部落格的時候就發現原來JE可以做阿里媽媽廣告啊,然後就開始申請,當第一次未通過的時候,自己在想可能是瀏覽量的原因,等瀏覽量上去再去申請

關於去除 000webhost 主機免費版右下角的廣告條水印的解決方案

前言 000webhost 虛擬主機的確挺好用,也免費。但美中不足的是他會給你在右下角加一個 “Powered By 000webhost" 的水印(如下圖1),很影響網站體驗。而且這東西在不科學上網的情況下經常背景還載入不出來,是很醜的一條(如下圖2)。     &n

Ubuntu 18 安裝 Python 3.7 報錯的解決方案

Ubuntu 18 安裝 Python 3.7 報錯的解決方案 Ubuntu 18 安裝 Python 3.7 報錯的解決方案 0. 環境 1. sudo make install 報錯 ZipImportEr

flask專案Gunicorn + Nginx 進行佈署阿里雲靜態檔案出不來解決方案

使用 Gunicorn + Nginx 進行佈署,雲伺服器為阿里雲 上線後除了主頁能顯示出來,什麼都是返回404,。 解決方案: vi /etc/nginx/sites-available/default 新增以下程式碼: location /static {   &n

ubuntu-18.04 root登入圖形介面失敗問題解決方案

1.設定ROOT密碼先輸入當前所在使用者密碼,然後輸入你要設定的root密碼,輸入兩次即可!2.進入/etc/pam.d目錄主要修改兩個檔案(圈了紅色框框),記得命令列下切換root賬戶(sudo -i)進行vim修改,剛安裝的ubuntu沒有vim支援,請根據提示進行安裝。

阿里微服務架構下分散式事務解決方案-GTS

雖然微服務現在如火如荼,但對其實踐其實仍處於初級階段。即使網際網路巨頭的實踐也大多是試驗層面,鮮有核心業務系統微服務化的案例。GTS是目前業界第一款,也是唯一的一款通用的解決微服務分散式事務問題的中介軟體,而且可以保證資料的強一致性。本文將對GTS做出深入解讀。 微服務倡導將複雜的單體應用拆分為若干個功能簡

西門子PC Adapter USB,線上S7-200時,提示埠被佔用,不搜尋站點問題的一個解決方案

在WIN7 32下同時安裝了STEP7、V4.0 STEP 7 MicroWIN SP9。利用通用型的PC Adapter USB進行程式設計。在STEP7線上後,更換插頭到S7-200,線上時提示埠被佔用,不搜尋站點。重啟系統,首先進行S7-200線上正常。一旦使用STEP

Ubuntu 18.04 LTS 安裝後 各種問題以及解決方案

以及 oot 下載 自動打開 root log org apt-get ack 1. root的初始密碼,默認是不知道的,需要進行設置   a. 進入終端自己的用戶   b. 輸入 sudo passwd回車   c. 輸入新密碼,回車,重復,回車,搞定   d.

IJCAI2018阿里媽媽演算法大賽:八強攻略

** JCAI-18 阿里媽媽搜尋廣告轉化預測 ** IJCAI-18 阿里媽媽國際廣告演算法大賽圓滿結束,我所在的隊伍也幸運的從5300支隊伍中進入決賽八強,在杭州阿里巴巴總部接受了答辯,這次的IJCAI和阿里舉辦的比賽吸引了六大洲的隊伍,競爭也是異常的激烈

10月18日科技聯播:阿里媽媽將推出全新的資訊流營銷產品;特斯拉購得上海建廠用地

雙十一新看點!阿里媽媽推出全新資訊流產品,賣貨邏輯將會有什麼新變化?特斯拉上海“動土”成功,以 9.73億元拿下中國工廠地塊,上海超級工廠專案啟動在即;大資料時代如何保障使用者資訊?蘋果交出滿意的新答案:推出個人隱私網站,允許使用者搜尋檢視個人資料;一起來看今天的科技快訊: 阿里媽媽將推出全新的資訊流營銷產

深度興趣演化網路— 阿里媽媽精準定向廣告

今天講的部落格參考了2019年的AAAI的一篇paper《Deep Interest Evolution Network for Click-Through Rate Prediction》,這又是阿里媽媽蓋坤組新的一篇paper,同時也是之前公佈的深度置信網路《Deep Interest

恭賀本站順利通過阿里媽媽廣告聯盟,歡迎投放廣告

今天本站正式通過阿里媽媽廣告聯盟或者叫淘寶聯盟(www.alimama.com)按時長計費申請,正式加入國內網賺的大潮中。關於淘寶聯盟淘寶聯盟隸屬於於亞洲最大的零售商圈淘寶網,於2010年4月8日正式成立。依託阿里巴巴集團強大的品牌號召力和淘寶聯盟人的不懈努力,淘寶聯盟匯聚了大量電子商務營銷效果資料和經驗,已

阿里移動推薦演算法大賽總結

一、 賽題說明 1. 競賽題目 在真實的業務場景下,我們往往需要對所有商品的一個子集構建個性化推薦模型。在完成這件任務的過程中,我們不僅需要利用使用者在這個商品子集上的行為資料,往往還需要利用更豐富的使用者行為資料。定義如下的符號: U:使用者集合

天池新人實戰賽-阿里移動推薦演算法大賽(離線賽與平臺賽)

競賽題目 (離線賽與平臺賽題目一樣,只是資料量不一樣,離線2000w+條資料,平臺11億+條資料) 在真實的業務場景下,我們往往需要對所有商品的一個子集構建個性化推薦模型。在完成這件任務的過程中,我們不僅需要利用使用者在這個商品子集上的行為資料,往往還需要利用更豐富的使

阿里天池大資料之移動推薦演算法大賽總結及程式碼全公佈

移動推薦演算法比賽已經結束了一個多星期了,現在寫一篇文章來回顧一下自己的參賽歷程。 首先,對不瞭解這個比賽的同學們介紹一下這個比賽(引用自官網): 賽題簡介 2014年是阿里巴巴集團移動電商業務快速發展的一年,例如2014雙11大促中移動端成交佔比達到42.6%,超過240億元。相比PC時代,移動端網路的訪

關於2015阿里移動推薦演算法大賽的總結(二)——推薦演算法

雖然開始走錯了路,但是也學到了東西,美團技術團隊的文件還是不錯的,喜歡的童鞋可以經常去瞅瞅,後面我會給連結的~~~~ —————————————————————————————————————————————————————————————— 具體流程 基本流程如

第一屆騰訊社交廣告 高校演算法大賽--基基復基基隊伍分享(進入決賽)

我們是參加騰訊社交廣告演算法大賽的隊伍,這次想在這分享下我們隊伍的經驗。首先介紹下我們隊伍,我們隊伍3個成員是來自西安電子科大和長安大學的高校生,在網際網路上了解到這個競賽,挺感興趣,所以就參加了這個競賽! 這次競賽的要求是讓選手預測出 App 廣告點選後被啟用的概率,

阿里移動推薦演算法大賽——特徵工程

1 特徵工程是什麼?   有這麼一句話在業界廣泛流傳:資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。那特徵工程到底是什麼呢?顧名思義,其本質是一項工程活動,目的是最大限度地從原始資料中提取特徵以供演算法和模型使用。通過總結和歸納,人們認為特徵工程包