焦慮煎熬的備戰(zhàn)期
2016年9月24日,中國(guó)?北京梅地亞中心酒店,第三屆“CCF大數(shù)據(jù)與計(jì)算智能大賽”開幕,共480支隊(duì)伍參賽。
趙紀(jì)偉、秦劍、蘇軍平組成的Smart Rookie隊(duì)便是這其中之一。
見到趙紀(jì)偉、秦劍、蘇軍平的時(shí)候,距離他們拿獎(jiǎng)已過(guò)去了兩個(gè)多月。作為西安電子科技大學(xué)通信工程學(xué)院移動(dòng)計(jì)算與通信團(tuán)隊(duì)(MCC)的研究生,他們?cè)谡鲁醢司鸵逊敌?,雖然研二并沒有課程,但他們?nèi)孕枰趯?shí)驗(yàn)室跟著導(dǎo)師做項(xiàng)目或是看一些專業(yè)相關(guān)的資料,“現(xiàn)在也要開始考慮找工作了,所以除了學(xué)習(xí),也會(huì)留意一些實(shí)習(xí)的信息”,拿獎(jiǎng)對(duì)他們來(lái)說(shuō)似乎不過(guò)是“簡(jiǎn)歷上能更好看一些”。
顯然,三個(gè)工科男生還不善于“應(yīng)付”這樣的談話,在問(wèn)及他們參加比賽的感受時(shí),戴著黑框眼鏡的秦劍只是低頭轉(zhuǎn)著手中的筆,蘇軍平則側(cè)身看著旁邊的趙紀(jì)偉和桌子對(duì)面的秦劍,最終,還是“老船長(zhǎng)”趙紀(jì)偉開始回憶他們參賽的日子。“煎熬,很煎熬”,十指交握的趙紀(jì)偉不斷將雙手松開再握緊,似乎已不能再想出更貼切的詞語(yǔ)來(lái)概括他們備戰(zhàn)比賽的三個(gè)多月。
“那段兒時(shí)間我們都快神經(jīng)衰弱了,每天早上一睜眼就在想,是不是哪兒出bug了,是不是有什么可以提升成績(jī)的方法,基本上那三個(gè)月一直都是這么過(guò)來(lái)的”。從10月1日初賽正式開始,到12月25日決賽落下帷幕,他們一面要完成老師布置的任務(wù),另一面又得兼顧著比賽。趙紀(jì)偉說(shuō):“秦劍是比較拼的,有一回他晚上正睡著,突然坐起來(lái)就要去實(shí)驗(yàn)室改數(shù)據(jù),還特執(zhí)著,說(shuō)他夢(mèng)見一個(gè)可以提升成績(jī)的方法,把我們弄得哭笑不得?!鼻貏戳粟w紀(jì)偉一眼,低頭略帶局促地說(shuō)道:“說(shuō)這干啥,好羞澀?!?/p>
巧妙處理的“領(lǐng)先計(jì)”
中國(guó)聯(lián)通“依據(jù)用戶軌跡的商戶精準(zhǔn)營(yíng)銷”,這便是趙紀(jì)偉他們最終選定的參賽項(xiàng)目。通訊專業(yè)出身的他們對(duì)網(wǎng)絡(luò)、數(shù)據(jù)挖掘等更為熟悉,趙紀(jì)偉認(rèn)為,他們的優(yōu)勢(shì)正在于此。
“依據(jù)用戶軌跡的商戶精準(zhǔn)營(yíng)銷”其實(shí)就是在用戶定位和商戶坐標(biāo)的基礎(chǔ)上,根據(jù)用戶畫像進(jìn)行商戶和用戶的匹配。在此過(guò)程中,會(huì)涉及到三部分?jǐn)?shù)據(jù),一是用戶在某段時(shí)間內(nèi)的位置信息,二是商戶的分類和位置信息,三是用戶的標(biāo)簽屬性信息。Smart Rookie隊(duì)需要做的便是聯(lián)系周圍商戶環(huán)境,挖掘用戶的行為傾向,進(jìn)行個(gè)性化推薦,本質(zhì)上就是大數(shù)據(jù)挖掘、推薦問(wèn)題。
店鋪排序、數(shù)據(jù)篩減,扎實(shí)的基本功為他們省去很多“麻煩”,讓他們從初賽開始就一路領(lǐng)先。
聯(lián)通提供的商戶位置均呈無(wú)序狀,這就意味著在搜索某一店鋪時(shí)要將所有店鋪遍歷一遍,“我們發(fā)現(xiàn)了這個(gè)問(wèn)題,就把這些店鋪按照經(jīng)緯度坐標(biāo)進(jìn)行排序,當(dāng)用戶到達(dá)列表內(nèi)店鋪所在經(jīng)緯度坐標(biāo)范圍內(nèi)時(shí),就可通過(guò)二分查找,迅速定位到店鋪的具體位置,這樣,我們的復(fù)雜度就直接從N方變成了log(n)。”趙紀(jì)偉對(duì)這個(gè)“巧妙的處理”十分滿意。

復(fù)賽中,聯(lián)通的訓(xùn)練集數(shù)據(jù)共有40523條,非空數(shù)據(jù)(實(shí)際推薦店鋪)數(shù)目為21734,測(cè)試集選用訓(xùn)練集中的6111條數(shù)據(jù),這比初賽時(shí)的數(shù)據(jù)翻了一倍不止。根據(jù)訓(xùn)練集中非空數(shù)據(jù)的數(shù)目,他們發(fā)現(xiàn)了一條“黃金特征”,即是在訓(xùn)練集的40523條數(shù)據(jù)中有18789條記錄是沒有推薦商戶的,而其共同特征是用戶在某個(gè)地點(diǎn)的停留時(shí)間均小于16分鐘。據(jù)此,他們對(duì)測(cè)試集6111條記錄中對(duì)應(yīng)的用戶軌跡停留時(shí)間小于16分鐘的不推薦任何商戶,這直接將他們的線上成績(jī)提高了7個(gè)百分點(diǎn),讓他們?cè)趶?fù)賽中以7‰的優(yōu)勢(shì)獨(dú)占榜首?!?‰在平時(shí)可能是很小的數(shù),但在比賽中,這已經(jīng)是很大的差距了。”蘇軍平解釋道。
雙模融合的“殺手锏”
如果說(shuō)店鋪排序、數(shù)據(jù)篩減都還只是有些“小聰明”的“伎倆”,那么雙模型融合的創(chuàng)新做法可稱得上是團(tuán)隊(duì)的制勝法寶。
模型一(M1)是基于統(tǒng)計(jì)的規(guī)則模型,根據(jù)用戶基本標(biāo)簽、用戶軌跡之間的距離、用戶與店鋪之間的距離以及相似用戶軌跡的類別比例等特征規(guī)則來(lái)建模。舉例來(lái)說(shuō),假設(shè)小美是一位經(jīng)常去商場(chǎng)買衣服的用戶,聯(lián)通系統(tǒng)中就會(huì)根據(jù)她的定位記錄打上類似“時(shí)尚達(dá)人”的標(biāo)簽,當(dāng)她的定位周邊有服裝店時(shí),即會(huì)給她進(jìn)行推薦。在這個(gè)模型中,用戶的定位十分關(guān)鍵。用戶實(shí)際位置為A點(diǎn),而定位顯示為B點(diǎn),如何進(jìn)行用戶精確定位是一個(gè)難點(diǎn),他們的選擇是泛化誤差?!拔覀兊淖龇ň褪峭ㄟ^(guò)很多用戶的定位信息來(lái)泛化這個(gè)誤差,比如很多用戶的定位都是在A點(diǎn)這個(gè)位置,然后我們看看這些用戶中的絕大多數(shù)會(huì)去的店鋪有哪些,用這些光顧度高的店鋪位置,反過(guò)來(lái)確定一個(gè)用戶的實(shí)際定位。”秦劍邏輯縝密地介紹道。
模型二(M2)是xgBoost模型,從給定的復(fù)賽數(shù)據(jù)中做特征工程,從100維特征中根據(jù)特征增益的高低,進(jìn)一步提取出近40維特征,然后采用logstic做一個(gè)二分類的處理。趙紀(jì)偉用“三個(gè)臭皮匠頂個(gè)諸葛亮”來(lái)風(fēng)趣地形容這個(gè)模型。他說(shuō):“xgBoost的基礎(chǔ)其實(shí)是決策樹算法,這是一種概率性的算法,整體思想就是把很多的弱分類器組成一個(gè)強(qiáng)分類器?!彼M(jìn)一步解釋道:“比如1號(hào)樹的判斷標(biāo)準(zhǔn)是‘天氣’,它就可能依據(jù)天氣晴好判定您去運(yùn)動(dòng)或者辦公;2號(hào)樹的標(biāo)準(zhǔn)是‘愛好’,判定您去看電影或者烘焙;3號(hào)樹的標(biāo)準(zhǔn)是‘行為習(xí)慣’,可能判定辦公或者購(gòu)物,每棵樹的判定都有不確定性,但是把這三棵樹放在一起取交集,就可以判定您今天是辦公。以此來(lái)推,我們通過(guò)某人一系列的行為特征學(xué)習(xí)到很多樹,即使每一棵樹的判定都具有不確定性,但是如果樹足夠多,我們就可以泛化誤差,把很多樹集成起來(lái),取所有特征判定的交集來(lái)做判斷,就大大提高了準(zhǔn)確率?!?/p>
M1的優(yōu)點(diǎn)在于適應(yīng)性更強(qiáng),M2則能對(duì)那些訓(xùn)練數(shù)據(jù)較多的店鋪更好地進(jìn)行擬合,從而對(duì)高熱度的店鋪有更高的推薦準(zhǔn)確率?!八宰罱K我們決定采用模型融合”。首先利用M1進(jìn)行整體預(yù)測(cè),然后利用M2對(duì)測(cè)試數(shù)據(jù)預(yù)測(cè),取預(yù)測(cè)用戶到達(dá)店鋪概率在0.5以上的那些訓(xùn)練記錄,將其作為PartA;接下來(lái),將PartA預(yù)測(cè)的那部分?jǐn)?shù)據(jù),從M1的整體預(yù)測(cè)集中作差集,得到PartB;最后將PartB與PartA兩部分預(yù)測(cè)子集合并,得到最終的預(yù)測(cè)結(jié)果集。
賽后,Smart Rookie團(tuán)隊(duì)的參賽作品便已交由聯(lián)通研究院做后續(xù)開發(fā),也許在某一天,你我的手機(jī)上就會(huì)收到貼心的店鋪推薦了。
(文/西電新聞中心·王 格)