丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給汪思穎
發(fā)送

1

不一樣的論文解讀:2018 KDD best paper「Embeddings at Airbnb」

本文作者: 汪思穎 2018-11-19 20:05
導(dǎo)語:并不 fancy,但非常 practicable~

雷鋒網(wǎng) AI 科技評(píng)論按,本文作者吳海波,該文首發(fā)于知乎,雷鋒網(wǎng) AI 科技評(píng)論獲其授權(quán)轉(zhuǎn)載。

Airbnb 的 Real-time Personalization using Embeddings for Search Ranking at Airbnb 一文拿了今年 KDD ADS Track 的最佳論文,和 16 年 Google 的 W&D 類似,并不 fancy,但非常 practicable,值得一讀??上驳氖牵瑩?jù)我所知,國內(nèi)一線團(tuán)隊(duì)的實(shí)踐水平并不比論文中描述的差,而且就是 W&D,國內(nèi)也有團(tuán)隊(duì)在論文沒有出來之前就做出了類似的結(jié)果,可見在推薦這樣的場(chǎng)景,大家在一個(gè)水平線上。希望未來國內(nèi)的公司,也發(fā)一些真正實(shí)用的 paper,不一定非要去發(fā)聽起來 fancy 的。

自從 Word2vec 出來后,迅速應(yīng)用到各個(gè)領(lǐng)域中,夸張一點(diǎn)描述,萬物皆可 embedding。在 NLP 中,一個(gè)困難是如何描述詞,傳統(tǒng)有 one-hot、n-gram 等各種方式,但它們很難表達(dá)詞與詞之間的語義關(guān)系,簡單來講,即詞之間的距離遠(yuǎn)近關(guān)系。我們把每個(gè)詞的 Embedding 向量理解成它在這個(gè)詞表空間的位置,即位置遠(yuǎn)近能描述哪些詞相關(guān),哪些詞不相關(guān)。

對(duì)于互聯(lián)網(wǎng)場(chǎng)景,比如電商、新聞,同樣的,我們很難找到一個(gè)合適表達(dá)讓計(jì)算機(jī)理解這些實(shí)體的含義。傳統(tǒng)的方式一般是給實(shí)體打標(biāo)簽,比如新聞中的娛樂、體育、八卦等等。且不說構(gòu)建一個(gè)高質(zhì)量標(biāo)簽體系的成本,就其實(shí)際效果來講,只能算是乏善可陳。類似 NLP,完全可以將商品本身或新聞本身當(dāng)做一個(gè)需要 embedding 的實(shí)體。當(dāng)我們應(yīng)用 embedding 方案時(shí),一般要面對(duì)下面幾個(gè)問題:

  1. 希望 Embedding 表達(dá)什么,即選擇哪一種方式構(gòu)建語料

  2. 如何讓 Embedding 向量學(xué)到東西

  3. 如何評(píng)估向量的效果

  4. 線上如何使用

下面我們結(jié)合論文的觀點(diǎn)來回答上面問題,水平有限,如有錯(cuò)誤,歡迎指出。

希望 Embedding 表達(dá)什么

前面我們提了 Embedding 向量最終能表達(dá)實(shí)體在某個(gè)空間里面的距離關(guān)系,但并沒有講這個(gè)空間是什么。在 NLP 領(lǐng)域,這個(gè)問題不需要回答,就是語義空間,由現(xiàn)存的各式各樣的文本語料組成。在其他場(chǎng)景中,以電商舉例,我們會(huì)直接對(duì)商品 ID 做 Embedding,其訓(xùn)練的語料來自于用戶的行為日志,故這個(gè)空間是用戶的興趣點(diǎn)組成。行為日志的類型不同,表達(dá)的興趣也不同,比如點(diǎn)擊行為、購買行為,表達(dá)的用戶興趣不同。故商品 Embedding 向量最終的作用,是不同商品在用戶興趣空間中的位置表達(dá)。

很多同學(xué)花很多時(shí)間在嘗試各種 word2vec 的變種,其實(shí)不如花時(shí)間在語料構(gòu)建的細(xì)節(jié)上。首先,語料要多,論文中提到他們用了 800 million search clicks sessions,在我們嘗試 Embedding 的實(shí)踐中,語料至少要過了億級(jí)別才會(huì)發(fā)揮作用。其次,session 的定義很重要。word2vec 在計(jì)算詞向量時(shí)和它 context 關(guān)系非常大,用戶行為日志不像文本語料,存在標(biāo)點(diǎn)符合、段落等標(biāo)識(shí)去區(qū)分詞的上下文。

舉個(gè)例子,假設(shè)我們用用戶的點(diǎn)擊行為當(dāng)做語料,當(dāng)我們拿到一個(gè)用戶的歷史點(diǎn)擊行為時(shí),比如是 list(商品 A,商品 B,商品 C,商品 D),很有可能商品 B 是用戶搜索了連衣裙后點(diǎn)的最后一個(gè)商品,而商品 C 是用戶搜索了手機(jī)后點(diǎn)擊的商品,如果我們不做區(qū)分,模型會(huì)認(rèn)為 B 和 C 處以一個(gè)上下文。

具體的 session 定義要根據(jù)自身的業(yè)務(wù)訴求來,不存在標(biāo)準(zhǔn)答案,比如上面的例子,如果你要做用戶跨興趣點(diǎn)的變換表達(dá),也是可以的,論文中給出了 airbnb 的規(guī)則:

A new session is started whenever there is a time gap of more than 30 minutes between two consecutive user clicks.

值得一提的是,論文中用點(diǎn)擊行為代表短期興趣和 booking 行為代表長期興趣,分別構(gòu)建 Embedding 向量。關(guān)于長短期興趣,業(yè)界討論很多,我的理解是長期興趣更穩(wěn)定,但直接用單個(gè)用戶行為太稀疏了,無法直接訓(xùn)練,一般會(huì)先對(duì)用戶做聚類再訓(xùn)練。

如何讓 Embedding 向量學(xué)到東西

模型細(xì)節(jié)

一般情況下,我們直接用 Word2vec,效果就挺好。論文作者根據(jù) Airbnb 的業(yè)務(wù)特點(diǎn),做了點(diǎn)改造,主要集中在目標(biāo)函數(shù)的細(xì)節(jié)上,比較出彩。先來看一張圖:

不一樣的論文解讀:2018 KDD best paper「Embeddings at Airbnb」

主要 idea 是增加一個(gè) global context,普通的 word2vec 在訓(xùn)練過程中,詞的 context 是隨著窗口滑動(dòng)而變化,這個(gè) global context 是不變的,原文描述如下:

Both are useful from the standpoint of capturing contextual similarity, however booked sessions can be used to adapt the optimization such that at each step we predict not only the neighboring clicked listings but the eventually booked listing as well. This adaptation can be achieved by adding booked listing as global context, such that it will always be predicted no matter if it is within the context window or not

再看下它的公式,更容易理解:

不一樣的論文解讀:2018 KDD best paper「Embeddings at Airbnb」

注意到公式的最后一項(xiàng)和前面兩項(xiàng)的區(qū)別,在累加符號(hào)的下面,沒有變 D 限制。我的理解是,word2vec 的算法畢竟是非監(jiān)督的,而 Airbnb 的業(yè)務(wù)最終是希望用戶 Booking,加入一個(gè)約束,能夠?qū)W(xué)到的 Embedding 向量更好的和業(yè)務(wù)目標(biāo)靠近。后面還有一個(gè)公式,思路是類似的,不再贅述。

這個(gè)思路也可以理解成另一種簡單的多目標(biāo)融合策略,另一篇阿里的論文也值得一讀,提出了完整空間多任務(wù)模型(Entire Space Multi-Task Model,ESMM)來解決。

數(shù)據(jù)稀疏是核心困難

Word2vec 的算法并不神奇,還是依賴實(shí)體出現(xiàn)的頻次,巧婦難為無米之炊,如果實(shí)體本身在語料中出現(xiàn)很少,也很好學(xué)到好的表達(dá)。曾經(jīng)和阿里的同學(xué)聊過一次 Embedding 上線效果分析,認(rèn)為其效果來源于中部商品的表達(dá),并不是大家理解的長尾商品。頭部商品由于數(shù)據(jù)量豐富,類似 i2i 的算法也能學(xué)的不錯(cuò),而尾部由于數(shù)據(jù)太稀疏,一般也學(xué)不好,所以 embedding 技術(shù)要想拿到不錯(cuò)的收益,必須存在一批中部的商品。

論文中也提到,他們會(huì)對(duì) entity 做個(gè)頻次過濾,過濾條件在 5-10 occurrences。有意思的是,以前和頭條的同學(xué)聊過這件事情,他們那邊也是類似這樣的頻次,我們這邊會(huì)大一點(diǎn)。目前沒有做的很細(xì)致,還未深究這個(gè)值的變化對(duì)效果的影響,如果有這方面經(jīng)驗(yàn)的同學(xué),歡迎指出。

另一個(gè)方法,也是非常常見,即對(duì)稀疏的 id 做個(gè)聚類處理,論文提了一個(gè)規(guī)則,但和 Airbnb 的業(yè)務(wù)耦合太深了,其他業(yè)務(wù)很難直接應(yīng)用,但可以借鑒思想。阿里以前提過一種 sixhot 編碼,來緩解這個(gè)問題,不知道效果如何。也可以直接 hash,個(gè)人覺得這個(gè)會(huì)有損,但 tensorflow 的官網(wǎng)教程上,feature columns 部分關(guān)于 Hashed Column 有一段話說是無損的:

At this point, you might rightfully think: "This is crazy!" After all, we are forcing the different input values to a smaller set of categories. This means that two probably unrelated inputs will be mapped to the same category, and consequently mean the same thing to the neural network. The following figure illustrates this dilemma, showing that kitchenware and sports both get assigned to category (hash bucket) 12:

不一樣的論文解讀:2018 KDD best paper「Embeddings at Airbnb」

As with many counterintuitive phenomena in machine learning, it turns out that hashing often works well in practice. That's because hash categories provide the model with some separation. The model can use additional features to further separate kitchenware from sports.

離線如何評(píng)估效果

向量評(píng)估的方式,主要用一些聚類、高維可視化 tnse 之類的方法,論文中描述的思路和我的另一篇文章 Embedding向量召回在蘑菇街的實(shí)踐 比較像。當(dāng) Airbnb 的工具做的比較好,直接實(shí)現(xiàn)了個(gè)系統(tǒng)來幫助評(píng)估。

值得一提的是,論文還提出一種評(píng)估方法,用 embedding 向量做排序,去和真實(shí)的用戶反饋數(shù)據(jù)比較,直接引用 airbnb 知乎官方賬號(hào)描述:

更具體地說,假設(shè)我們獲得了最近點(diǎn)擊的房源和需要排序的房源候選列表,其中包括用戶最終預(yù)訂的房源;通過計(jì)算點(diǎn)擊房源和候選房源在嵌入空間的余弦相似度,我們可以對(duì)候選房源進(jìn)行排序,并觀察最終被預(yù)訂的房源在排序中的位置。

不一樣的論文解讀:2018 KDD best paper「Embeddings at Airbnb」

上圖可以看出,d32 book+neg 的效果最好。

線上如何用

論文中反復(fù)提到的實(shí)時(shí)個(gè)性化并不難,只要支持一個(gè)用戶實(shí)時(shí)行為采集的系統(tǒng),就有很多種方案去實(shí)現(xiàn)實(shí)時(shí)個(gè)性化,最簡單就是將用戶最近的點(diǎn)擊序列中的實(shí)體 Embedding 向量做加權(quán)平均,再和候選集中的實(shí)體做 cosine 距離計(jì)算,用于排序。線上使用的細(xì)節(jié)比較多,論文中比較出彩的點(diǎn)有兩個(gè):

  • 多實(shí)體 embedding 向量空間一致性問題

這是一個(gè)很容易被忽視的問題,當(dāng)需要多個(gè)實(shí)體 embedding 時(shí),要在意是否在一個(gè)空間,否則計(jì)算距離會(huì)變得很奇怪。airbnb 在構(gòu)建 long-term 興趣時(shí),對(duì)用戶和 list 做了聚類,原文如此描述:

To learn user_type and listinд_type embeddings in the same vector space we incorporate the user_type into the booking sessions.

不一樣的論文解讀:2018 KDD best paper「Embeddings at Airbnb」

即直接將二者放在一個(gè)語料里面訓(xùn)練,保證在一個(gè)空間。如此,計(jì)算的 cosine 距離具有實(shí)際的意義。

  • Negative 反饋

無論是點(diǎn)擊行為還是成交行為,都是用戶的 positive 反饋,需要用戶付出較大的成本,而另一種隱式的負(fù)反饋,我們很少用到(主要是噪音太強(qiáng))。當(dāng)前主流的個(gè)性化被人詬病最多的就是相似內(nèi)容扎堆。給用戶推相似內(nèi)容,已經(jīng)是被廣泛驗(yàn)證有效的策略,但我們無法及時(shí)有效的感知到用戶的興趣是否已經(jīng)發(fā)生變化,導(dǎo)致?lián)p壞了用戶體驗(yàn)。因此,負(fù)反饋是一個(gè)很好的思路,airbnb 給出了 skipped listing_ids 的策略。

論文地址:

https://www.kdd.org/kdd2018/accepted-papers/view/real-time-personalization-using-embeddings-for-search-ranking-at-airbnb

(完)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

不一樣的論文解讀:2018 KDD best paper「Embeddings at Airbnb」

分享:
相關(guān)文章

編輯

關(guān)注AI學(xué)術(shù),例如論文
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說