論文閱讀:Airbnb-Real-time Personalization using Embeddings for Search Real-time Personalization

提綱

  1. 解決的問題
  2. 方法
  3. 實(shí)驗(yàn)
  4. 疑問與啟發(fā)

1.解決的問題

本文要解決兩個(gè)問題:

  • 針對短租市場,大部分的用戶很少會多次預(yù)定同一類型的房間曹宴;房間分時(shí)段的,只能在某段時(shí)間內(nèi)被某一個(gè)用戶預(yù)訂梁钾;大部分用戶預(yù)訂酒店是低頻事件武契,更不用說是在同一個(gè)地方預(yù)訂酒店。
  • 實(shí)時(shí)個(gè)性化

2.方法

作者考慮到用戶在預(yù)訂酒店之前有大量的搜索挡爵、點(diǎn)擊竖般、聯(lián)系商家等行為,可以利用這些信息來構(gòu)建用戶預(yù)訂的房間與候選商品之間的相似關(guān)系茶鹃;還可以根據(jù)這些信息捕捉用戶的興趣涣雕。本文中艰亮,作者對商品做了兩個(gè)層面的embedding:一是每個(gè)商品;二是商品類型以及用戶類型挣郭。

本文提出的方法基于skip-gram的word2vec迄埃,原理并不復(fù)雜。下面將詳細(xì)介紹作者的改進(jìn)之處兑障。

首先對下面可能會出現(xiàn)的變量做一下說明:v_lv'_l表示商品l的輸入輸出向量侄非;m表示上下文窗口大小,c表示上下文;V是所有商品的字典;D_p表示正樣本集合旺垒,D_n表示負(fù)樣本集合彩库。

2.1 listing embedding

作者主要改進(jìn)的地方在于數(shù)據(jù)集的處理上,有兩點(diǎn)global text 和negative samples:

global text
skip-gram model for listing embeddings

如上圖所示先蒋,作者根據(jù)用戶在30s內(nèi)點(diǎn)擊商品的序列當(dāng)做一個(gè)句子骇钦,但是相對原模型,作者做了一點(diǎn)改動:如果在這個(gè)點(diǎn)擊序列中包含用戶最后預(yù)訂的商品竞漾,那么這個(gè)商品的向量會當(dāng)做global context眯搭。其實(shí)就是,在每次窗口滑動的時(shí)候业岁,l_b都會被當(dāng)做上下文中之一鳞仙;在我看來這里有點(diǎn)像doc2vec中doc向量的作用。具體可見公式:

{\arg\max}_{\theta}\sum_{(l,c) \in D_p} {log \frac{1}{1+e^{-v'_cv_l}}} + \sum_{(l,c) \in D_n}{log \frac{1}{1+e^{v'_cv_l}}} + log\frac{1}{1+e^{-v'_{l_b}v_l}}
當(dāng)然笔时,如果序列中沒有預(yù)訂的商品棍好,那上式中沒有最后一項(xiàng)。

negative samples

在原word2vec模型中允耿,負(fù)樣本通過對采樣得到的借笙;但是在租房平臺中,這樣很可能負(fù)樣本集合都是與預(yù)訂商品處于不同的地區(qū)较锡,這樣會導(dǎo)致在同一地區(qū)中商品的相似性會有偏差业稼。

We found that this imbalance leads
to learning sub-optimal within-market similarities.

因此,作者額外從同一地區(qū)的商品中采樣一些負(fù)樣本蚂蕴,因此上式變?yōu)椋?br> {\arg\max}_{\theta}\sum_{(l,c) \in D_p} {log \frac{1}{1+e^{-v'_cv_l}}} + \sum_{(l,c) \in D_n}{log \frac{1}{1+e^{v'_cv_l}}} + log\frac{1}{1+e^{-v'_{l_b}v_l}} + \sum_{(l,m_n) \in D_{m_n}}{log \frac{1}{1+e^{v'_{m_n}v_l}}}

冷啟動

新商品的初始化用同一地區(qū)低散,同一價(jià)格區(qū)間中3個(gè)商品的平均向量。

2.2 user_type & listing_type embeddings

2.1部分用點(diǎn)擊行為代表短期興趣骡楼,更側(cè)重于同一地區(qū)商品之間的相似關(guān)系熔号。但是不同地區(qū)之間也能反映用戶的一些喜。比如鸟整,用戶A在深圳和上海預(yù)訂過酒店跨嘉,現(xiàn)在需要在北京預(yù)訂酒店(假設(shè)用戶沒在北京預(yù)訂過),但是在深圳和上海預(yù)訂過的酒店也可以反映用戶的某些偏好了。因此論文中通過用戶的booking行為代表長期興趣祠乃,構(gòu)建Embedding向量梦重。但是booking序列單個(gè)用戶的行為比較稀疏,無法直接訓(xùn)練亮瓷,一般會先對用戶做聚類再訓(xùn)練琴拧。因此,作者通過對商品類別和用戶類別embedding嘱支,希望能描述跨區(qū)域的相似關(guān)系蚓胸。

在該部分,作者只用了用戶預(yù)訂的序列除师,根據(jù)時(shí)間順序把用戶預(yù)訂過的所有商品當(dāng)做一個(gè)序列沛膳。既然對商品和用戶的類別進(jìn)行embedding,那么首先需要標(biāo)記類別汛聚。作者根據(jù)商品的屬性以不同的值或者范圍來劃分多個(gè)類別锹安,具體可見論文的Table 3和Table 4;可以看到user_type其實(shí)也是基于商品屬性劃分的倚舀。

個(gè)人的一點(diǎn)想法:
這里分類別其實(shí)可以看作是一種聚類或者分桶叹哭,因?yàn)閎ooking的用戶數(shù)據(jù)太少,因此需要先聚類然后再embedding痕貌。其實(shí)論文的Table 3和Table 4就是Airbnb根據(jù)他們的業(yè)務(wù)場景設(shè)計(jì)的一種分桶方式风罩。這種方式對房源embedding來說也值得借鑒。

另外舵稠,為了讓商品類別和用戶類別在同一個(gè)空間維度超升,作者放在同一個(gè)訓(xùn)練集中一起訓(xùn)練。如下圖(暫時(shí)可忽略rejection哺徊,booking)

listing type abd yser type skip-gram model

然后公式變成:

當(dāng)central item為用戶時(shí)室琢,
{\arg\max}_{\theta}\sum_{(u_t,c) \in D_{book}} {log \frac{1}{1+e^{-v'_cv_{u_t}}}} + \sum_{(u_t,c) \in D_neg}{log \frac{1}{1+e^{v'_cv_{u_t}}}}

當(dāng)central item為商品時(shí),
{\arg\max}_{\theta}\sum_{(l_t,c) \in D_{book}} {log \frac{1}{1+e^{-v'_cv_{l_t}}}} + \sum_{(l_t,c) \in D_neg}{log \frac{1}{1+e^{v'_cv_{l_t}}}}

這里有點(diǎn)不理解唉工,我本來覺得將listing_type和user_type放在一起研乒,那么應(yīng)該是混著使用汹忠,相互作為對方的上下文淋硝,但是看目標(biāo)函數(shù)不是這樣的。如果按目標(biāo)函數(shù)宽菜,listing_type和user_type還能訓(xùn)練成同一個(gè)空間嗎谣膳?

3.實(shí)驗(yàn)

3.1 數(shù)據(jù)集

訓(xùn)練listing embedding的數(shù)據(jù)集
  • 大小為80億的點(diǎn)擊序列,來自于所有登錄用戶幾個(gè)月的日志
  • 去掉了用戶停留時(shí)間小于30s的點(diǎn)擊以及長度小于2的點(diǎn)擊序列
  • 在訓(xùn)練集中將booked sessions上采樣5倍
  • d=32, m=5, iter=10
3.2 離線評估
地理信息

通過對房屋向量進(jìn)行聚類铅乡,確認(rèn)來自同一地區(qū)的房源被聚在同一個(gè)簇中继谚。

listing_type和房價(jià)范圍

相同類型的listing以及相同房價(jià)范圍的listing的cosine相似度更高

房屋風(fēng)格和建筑

越相似的listing有著更相似的房屋或者建筑風(fēng)格

rank position of booked listing

通過計(jì)算clicked listing和candidate listings之間的cosine相似度對candidate listings進(jìn)行排序,然后看booked listing的位置阵幸。booked listing的位置越往前花履,說明效果越好芽世。

這里有點(diǎn)不明白,candidate listings包含用戶最終預(yù)訂的listing, 原文中"the most recent clicked listing"指的是最近的那一個(gè)listing嗎诡壁?這個(gè)有時(shí)間范圍嗎济瓢?比如在預(yù)訂前幾天的點(diǎn)擊列表?

4.疑問與啟發(fā)

4.1 疑問

  1. 不同地區(qū)可能某些屬性的范圍不同妹卿,比如價(jià)格旺矾,因此感覺文中用硬區(qū)間來表示不同的類別有些不合理。
  2. 如果wide&deep之類的模型也能學(xué)習(xí)房源向量夺克,那用word2vec模型的好處是什么呢箕宙?只是因?yàn)榭梢蕴崆八愠鱿蛄繂幔?/li>
  3. listing_type和user_type訓(xùn)練時(shí),是分別用不同的計(jì)算方式铺纽,但loss值一起計(jì)算嗎柬帕?

4.2 啟發(fā)

其實(shí)在此之前我也想過用word2vec來生成房源向量,但是沒有想過global text室囊,以及l(fā)isting_type embedding雕崩。

另外,相比Airbnb的短租市場融撞,貝殼找房的場景不同之處有:

  • 購房周期比預(yù)定房間周期要長
  • 在短時(shí)間內(nèi)盼铁,房源不會被出售多次
  • 用戶幾乎沒有booked session,不過或許可能用其他代替尝偎,比如帶看饶火、聯(lián)系經(jīng)紀(jì)人等行為。

一點(diǎn)點(diǎn)題外話:感覺word2vec真的很好用致扯,之前用word2vec根據(jù)用戶的點(diǎn)擊網(wǎng)頁序列做過網(wǎng)頁的相似度肤寝,效果也很不錯(cuò)。而且抖僵,在graph方面鲤看,也有node2vec、link2vec耍群,這些都是應(yīng)用word2vec模型义桂。

相關(guān)資料

1.Real-time Personalization using Embeddings for Search Ranking at Airbnb

2.不一樣的論文解讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蹈垢,隨后出現(xiàn)的幾起案子慷吊,更是在濱河造成了極大的恐慌,老刑警劉巖曹抬,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溉瓶,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)堰酿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門疾宏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人触创,你說我怎么就攤上這事灾锯。” “怎么了嗅榕?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵顺饮,是天一觀的道長。 經(jīng)常有香客問我凌那,道長兼雄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任帽蝶,我火速辦了婚禮赦肋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘励稳。我一直安慰自己佃乘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布驹尼。 她就那樣靜靜地躺著趣避,像睡著了一般。 火紅的嫁衣襯著肌膚如雪新翎。 梳的紋絲不亂的頭發(fā)上程帕,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音地啰,去河邊找鬼愁拭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛亏吝,可吹牛的內(nèi)容都是我干的岭埠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蔚鸥,長吁一口氣:“原來是場噩夢啊……” “哼惜论!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起株茶,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤来涨,失蹤者是張志新(化名)和其女友劉穎图焰,沒想到半個(gè)月后启盛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年僵闯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卧抗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳖粟,死狀恐怖社裆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情向图,我是刑警寧澤泳秀,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站榄攀,受9級特大地震影響嗜傅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜檩赢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一吕嘀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贞瞒,春花似錦偶房、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乒融,卻和暖如春拍冠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背簇抵。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工庆杜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碟摆。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓晃财,卻偏偏與公主長得像,于是被迫代替她去往敵國和親典蜕。 傳聞我的和親對象是個(gè)殘疾皇子断盛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容