用戶出行需求預(yù)測(cè)
一、背景與挑戰(zhàn)
1、背景介紹
在飛豬 APP 端、支付寶或者淘寶端,我們用到的交通相關(guān)的業(yè)務(wù)主要有三個(gè):機(jī)票、火車票和汽車票。這里以機(jī)票為例,來展示一下各個(gè)子場(chǎng)景:
- 入口模塊:主要為用戶進(jìn)行 TOP1 的需求預(yù)測(cè),也就是 TOP1 推薦,讓用戶點(diǎn)進(jìn)到各個(gè)子場(chǎng)景當(dāng)中,起到一個(gè)引流的作用。
- 模糊搜索:主要為用戶填上一個(gè)目的地、出發(fā)地以及一個(gè)時(shí)間段,在未來的某個(gè)時(shí)間段,他們可能會(huì)去哪里。
- 低價(jià)模塊:主要為用戶去推薦,或者預(yù)測(cè),用戶會(huì)對(duì)哪些 OD 感興趣,因?yàn)檫@些是比較便宜的,有可能命中用戶的心智。
- 瀑布流模塊 & Listing模塊:主要為了提升用戶的瀏覽深度,給用戶種草,激發(fā)用戶出行。
2、特點(diǎn)與挑戰(zhàn)
交通業(yè)務(wù)場(chǎng)景與傳統(tǒng)的電商推薦是不一樣的,因?yàn)榻煌眯袌?chǎng)景,有很大的場(chǎng)景特色。具體而言,用戶出行周期主要分為四個(gè)階段:
- 激發(fā)需求,用戶為什么想要出去。如熱門城市,或者節(jié)假日,如春節(jié),國慶等固定的出行需求,或者當(dāng)用戶發(fā)現(xiàn)一個(gè)好的地方,想去出行。這一階段,定義為種草,主要是平臺(tái)去激發(fā)用戶的出行需求。
- 行前階段,用戶準(zhǔn)備去哪里玩,需要做的一些準(zhǔn)備工作。比如訂哪個(gè)酒店,交通方式是什么,用特價(jià)機(jī)票還是火車票,還有相應(yīng)的門票等,這是行前階段。
- 行中階段,主要捕獲用戶的心智在于當(dāng)前所在的地方,周邊有沒有好玩的,返回或者下一個(gè)目標(biāo)交通如何到達(dá),或者是門票如何購買。
- 行程之后,用戶出行之后是反饋,然后再循環(huán)。
在用戶出行周期中,主要面臨四個(gè)挑戰(zhàn):
決策長(zhǎng)周期性。在傳統(tǒng)電商平臺(tái),用戶每個(gè)月或者每周都會(huì)使用淘寶或者京東App進(jìn)行購物,但是旅游的決策周期非常長(zhǎng),一年可能也就會(huì)出行幾次,每?jī)蓚€(gè)月出行一次,或者一個(gè)月出行一次。
行為稀疏性。同上,電商App的用戶行為就比較密集,但是在旅行場(chǎng)景,尤其是疫情期間,可能一年出行兩次,用戶的行為就比較稀疏。
行為時(shí)序性。其實(shí)是場(chǎng)景的優(yōu)勢(shì),如果用戶出行,先通過交通工具到一個(gè)地方,然后訂酒店住宿,再乘坐交通工具到另一地方,用戶先做什么后做什么,有明顯的邏輯性。如何充分利用出行規(guī)律中的邏輯性是一個(gè)難點(diǎn)。
時(shí)空關(guān)聯(lián)性。假設(shè)用戶22 年的春節(jié)回了老家,那23 年的春節(jié)大概率也會(huì)回老家,這個(gè)時(shí)空關(guān)聯(lián)性就比較強(qiáng)。如何捕捉時(shí)空關(guān)聯(lián)性,也是要解決的一個(gè)問題。
定位挑戰(zhàn)之后,業(yè)務(wù)的目標(biāo)可以拆分為用戶側(cè)和商品側(cè)。利用用戶側(cè)用戶的基本屬性、社交關(guān)系和旅行狀態(tài)和商品側(cè)做匹配,匹配目前主要是關(guān)注三個(gè)方面:
- 需求,用算法預(yù)測(cè)用戶去哪里,或者預(yù)測(cè)用戶下個(gè)階段會(huì)去哪里。
- 效率,首頁推薦要比用戶搜索得到體感更好,減少了用戶看到感興趣OD的時(shí)間。
- 心智,不同的用戶,有不同的心智和想法。在出行中,如何捕捉到不同用戶的不同心智,也就是用戶的潛在心理與需求,也是一個(gè)難點(diǎn)。
針對(duì)以上三個(gè)方面,接下來主要講解整體的算法優(yōu)化歷程。
二、算法優(yōu)化歷程
1、架構(gòu)
用戶進(jìn)入到一個(gè)飛豬推薦場(chǎng)景,會(huì)觸發(fā)個(gè)性化。我們的實(shí)時(shí)用戶中心、實(shí)時(shí)特征中心和交通信息池會(huì)根據(jù)這里面的信息去對(duì)該用戶進(jìn)行一個(gè)用戶畫像。用戶畫像主要包括用戶的一些基礎(chǔ)信息,以及用戶的一些實(shí)時(shí)的或長(zhǎng)期的、短期的歷史行為信息。構(gòu)建完用戶畫像之后,我們會(huì)利用集團(tuán)的一些平臺(tái),如 iGraph、FPP、Summary、RTP等平臺(tái),來提供支持,去進(jìn)行召回、 OD 信息完善和排序。
推薦預(yù)測(cè)算法整體上分為召回和排序兩個(gè)階段:
- 召回,主要有熱門目的地、熱門航向、Swing 用戶的長(zhǎng)期需求、重定向以及用戶搜索。
- 排序,目前線上模型主要支持單任務(wù)學(xué)習(xí)模型和多任務(wù)學(xué)習(xí)模型。
- 單任務(wù)學(xué)習(xí),使用特征融合或特征交叉的AutoInt 或者 WDL 模型。其中,用戶歷史點(diǎn)擊行為序列的模型,主要是采用的 DIN 模型。
- 多任務(wù)學(xué)習(xí)模型,包括 ESMM、MMOE、PLE等模型。
整體來說,第一步是考慮特征交叉,再去考慮特征融合或者序列建模助力機(jī)制。圖中的ODNET論文是我們?cè)?2年發(fā)的基于多任務(wù)學(xué)習(xí)的一篇論文,大家有興趣可以看一下。
接下來分別具體介紹召回和排序這兩個(gè)階段的優(yōu)化工作。
2、召回
先來看線上的情況。
- 用戶A:西安—>重慶(黑色線連接)
他有一張西安到重慶的機(jī)票,如果利用傳統(tǒng)的Swing算法計(jì)算相似度,會(huì)給用戶推薦 西安—>成都,鄭州—>重慶的機(jī)票。這是不符合常理的,通過撈日志,也會(huì)發(fā)現(xiàn)這些用戶就沒有點(diǎn)擊。通過分析也可以知道,因?yàn)橛脩粢呀?jīng)有一張西安到重慶的票了,再給他推相似的行程是沒有意義的。用戶接下可能會(huì)點(diǎn)的是重慶—>成都或者成都—>西藏的票。以上可以顯示出來,當(dāng)一個(gè)用戶在旅行的行中,其行為具有明顯的連續(xù)性。而如果平臺(tái)沒有感知到用戶它已經(jīng)在行中了,使用推薦算法預(yù)測(cè)的就不準(zhǔn)確。
- 用戶B & C:北京—>杭州
如果使用傳統(tǒng)推薦算法召回,得到的是北京—>蘇州、天津—>杭州,因?yàn)楸本┖吞旖虮容^近,杭州和蘇州也比較近,而且城市相似度也比較高,所以此類行程會(huì)被推薦出來,但這也很不對(duì)。存在用戶B點(diǎn)擊的是從杭州—>北京的返程,而用戶C 點(diǎn)的是從杭州—>蘇州,杭州—>上海。為什么兩個(gè)用戶點(diǎn)擊的不一樣呢?通過特征分析可以發(fā)現(xiàn),用戶B來杭州,是為了出差,沒有旅行的心智,所以直接就返程了。而用戶C,從北京到杭州,目的是旅游,所以他下一步可能會(huì)從杭州再去下一個(gè)城市。
以上就是使用傳統(tǒng)Swing召回算法存在的問題。一個(gè)用戶,旅行會(huì)具有明顯的連續(xù)性,就像西安—>重慶—>成都,然后再回西安,存在明顯的連續(xù)性行為。
如何捕獲用戶的出行意圖也是優(yōu)化的一個(gè)方向,首先看一下傳統(tǒng)推薦算法,上圖左側(cè):用戶1,買了一條藍(lán)色的褲子,紅色的鞋,還有一件灰色的衣服,這是用戶 1 的購買行為;用戶2, 也買了一條藍(lán)色的褲子,紅色的鞋,灰色的衣服。
當(dāng)一位新用戶進(jìn)入平臺(tái),買了一條藍(lán)色的褲子,灰色的衣服,當(dāng)我們給用戶推薦鞋的時(shí)候,推薦紅色鞋子似乎是理所應(yīng)當(dāng)?shù)?。因?yàn)橛脩?和2在同時(shí)購買這兩個(gè)物品褲子和衣服的同時(shí),又購買了紅色的鞋子,鞋子肯定和褲子及衣服搭配率比較高,這就是傳統(tǒng)的Swing推薦算法。但在旅行場(chǎng)景,存在場(chǎng)景特色,也就是說用戶不論是旅行、出差還是回家,有很明顯的潛在目的。
針對(duì)于家鄉(xiāng)、景點(diǎn)和公司,我們劃分為八種需求:
- H2S,S2H:從家鄉(xiāng)去一個(gè)景點(diǎn),或者返程
- S2S:從景點(diǎn)去了下一個(gè)景點(diǎn),比如從廈門去了三亞
- W2S,S2W:從景點(diǎn)回工作地,或者從工作地去景點(diǎn)
- W2W:工作地之間的轉(zhuǎn)換
- H2W,W2H:從家到工作地,從工作地回家
如何融合這 8 種需求,具體而言,如上圖右側(cè)的異構(gòu)圖所示:其中對(duì)于用戶1,虛線表示其離開了北京,假設(shè)用戶離開了北京,到達(dá)了上海,然后從上海離開,到達(dá)廈門,最后從廈門離開,到達(dá)了三亞。如何把這種意圖建模進(jìn)去?比較關(guān)注的是用戶的出發(fā)城市,對(duì)用戶而言是什么樣的意圖,出發(fā)城市是家還是公司,到達(dá)城市對(duì)于用戶來說又有怎樣的意義,是景點(diǎn)、家還是公司。
在線上,使用用戶實(shí)時(shí)特征系統(tǒng)去判斷當(dāng)前這個(gè)城市是否為用戶的常駐地、家鄉(xiāng)地、出生地或者熱門景點(diǎn)去判斷。
如圖中右下側(cè)公式紅色部分,新增意圖模塊,其中:β 代表用戶 u 的一個(gè)出行意圖, γ 就代表用戶 v 的一個(gè)出行意圖。如果這兩個(gè)出行意圖能夠命中,η 作為有意義方向加到這里面去。如果它沒有意義,這一項(xiàng)都等于0。針對(duì)于使用算法的一個(gè)改進(jìn),相當(dāng)于再加入一個(gè)用戶出行,出發(fā)意圖和到達(dá)意圖都融合到公式里。
具體的case,假設(shè)線上推的 Trigger D,如果用戶的目的地是上海,分兩路召回,“回答”用戶為什么去上海:
- Travel 旅游去上海,算法召回策略是青島、三亞、昆明、重慶、成都一些比較相似的沿海城市,或者是比較熱門的旅游城市。
- Work 工作去上海,算法會(huì)召回深圳、北京、杭州這些具有高工作代表性的城市。
- 另外,如果是Trigger OD,用戶從鄭州—>上海。為什么從鄭州去上海?
- 如果對(duì)用戶而言,鄭州是家鄉(xiāng)。而對(duì)于上海去,是Work,那算法推薦的應(yīng)該是返程,上?!?gt;鄭州。
- 如果用戶是去這個(gè)兩個(gè)地方旅游的,就會(huì)給用戶保持旅游的推薦的連續(xù)性,從上海—>廈門,或者從上海—>三亞。
上圖下方展示了A/B test的結(jié)果,整體而言,相對(duì)于base,召回效率、uvctr & pvctr 效果都有較大提升。
3、排序
(1)模型1—LSGMNet
在進(jìn)行排序模型的講解之前,還是以線上的case為例,介紹一下我們?yōu)槭裁匆@樣做。
- 行前決策,假設(shè)暑假來了,用戶想著怎么出去玩,首先是沒有任何特定城市的明確需求。比如要考慮去南方城市,或者是華東城市。會(huì)選擇華東哪一個(gè)城市呢?是杭州、蘇州還是上海,還是最后去上海。以上的行前決策行為是非常重要的,決策過程在算法中相當(dāng)于一個(gè)區(qū)域縮減行為,把目的地候選集一步一步地變小,最終得到一個(gè)比較準(zhǔn)確的推薦,如何去建模行前決策是一個(gè)難點(diǎn)。
- 臨近城市,也會(huì)影響用戶的決策。假設(shè)從家里去青島旅游,因?yàn)榍鄭u、威海、蓬蓬萊這三個(gè)城市離得比較近,先去青島,威?;蛘吲钊R,下一個(gè)去哪對(duì)我們來說意義不大。影響我們心智的無非是價(jià)格或是交通的便捷性,這就導(dǎo)致了鄰近城市的推薦會(huì)出現(xiàn)相互的影響性。所以如何建模鄰近城市的相互影響性也是十分必要的。
- 行動(dòng)階段,假設(shè)用戶出發(fā)到了北京,但是最近從北京->重慶,或者從北京—>天津的人特別多,用戶會(huì)不會(huì)受熱門城市的影響,或者會(huì)不會(huì)也想從北京—>天津?
針對(duì)上述三種情況,將分成三個(gè)模塊來進(jìn)行講解。
- 階段性決策多任務(wù)學(xué)習(xí)模塊
這個(gè)模塊主要解決在行前階段考慮去哪個(gè)地方玩的多階段性,比如用戶先去華南,或者先去華東,然后再去上?;蚴呛贾?,最后決定去杭州。建模時(shí)分為三個(gè)子任務(wù):GeoHash2 ,GeoHash2和City 級(jí)別的子任務(wù),最后再融合為 loss 訓(xùn)練。
- 保持 OD 模塊的新穎性和空間依賴性
如果同時(shí)保留這兩種是比較難的,這里主要是考慮全域的長(zhǎng)時(shí)間行為序列,通過把 OD 提取出來,建??臻g圖和熱門城市圖。
a.關(guān)于空間圖,如果兩個(gè)城市在同一個(gè)GeoHash2 里面,因?yàn)镚eoHash2的大小可以跨兩個(gè)省級(jí)別。如果兩個(gè)城市在GeoHash2 里面,就產(chǎn)生一條邊,如果沒有就不會(huì)產(chǎn)生邊,這樣就會(huì)生成一張空間圖。
b.關(guān)于熱門城市圖,主要考慮熱門城市和非熱門城市。關(guān)于熱門城市的定義,是通過把飛豬火車票,機(jī)票還有汽車票或者酒店的售賣情況去計(jì)算售賣量,通過售賣量進(jìn)行規(guī)劃,進(jìn)而計(jì)算熱門城市。同時(shí)也會(huì)將熱門城市按照區(qū)域進(jìn)行劃分,比如按華東、華南等七大區(qū)域塊進(jìn)行劃分。因?yàn)椴煌瑓^(qū)域的人,想去的地方也不太一樣,通過劃分不同區(qū)域內(nèi)的熱門城市和非熱門城市。舉例,華中區(qū)域與華南區(qū)域的熱門城市,會(huì)有 Alpha 產(chǎn)生一條邊,非熱門城市之間會(huì)有 Beta 產(chǎn)生一條邊。
這樣做的目的是為了保證整體的新穎性,可以捕獲一些用戶流量。
建完空間圖和熱門城市圖之后,我們它會(huì)經(jīng)過一兩個(gè)階模塊去提取這些城市的一個(gè)隱備點(diǎn)表征,最終經(jīng)過多頭自注意力機(jī)制將特征表征進(jìn)行融合,輸出Contact 到當(dāng)前 3 個(gè)子任務(wù)上面去。經(jīng)過這 3 個(gè)子任務(wù)之后,再通過一個(gè)多頭自注意力機(jī)制將 3 個(gè)子任務(wù)進(jìn)行交互交叉的學(xué)習(xí)。
- 長(zhǎng)短興趣記憶模型
去捕獲用戶的長(zhǎng)短期興趣,最后進(jìn)行 3 個(gè) loss 的聯(lián)合訓(xùn)練。
在離線,主要采用了兩個(gè)數(shù)據(jù)集:
- Fliggy,飛豬線上收集的 10/01~11/01 將近一個(gè)月的數(shù)據(jù),通過 ACC 的1,5,10,20,和Map值進(jìn)行一個(gè)預(yù)估。
- Fliggy2,第一個(gè)數(shù)據(jù)集進(jìn)行策略過濾,因?yàn)橛脩艟哂邢【啃?,一年可能點(diǎn)不了幾次。過濾策略會(huì)將在一年之內(nèi)點(diǎn)擊或者購買大于 4 次的用戶,作為高質(zhì)量用戶過濾得到。過濾完之后,再進(jìn)行模型的訓(xùn)練。
將利用Fliggy2訓(xùn)練的模型推到線上,進(jìn)行A/B測(cè)試,整體的 pvctr 和 uvctr都有4%左右的提升,上線將近 10 天,整體提升效果比較穩(wěn)定。
(2)模型2—G-PDIN
這里以線下發(fā)現(xiàn)的現(xiàn)象作為引子去講,為什么要這樣做。
首先第一個(gè)用戶,從杭州—>青島,威海,杭州,青島,這是他的行為序列;第二個(gè)用戶,從北京—>重慶、麗江、大理、西藏,去了這些城市。
召回階段的候選集,三亞、北京、杭州、威海、青海、西安和成都。候選集對(duì)兩個(gè)用戶是一樣的。如何從候選集中給兩位用戶進(jìn)行推薦呢?
- 針對(duì)用戶1,要給他推威海、杭州或者三亞。
為什么要給他推威海?因?yàn)橛脩艏热蝗ネ#⑶以谌ネV?,去了青島,存在明顯的時(shí)空周期性。假設(shè)用戶上一年去了青島、威海,今年又去了青島,下個(gè)階段是不是也會(huì)去威海,具有明顯的一個(gè)時(shí)空周期性。
為什么要推杭州?因?yàn)橛脩粢灿锌赡芤党?,從杭州出發(fā),最終返回杭州。
為什么要推三亞?因?yàn)槿齺喓颓鄭u、威海,都是一些比較相似的海島城市。體現(xiàn)出用戶潛在目的是對(duì)沿海城市或者海灘城市比較感興趣。為了保證推薦的公平性或者新穎性,就會(huì)給用戶推薦一些沿?;蛘呤巧碁┏鞘?。
- 針對(duì)用戶2,給他推成都、青海、西安和北京。
為什么要推成都?用戶去過重慶,肯定要給推成都。
為什么要推青海,通過分析用戶行程。重慶、麗江、大理、西藏,這樣的行程明顯屬于川藏線的旅游路線。用戶去了西藏之后,按照大部分人的行為連續(xù)性,該用戶下一站大概率會(huì)去青海,或者直接返回北京,返程行為。
以上就是線上解決的一些case。
下面詳細(xì)講解如何優(yōu)化。
我們基于DIN模型設(shè)計(jì)了 G-PDIN 模型,改善的模塊為右側(cè)模型架構(gòu)圖中紅色的部分,主要包括:局部興趣捕捉模塊、周期興趣捕捉模塊和潛在用戶意圖的捕捉模塊,最后會(huì)和目標(biāo) item 進(jìn)行特征計(jì)算。
接下來詳細(xì)展開介紹這 3個(gè)模塊。
- 注意力單元計(jì)算
傳統(tǒng)的DIN模型會(huì)直接做一個(gè)特征Embedding 相乘再相加的注意力機(jī)制。G-PDIN 不同,是用一個(gè)基于元路徑學(xué)習(xí)的方式。如上圖左側(cè),灰點(diǎn)是用戶,黃點(diǎn)是用戶出發(fā)城市,紫色點(diǎn)為用戶到達(dá)城市,通過建模異構(gòu)圖,并定義一些Mentfast,來捕獲用戶的長(zhǎng)Trigger。
構(gòu)建好圖并定義好元路徑之后,把上文中提到的空間圖和熱門城市圖,也會(huì)經(jīng)過一個(gè) Graph SAGE 進(jìn)行一個(gè)特征提取。特殊提取完之后,就可以得到出發(fā)地城市和到達(dá)地城市的表征信息。通過把這些表征信息做叉乘,就可以計(jì)算出 OD 的相似度。
如圖所示,舉例說明:User1 去了昆明、重慶和成都;User2 去了三亞、青島和廈門。候選集給User1 推薦的大理,因?yàn)榇罄砗屠ッ鳎貞c,成都無論在地理相關(guān)性上,還是在二部圖上,都有很高的相關(guān)性。User2 推薦的是威海和大連,因?yàn)椴蹲接脩羧ト齺?、青島和廈門這些沿海城市,而且推薦的城市離青島比較近。
- 用戶潛在意圖捕捉模型
借鑒了Hinton教授的膠囊網(wǎng)絡(luò),進(jìn)行特征的聚類。把這種思想用到用戶的點(diǎn)擊序列當(dāng)中,每個(gè)用戶的點(diǎn)擊序列,每一個(gè)城市Embedding之后,經(jīng)過CapsuleNet膠囊網(wǎng)絡(luò)+Attention,將這些城市聚為 n 類,代表著用戶是否是歸鄉(xiāng)或者工作旅游。
上文提到的Swing改進(jìn)算法所對(duì)應(yīng)的 8 個(gè)意圖,這里也會(huì)把 8 個(gè)意圖進(jìn)行聚類,再經(jīng)過多頭注意力機(jī)制,進(jìn)行意圖融合,將最終得到的Embedding concat 到其它的表征信息中,進(jìn)行后面的訓(xùn)練。
- 周期性的行為捕捉模塊
借鑒了 CNN 圖像領(lǐng)域的空洞卷積的思想,對(duì)春節(jié)、國慶、中秋等一些節(jié)假日進(jìn)行處理。在數(shù)據(jù)分析時(shí),我們發(fā)現(xiàn)平均每個(gè)用戶的點(diǎn)擊行為不會(huì)超過兩三次,所以把 2 或者 3 做一個(gè)step,進(jìn)行節(jié)點(diǎn)跳躍,對(duì)節(jié)點(diǎn)進(jìn)行信息聚合,再通過多頭注意機(jī)制生成最終的 Emending 表征。通過這種方式去模擬用戶周期新行為捕捉。
這三個(gè)模塊做完之后進(jìn)行 Contact,后面的模式就和 DIN 模型一樣的了。
離線訓(xùn)練,是以 DIN 模型作為基線,在數(shù)據(jù)集上AUC 為0. 8。如果加入圖注意機(jī)制,還有周期性、潛在意圖捕捉模塊,AUC提升到了0. 83,絕對(duì)值提升了 3 個(gè)點(diǎn)左右。線上進(jìn)行了 10 天左右的A/B測(cè)試,整體來看無論在 pvctr 還是uvctr,都有一個(gè)點(diǎn)的提升。
三、思考與總結(jié)
最后,對(duì)過去的工作和未來的工作方向進(jìn)行一個(gè)總結(jié)。
首先是對(duì)近期工作的思考:
- 在召回方面
主要是基于Swing模型開發(fā)了一個(gè) IC (Intention Capture Swing)索引Recall, IC 索引就是去捕捉用戶的潛在意圖。
- 在排序方面
a.基于多任務(wù)學(xué)習(xí),主要是一步一步添加了空間圖,熱門城市圖,不同級(jí)別的子任務(wù)模塊,還有 LSTM 模塊和 GRU 模塊。
b.基于DIN 模型,逐步去添加了一些局部興趣提取,周期性提取,潛在意圖捕捉,預(yù)訓(xùn)練的 GNN模型,去計(jì)算 OD 的相似度,
對(duì)于未來的工作方向,主要會(huì)考慮超長(zhǎng)歷史行為序列層次建模,時(shí)空序列整體建模,以及元學(xué)習(xí)和跨域?qū)W習(xí)。
具體而言,比如三亞/廈門的用戶,在 09 年去了三亞, 20 年去了廈門, 21 年去了三亞, 22 年又去了廈門,那23年更應(yīng)該給該用戶推三亞,因?yàn)橛脩舸嬖诿黠@的周期性,而且用戶序列比較長(zhǎng)。如何建模這種序列,下一步的思考就是把這些序列建模成時(shí)空?qǐng)D,用時(shí)間和空間圖去進(jìn)行一個(gè)抽象建模。
另外,還會(huì)考慮元學(xué)習(xí)和跨域?qū)W習(xí),做冷啟動(dòng)或者其他方面的策略。因?yàn)橛脩舫俗w機(jī)的行為可能比較少,但是乘坐火車/高鐵等場(chǎng)景的行為比較多,可以利用跨域?qū)W習(xí)追蹤做一些冷啟動(dòng)的策略。
四、問答環(huán)節(jié)
Q1:G-PDIN模型是否已經(jīng)發(fā)表論文?
A:論文還未發(fā)表,現(xiàn)在已經(jīng)線上實(shí)踐并離線評(píng)估,效果比較好,后續(xù)可能會(huì)寫一下論文。
Q2:GAT 節(jié)點(diǎn)用了什么特征?
A:GAT模塊特征用得比較少,只用了城市,城市所在GeoHash,是否為熱門城市等,這些基本的屬性特征,沒有用POI 或者維經(jīng)緯度的其它特征。
Q3:推薦熱門航線是否能夠帶來明顯貢獻(xiàn)?
A:這個(gè)是能的。因?yàn)槿藗冊(cè)诼眯星?,大多?shù)是不知道去哪里,會(huì)被小紅書等一些App的城市推薦影響心智。
Q4:請(qǐng)?jiān)敿?xì)展開講講長(zhǎng)序列模型?
A:我們做的主要是去模擬時(shí)空序列,通過對(duì)每一年、每一個(gè)月單獨(dú)進(jìn)行序列建模,然后分層次,像 2022年12個(gè)月 2022就是 1* 12,疊正一個(gè)矩陣,對(duì)矩陣做一個(gè)時(shí)空?qǐng)D的特征抽取。
Q5:出行意圖模型是否有單獨(dú)輸出?
A:沒有,因?yàn)檫@是一個(gè)端到端的交叉網(wǎng)絡(luò),訓(xùn)練時(shí)會(huì)直接輸出Embedding,并把表征連接到用戶的特征信息上。
Q6:時(shí)間信息是怎么用的?
A:如剛才所講的,會(huì)疊成一個(gè)矩陣進(jìn)行特征抽取。目前線上用的是這種方式,引用時(shí)間信息,通過矩陣或矩陣的敞口寬去代表一個(gè)時(shí)間信息。因?yàn)槌鲂行枨箢A(yù)測(cè)和傳統(tǒng)的交通流量預(yù)測(cè)不太一樣,交通流量預(yù)測(cè)每時(shí)每刻都不一樣。但旅游行為數(shù)據(jù)比較稀疏,而且周期比較長(zhǎng),所以以月為單位,比較合理。如果以每秒或者每小時(shí)做切分,不太合理,會(huì)非常稀疏,得到的矩陣基本全都是0。