Kaggle-OTTO多目標(biāo)推薦系統(tǒng)大賽baseline
來(lái)源:深度之眼 作者:比賽教研部
編輯:學(xué)姐
日前,Kaggle發(fā)布了OTTO – Multi-Objective Recommender System多目標(biāo)推薦系統(tǒng)大賽。要求參賽者:
根據(jù)用戶會(huì)話中的先前事件構(gòu)建一個(gè)多目標(biāo)推薦系統(tǒng)。

這是一個(gè)推薦系統(tǒng)中的序列建模任務(wù),對(duì)本領(lǐng)域感興趣的小伙伴,千萬(wàn)不要錯(cuò)過(guò)。
下面是本場(chǎng)比賽的baseline。
賽題分析+baseline
1、賽題鏈接
https://www.kaggle.com/competitions/otto-recommender-system/overview
2、賽題描述
本次比賽的目標(biāo)是預(yù)測(cè)電子商務(wù)點(diǎn)擊、購(gòu)物車添加和訂單。
根據(jù)用戶的行為記錄來(lái)預(yù)測(cè)用戶各種行為下次發(fā)生交互的商品,這是一個(gè)經(jīng)典的多目標(biāo)推薦問(wèn)題。本次比賽的目標(biāo)是預(yù)測(cè)電子商務(wù)的點(diǎn)擊量、購(gòu)物車的添加量和訂單。你將根據(jù)用戶Session序列中的行為記錄來(lái)進(jìn)行推薦。
3、評(píng)價(jià)指標(biāo)
這里我們需要對(duì)用戶的點(diǎn)擊,加購(gòu),購(gòu)買行為進(jìn)行Top-K推薦,我們需要對(duì)每一個(gè)User的Session序列給出預(yù)測(cè)的Top-20的Item結(jié)果,其評(píng)估指標(biāo)使用Recall進(jìn)行評(píng)估:

這里我們需要分別對(duì)這三種行為分別進(jìn)行Recall指標(biāo)計(jì)算,最后將三個(gè)行為的Recall值進(jìn)行加權(quán)求和,其權(quán)值如下:

4、數(shù)據(jù)介紹
我們將數(shù)據(jù)完全讀入,可以看到數(shù)據(jù)的組織形式如下:

可以看到數(shù)據(jù)的組織形式十分的簡(jiǎn)練,但是在訓(xùn)練集里面一共有2億條數(shù)據(jù),數(shù)據(jù)包含有四列:['session','aid','ts','type'],記錄了session的用戶的這三種行為,我們挑選幾個(gè)Session,來(lái)根據(jù)時(shí)間來(lái)可視化一下用戶的行為類型。


我們對(duì)數(shù)據(jù)中的三種行為的占比進(jìn)行可視化:

可以看到,用戶的絕大多數(shù)行為是點(diǎn)擊行為,對(duì)于加購(gòu)和購(gòu)買行為幾乎很少。
bassline分析
Item-CF的思路
由于數(shù)據(jù)量極其的大,我們這里只使用最簡(jiǎn)單的基于統(tǒng)計(jì)的方法來(lái)完成此次baseline,這里我們使用Item-CF的思路,通過(guò)統(tǒng)計(jì)得出Item-Item的相似度矩陣,然后根據(jù)用戶的行為,推薦出相似的Item以完成Top-20推薦。
由于數(shù)據(jù)量實(shí)在太大,我們這里只采樣3000000個(gè)session完成下面的baseline。
在過(guò)濾完數(shù)據(jù)之后,我們來(lái)生成Item-Pair,這里要注意,每一個(gè)Item-Pair都是由在同一天同一個(gè)Session中相鄰的Item對(duì)構(gòu)成。
在完成計(jì)算Item-Item的相似度之后,我們就可以來(lái)根據(jù)相似度矩陣來(lái)進(jìn)行推薦了,其推薦函數(shù)如下:
這樣就可以完成對(duì)用戶的推薦了,這里要注意,我們對(duì)不同行為的推薦結(jié)果都是相同的,由于只有點(diǎn)擊行為的數(shù)據(jù)是非常豐富的,對(duì)于其他行為,數(shù)據(jù)是非常少的,所以這里就直接對(duì)這三個(gè)行為進(jìn)行了相同的推薦。
可以看到,我們這次的Baseline的代碼非常簡(jiǎn)單,而且效率非常的高,使用Kaggle自帶的CPU環(huán)境只需要10分鐘+就可以完成全流程的跑測(cè),線上得分:0.553,雖然這個(gè)得分不是很高,但是這個(gè)baseline跑測(cè)效率較高,代碼結(jié)構(gòu)易懂,其潛力還是很大的~
關(guān)注【學(xué)姐帶你玩AI】公眾號(hào),回復(fù)“OTTO”領(lǐng)取baseline
掃描二維碼??報(bào)名本場(chǎng)新賽
