本文介紹的文章題目為《Learning and Transferring IDs Representation in E-commerce》箩兽,下載地址為:https://arxiv.org/abs/1712.08289
本文介紹了一種ID類特征的表示方法徘意。該方法基于item2vec方式,同時考慮了不同ID類特征之間的連接結(jié)構(gòu)户魏,在盒馬鮮生app上取得了不錯的應(yīng)用效果,我們來一探究竟篓像。
1夺英、背景
在推薦系統(tǒng)特別是電商領(lǐng)域的推薦中,ID類特征是至關(guān)重要的的特征狐赡。傳統(tǒng)的處理方式一般是one-hot編碼撞鹉。但是這種處理方式存在兩個主要的弊端:
1)高維稀疏問題:對于高維稀疏問題,若有N個物品颖侄,那么用戶交互過的物品的可能情況共2^N種情況鸟雏,為了使我們的模型更加具有可信度,所需要的樣本數(shù)量是隨著N的增加呈指數(shù)級增加的览祖。
2)它無法反映ID之間的關(guān)系:對于同質(zhì)信息來說孝鹊,比如不同的物品,假設(shè)是iphon5和iphone6展蒂,以及iphone5和華為又活,在轉(zhuǎn)換成one-hot編碼后,距離是一樣的玄货,但是實際上,iphon5和iphone6的距離應(yīng)該更近悼泌。對于異質(zhì)信息松捉,如物品ID和商鋪ID,它們的距離甚至無法衡量馆里,但實際上隘世,一家賣蘋果手機的商鋪和蘋果手機之間可柿,距離應(yīng)該更近。
對于上述問題丙者,出現(xiàn)了word2vec以及item2vec的解決方案复斥,將ID類特征轉(zhuǎn)換為一個低維的embedding向量,這種方式在電商領(lǐng)域的推薦中取得了不錯的效果械媒。
本文提出的方式目锭,基于item2vec,同時還考慮了不同ID類特征之間的連接結(jié)構(gòu)纷捞,通過這些連接痢虹,在ItemID序列中的信息可以傳播到其它類型的ID特征,并且可以同時學(xué)習(xí)這些ID特征的表示主儡,框架如下圖所示:
上面的學(xué)習(xí)方式在盒馬app中有以下幾方面的應(yīng)用:
1)Measuring the similarity between items:建模物品之間的相似度
2)Transferring from seen items to unseen items:將已知物品的向量遷移到位置物品上
3)Transferring across different domains:將不同領(lǐng)域的向量進(jìn)行遷移
4)Transferring across different tasks.:從不同的應(yīng)用場景中進(jìn)行遷移奖唯。
上面的幾個應(yīng)用我們在后文中會詳細(xì)介紹。接下來糜值,我們首先來介紹一下本文如何對ID類特征進(jìn)行處理丰捷。
2、學(xué)習(xí)ID的表征方式
2.1 Skip-gram on User’s Interactive Sequences
在電商領(lǐng)域寂汇,我們可以通過用戶的隱式反饋病往,整理得到用戶的一個交互序列。如果把每一個交互序列認(rèn)為是一篇文檔健无,那么我們可以通過Skip-Gram的方法來學(xué)習(xí)每一個item的向量荣恐。Skip-Gram的方法是最大化下面的對數(shù)概率:
其中,C是我們的上下文長度累贤,假設(shè)長度是2叠穆,那么下圖中梨的上下文就是前后的兩個item:
有關(guān)Skip-Gram模型的相關(guān)知識,可以參考:https://www.cnblogs.com/peghoty/p/3857839.html
在基本的Skip-Gram模型中臼膏,概率計算方式定義為如下的softmax方程:
其中硼被,每個物品都有兩套向量表示,分別是目標(biāo)向量表示和上下文向量表示渗磅。D表示item的總數(shù)量嚷硫。
2.2 Log-uniform Negative-sampling
當(dāng)item的總數(shù)量十分巨大時,求解Skip-Gram的方法通常是負(fù)采樣的方式始鱼,此時概率計算如下:
這里使用的負(fù)采樣方式是Log-uniform Negative-sampling仔掸。簡單介紹一下其流程:首先將D個物品按照其出現(xiàn)的頻率進(jìn)行降序排序,那么排名越靠前的物品医清,其出現(xiàn)的頻率越高起暮。采樣基于Zipfian分布,每個物品采樣到的概率如下:
由于分母都是一樣的会烙,分子依次為log(2/1),log(3/2)...log(D+1/D)负懦,是順次減小的筒捺,同時求和為1。那么排名越靠前即出現(xiàn)頻率越高的商品纸厉,被采樣到的概率是越大的系吭。
那么,該分布的累積分布函數(shù)為:
這樣颗品,當(dāng)隨機產(chǎn)生一個(0,1]之間的隨機數(shù)r時肯尺,可以通過下面的轉(zhuǎn)換快速得到對應(yīng)的index:
2.3 IDs and Their Structural Connections
實際應(yīng)用中,有許多組不同的ID抛猫,但是可以歸結(jié)為兩組:
1)物品ID及其屬性ID:物品item ID是電商領(lǐng)域的核心蟆盹,每一個物品有對應(yīng)的屬性ID,比如產(chǎn)品product ID闺金,店鋪store ID逾滥,品牌brand ID,品類category ID等败匹。舉個簡單的例子寨昙,xxx店賣的哈登籃球鞋是一個物品item ID,其對應(yīng)的產(chǎn)品是哈登籃球鞋掀亩,對應(yīng)一個product ID舔哪,另一家店賣的同款哈登籃球鞋是另一個item ID。xxx店對應(yīng)的是一個store ID槽棍,addias是哈登籃球鞋對應(yīng)的品牌brand ID捉蚤,而籃球鞋是其對應(yīng)的category ID。品類ID可能有分一級品類炼七、二級品類和三級品類缆巧。
2)用戶ID:用戶身份可以通過ID進(jìn)行識別,這里的ID可以有多種形式豌拙,如cookie陕悬、uuid、用戶昵稱等等按傅。
2.4 Jointly Embedding Attribute IDs
如何將上面所說的屬性ID加入到物品ID的表示上來呢捉超?結(jié)構(gòu)如下:
這里,定義itemi的ID組IDs(itemi)如下:
這里唯绍,id1(itemi)代表物品本身拼岳,id2(itemi)代表產(chǎn)品ID,id3(itemi)代表店鋪ID等等况芒。那么惜纸,Skip-gram的概率計算變?yōu)槿缦碌姆绞剑?/p>
這里,每一種ID的向量長度可以是不同的,也就是說不通的ID類映射到不同的語義空間中堪簿。而權(quán)重的定義方式如下:
比如,wi1=1,因為itemi是唯一的皮壁,而如果itemi對應(yīng)的產(chǎn)品有10種item的話椭更,那么wi2=1/10。
除了上面計算的item之間的共現(xiàn)概率外蛾魄,我們還希望虑瀑,屬性ID和itemID之間也要滿足一定的關(guān)系,簡單理解就是希望itemID和其對應(yīng)的屬性ID關(guān)系越近越好滴须,于是定義:
其中Mk將item ID對應(yīng)的向量轉(zhuǎn)換成跟每個屬性ID對應(yīng)向量長度一樣的向量舌狗。
結(jié)合兩部分的對數(shù)概率,加入正則項扔水,則我們期望最大化的式子變?yōu)椋?/p>
2.5 Embedding User IDs
用戶ID的Embedding通常通過其交互過的item表示痛侍,比如通過一個RNN模型或者簡單的取平均的方式,這里我們將用戶最近交互過的T個物品對應(yīng)向量的平均值魔市,來代表用戶的Embedding:
這里提到的是用平均值法代表用戶的Embedding主届,后文還提到了一種加權(quán)法,主要根據(jù)用戶的不同行為對T個物品進(jìn)行加權(quán)待德,比如君丁,購買過的物品要比只點擊不購買的物品獲得更高的權(quán)重。
2.6 Model Learning
模型的訓(xùn)練具體參數(shù)如下:
3将宪、應(yīng)用
本節(jié)我們來介紹一下上述方法的四種應(yīng)用绘闷。在應(yīng)用中,上述的框架我們將其定義為一種ITEM2VEC的方法较坛。下文中ITEM2VEC便指代本文提出的新方法印蔗。
3.1 Measuring Items Similarity
在電商領(lǐng)域中,一種簡單卻有效的方式就是推薦給用戶其喜歡的相似物品燎潮。通常使用cosine相似度來計算物品之間的相似度喻鳄。那么應(yīng)用上面的框架,基于得到的物品向量确封,便可以計算其相似度除呵,進(jìn)而推薦相似度最高的N個物品。
我們將其與協(xié)同過濾方法進(jìn)行了對比爪喘,結(jié)果如下:
可以看到颜曾,點擊率超過了協(xié)同過濾模型。
3.2 Transferring from Seen Items to Unseen Items
對于新的物品秉剑,無法得到其向量表示泛豪,這導(dǎo)致了許多推薦系統(tǒng)無法對新物品進(jìn)行處理。但本文提出的方法可以在一定程度上解決冷啟動問題。在模型訓(xùn)練時诡曙,我們添加了約束臀叙,即希望itemID和其對應(yīng)的屬性ID關(guān)系越近越好,如下式:
我們期望上面的式子越接近于1越好价卤,因此:
那么對于新的物品劝萤,其對應(yīng)的屬性ID我們往往是知道的,基于其屬性ID對應(yīng)的向量慎璧,我們便可以近似計算新物品的向量床嫌。上面最后一個地方可以好好理解一下,為什么可以表示成近似胸私?
我的思考如下(不一定正確厌处,望指正):如果我們把括號里面的向量表示成另一個向量e的話,當(dāng)兩個向量長度固定的時候岁疼,什么時候內(nèi)積取得最大值阔涉?是二者同向且共線的時候,那么ei1和e應(yīng)該是線性關(guān)系捷绒,即使e是真實的ei1的n倍的話洒敏,在計算該物品與其他物品的相似度的時候,是不會產(chǎn)生影響的疙驾,因此ei1可近似用e來代替凶伙。
實驗結(jié)果也表明,這種代替方式是十分有效的它碎。下面的表格展示了實驗結(jié)果:
3.3 Transferring across Different Domains
第三個應(yīng)用主要是針對用戶冷啟動函荣,在盒馬平臺上,相對于淘寶平臺用戶數(shù)量還是少很多的扳肛。那么對于盒馬平臺上的新用戶傻挂,我們?nèi)绾芜M(jìn)行推薦呢?過程如下:
這里挖息,用Us表示淘寶的用戶金拒,Ut表示盒馬的用戶,Ui表示既是淘寶又是盒馬的用戶套腹,那么進(jìn)行推薦的過程如下:
1)計算淘寶用戶Us之間的相似度绪抛,相似度的計算基于用戶最近在淘寶交互過的T個商品的向量〉缳鳎可以是簡單的平均幢码,可以是加權(quán)平均。權(quán)重取決于人工的設(shè)定尖飞,比如購買是5症副,點擊是1店雅;
2)基于計算的用戶相似度,對Ui中的用戶進(jìn)行k-均值聚類贞铣,這里聚成1000個類別闹啦;
3)對于每個類別,選擇N個最受歡迎的盒馬上的物品辕坝,作為候選集亥揖;
4)對于盒馬上的一個新用戶,如果它在淘寶上有交互記錄圣勒,那么就取得他在淘寶上對應(yīng)的用戶向量,并計算該向量所屬的類別摧扇;
5)基于得到的類別圣贸,將經(jīng)過篩選和排序后的該類別的候選集中物品中推薦給用戶。
我們對比了三種不同策略的PPM(Pay-Per-Impression)值扛稽,三種策略為:
1)推薦給新用戶最熱門的物品吁峻,該組為Base
2)基于簡單平均的方式計算用戶向量
3)基于加權(quán)平均的方式計算用戶向量
實驗結(jié)果表明,采用簡單平均的方式在张,PPM提升71.4%用含,采用加權(quán)平均的方式,PPM提升141.8%帮匾。
3.4 Transferring across Different Tasks
這里啄骇,我們主要對每個店鋪第二天每個30分鐘的配送需求進(jìn)行預(yù)測,這里有三種不同的輸入:
1)僅使用過去7天每三十分鐘的店鋪配送量作為輸入
2)使用使用過去7天每三十分鐘的店鋪配送量作為輸入 + 店鋪ID的one-hot encoding
3)使用使用過去7天每三十分鐘的店鋪配送量作為輸入 + 店鋪ID對應(yīng)的向量瘟斜。
輸入經(jīng)過全聯(lián)接神經(jīng)網(wǎng)絡(luò)得到配送需求的預(yù)測值缸夹,并通過RMAE指標(biāo)來計算誤差,結(jié)果如下:
4螺句、總結(jié)
本文介紹了一種處理ID類特征的方式虽惭,該方式基于Skip-Gram方法,并考慮了多種不同ID類特征之間的聯(lián)系蛇尚。本文介紹了該方法的詳細(xì)過程芽唇,以及在盒馬app上的具體應(yīng)用,具有一定的參考價值取劫。