導讀:異地POI推薦旨在為跨城出行的使用者提供推薦服務。而這些使用者通常對目的地區域/城市並不熟悉,並沒有足夠的歷史記錄可以借鑑,因而異地推薦的主要挑戰也是推薦系統中的一個經典問題——冷啟動問題。
直觀上,使用者在異地的行為與使用者個人的偏好和使用者的出行意圖密切有關。而且,使用者的出行意圖複雜多變,也為準確理解異地使用者的出行意圖增加了難度。為此,本文提出了一種出行意圖可感知的異地出行推薦方法。主要內容包括:① 推薦系統中的冷啟動問題解決方案;② 生成模型在推薦系統中的應用;③ 異地POI推薦;④ 神經網路主題模型;⑤ 圖神經網路。
01背景|異地場景POI推薦待解決難點
傳統的 POI 推薦系統不能很好地解決異地推薦問題。原因有:
- 興趣漂移(Interest Drifts):個人的本地偏好不能直接用於異地推薦,因為本地偏好和異地行為之間存在差距;
- 傳統方法中往往會忽略影響異地簽到行為的出行意圖(Travel Intention);
- 不同城市地理等方面存在差異(Geographical Gap)。
針對上述問題,我們整合使用者偏好、興趣漂移和複雜的旅行意圖為一個整體,提出TRAvel- INtention-aware Out-of-town Recommendation框架,簡稱TRAINOR。
相較於傳統的推薦模式,這個方案有以下三點區別:
首先,利用圖神經網路,透過對歷史使用者的本地簽到行為和異地簽到行為進行挖掘,表徵使用者的本地偏好以及異地的空間地理資訊約束;
其次,使用者的個體出行意圖建模為通用出行意圖與使用者個體偏好的聚合,其中通用出行意圖被建模成隱式出行意圖的機率分佈,並利用主題神經網路模型進行實現;
第三,透過多層感知機對本地偏好與異地偏好的遷移進行刻畫,同時,利用矩陣分解對異地POI的表徵進行估計。
最後,透過真實物理世界的跨城出行記錄資料進行實驗,驗證了方法的有效性。而且,該方法所學習到的意圖表徵可以幫助理解和解釋使用者的出行意圖。
02問題分解|模型框架綜述
首先給出問題形式化定義,如下圖所示:
將問題模型的實現如圖分解為以下5部分:
- 本地偏好建模:輸入使用者本地打卡地,為每個訪問過的 POI 分配一個 d 維嵌入。採用 G-GNN 模型和注意力網路對使用者的本地偏好進行編碼和聚合。
- 出行意圖識別:輸入使用者在異地訪問過的POI,利用NTM 模型來識別一般的旅行意圖。透過整合發現的意圖和使用者的本地偏好,採用另一個注意力網路來總結使用者特定的意圖。
- 異地偏好建模:為每個使用者和異地 POI 分配另外兩個 d 維嵌入,並利用 MF 來學習使用者和 POI 的潛在表示。為了模擬 POI 的地理影響,利用 GeoConv 來處理與 POI 捆綁在一起的地理資訊。
- 偏好轉移(本地與異地表徵對映):接收本地偏好嵌入,並透過 MLP 捕捉從本地到異地的非線性關係。
- 模型聯合訓練與推薦:最小化意圖推斷損失、偏好估計損失和偏好轉移損失,以輸出訓練好的推薦器 F。
03技術細節|模型實現
1. 本地偏好模型『Home-town Preference Modeling』
① 構建使用者個人check-in有向圖
取使用者半年的打卡記錄。將使用者本地與異地出行記錄全部都取出,比例通常約為3:2。
- 節點:表示各個簽到POI,通常為10個左右;
- 有向邊:連線相鄰兩個POI,表示使用者打卡次序。
② 使用鄰接矩陣(adjacent matrix)表示
該矩陣由出邊和入邊構成的兩個鄰接分塊矩陣拼接而成。
③ 利用G-GNN獲得本地簽到資訊的表徵,即使用者曾打卡的POI
上圖中, Eq.(1)基於
. 在不同 POI 之間傳遞資訊。
Eqs.(2)至(5),與GRU相似。zv(t)and 為 rv(t)為update和reset gates,
為logistic sigmoid function。
④ 獲得使用者本地偏好的表徵
有時候,一部分特徵對於最後結果的貢獻非常小,甚至近乎零。這些用處不大的特徵,我們希望能夠將其捨棄,以更方便模型做出決策。因而,我們應用注意力機制『Attention Network』篩選出更重要的本地POI。
得到為使用者的Hometown Preference Embedding。
值得注意的是,對Home-town Preference單獨做Loss是沒必要的,因為我們最終目標是做異地推薦,因而我們把Home-town Preference 和Travel Intention做聚合,本部分的loss會體現在Travel Intention Loss中。
2. 使用者出行意圖識別『Travel intention discovery』
① 無監督生成通用出行意圖『Generic Travel Intentions』
我們將通用出行意圖建模成隱式出行意圖的機率分佈,並利用主題神經網路模型進行實現。
- 有K個隱式出行意圖
- 異地POI-意圖的分佈Φ【Out-of-town POI-intention distribution】
- ∀i(1≤i≤K),ti∈Rd表示第i個出行意圖
表示異地 POI 嵌入矩陣
- 使用者意圖分佈θ【User Intention Distribution】
softmax(Fθ(z))
- Fθ為全連線層【Fully Connected Layer】
- 假設z服從標準正態分佈p(Z)=N(0,1)
- 事實上,後面我們並沒有使用p(Z)(隱變數空間的分佈)是正態分佈的假設,而是使用p(Z|X)(後驗分佈)是正態分佈的假設!
- 讓所有的p(Z|X)都向標準正態分佈看齊,可防止噪聲為零,同時保證了模型具有生成能力。如果所有的p(Z|X)都很接近標準正態分佈N(0,1),那麼根據定義
我們就能達到我們的先驗假設:p(Z)是標準正態分佈。
作為編碼器,將詞袋
對映為隱變數z分佈的均值μ和方差σ。
- μ、σ2是由輸入詞袋向量確定的兩個先驗引數;
- Fμ、Fσ是兩個multi-layer perceptron(MLP);Fenc為encoder layer。
- 為了讓所有的
都向N(0,1)看齊,在重構誤差的基礎上中加入額外的loss--近似分佈與資料原分佈的KL散度(Kullback-Leibler divergence)。
- KL loss(目的是讓均值為0,方差為1),事實上就是相當於對encoder的一個正則項。
② 個性化出行意圖識別『Personalized Travel Intention』
為獲得個人化出行意圖,我們採用注意力機制,對之前得到的本地簽到偏好加以利用,來加強得到個性化出行意圖。
圖中Wt∈Rd x d是一個trainable transition matrix。透過擬合用戶的偏好,可以自適應地聚合使用者特定的意圖embedding u(int)。
3. 異地偏好建模『Out-of-town preference modeling』
- GEO因素建模:假定不知道使用者異地簽到記錄,因而不能用簽到來做建模。我們採用POI天然的自帶的地理約束來建模;
- 使用者在異地的POI表徵uo’:利用矩陣分解,補全missing value對異地POI的表徵進行估計。ReLU函式又稱修正線性單元,是一種人工神經網路中常用的啟用函式。ReLU=max(0,x)函式不僅很大程度上解決了梯度消失的問題,還有著非常快的計算速度。
- Score Function:遵循MF的思想,使用者對於POI的分數可以看作是user’s latent embedding和POI的內積,定義使用者 i 在異地POI j 上的score如下: s(i,j)=(uio’)Tvjo’
- 異地偏好Loss:根據 BPR的假設,觀察到的專案應該比未觀察到的專案排名更高,對於每個使用者u,我們隨機選擇使用者訪問過的固定大小的正樣本和使用者未簽到的對應樣本。基於pairwise comparisons,得到異地偏好損失。
4. 偏好遷移『Preference transfer(mapping)』
透過多層感知機對本地偏好與異地偏好的遷移進行刻畫:
- 把本地偏好Home-town Preference和出行意圖Travel Intention對映到異地偏好Out-of-town Preference;
- 繼而用MLP 非線性預測函式,進一步增加loss function
5. 聯合訓練與推薦『Joint training & recommendation』
- 結合intention inference loss, preference loss 和 transfer loss得到
- 進行最最佳化optimization,學得最終recommender。
- 根據估計分數
選擇前 k 個異地 POI 推薦給異地使用者u*。
04實驗驗證|定量與定性分析
1. 定量分析
① 選用三個爬蟲獲得的真實出行記錄,包括2019年7月至12月北京—上海,上海—杭州和廣州—佛山的出行記錄。
② Baseline選用傳統模型方法(TOP,SR-GNN,LA-LDA,EMCDR等),同時透過去掉重要模組(如出行意圖識別模組和地理因素建模)構成參照。
③ 召回率與準確率分析
- 在實際搭建推薦系統時,召回更多的POI,得到的收益更高;
- 在本實驗中,我們認為比起check-in的順序正確,召回足夠多的POI更重要;
- 因而,在precision相當時,我們更關注recall(召回率)。
具體實現Implementations.
對於所有latent representations,令the hidden size=128;在travel intention discovery module中, 令主題數 K =15;在joint training階段, 設定λ1 =λ2 =λ3 =1;我們使用Adam optimizer來訓練,初始學習率為0.001,L2正則化權重為10-5。當評估效能推薦時,使用不同的資料拆分重複測試 5 次,給出平均值。
實驗結果詳情如下圖:
針對Rec@k指標,TRAINOR基本上始終優於其他模型。
而UCF、LA-LDA和BPR-MF的表現相對較差。UCF和BPR-MF基於協同過濾演算法,由於資料稀疏問題,不能直接應用於異地推薦。而 LA-LDA 雖考慮了地域差異,但在差異較大時(例如跨城市),仍然不足以對個人興趣漂移進行建模,這使得它們在異地推薦方面的效果不佳。
TOP 並不是一種個性化的推薦方法,它僅根據歷史記錄中 POI 的流行度進行推薦,但其效能卻比一些個性化方法要好得多。可能的原因有異地出行行為通常以旅遊為主,因而一些熱門景點(如著名地標)是異地使用者經常光顧的地方。
GRU4Rec 和 SR-GNN 是兩個session-based的深度推薦系統,分別考慮了順序和結構資訊。然而,他們忽略了使用者的興趣漂移和本地和異地之間的差異。
EMCDR 是一種領先業界的跨域推薦框架。由於其將特徵從源域到目標域的非線性對映的能力,EMCDR 在進行異地推薦時表現出了幾乎最好的排序效能。一個可能的原因是,我們的TRAINOR框架,與EMCDR相比,本地偏好建模中沒有采用負取樣策略,這可能導致本地區一些負例的排名更高,並可能對排名表現MAP產生負面影響。然而,TRAINOR在召回率方面優於EMCDR,這表明TRAINOR在檢索相關異地POI方面更有效,並且在實踐中更有益於異地推薦。
對於TRAINOR的變體,我們有以下發現:
- 考慮Rec@k指標,TRAINOR 的表現優於 TRAINOR-I,表明了考慮使用者異地意圖的意義。但當使用旅行意圖識別模組時,MAP 略有下降。原因可能是當模型試圖將每個推薦條目放在正確的排名中時,意圖可能會成為干擾。
- 透過比較TRAINOR-IC和TRAINOR-I之間的結果,GeoConv的去除降低了所有指標的效能。然而,當旅行意圖識別模組存在時,GeoConv 對效能幾乎沒有貢獻,因為 GeoConv 可能導致過擬合。
2. 定性分析
定性分析用於判斷推薦效果是否有可解釋性,是否得到有意義的,具有可解釋性的結果。可解釋性(可增加AI可信度)越高,人們越能相信推薦系統的結果是有效的,魯棒的。
- 本實驗中,我們從同一資料集中選取三個使用者,從表格中我們可以推斷出,u1 去上海度假,u2為購物,u3為商務。根據使用者意圖的推斷(見右圖),我們可以清楚地看出 u1 和 u2 之間的差異很小,而 u3 和 u1/u2 之間的差異很大。
- 代表性 POI 的意圖分佈也是可區分的(見左圖)。例如,景區和購物中心的分佈對意圖#2、#4、#8等的權重更大,而功能設施(如酒店和企業)的分佈對意圖#5、#6、#10、#14 等的權重更大。因此,我們可以得出結論,前一組意圖更與休閒相關,而後者更與功能性設施相關。
05問答環節
Q:構建Check-in graph時,節點通常有多少?
Ans:平均每個使用者節點數為10個左右,graph規模並不大。
Q:Check-in graph取多長時間的check-in記錄構建?
Ans:半年時間。並且將使用者本地與異地記錄都取出來了,但大部分使用者本地的簽到行為要多於異地,比例約為3:2。
Q:Check-in graph是由每個使用者所有簽到行為構成的嗎?
Ans:當用戶下一次POI和此次不在同一個城市時,我們會擷取前面的check-in記錄作為本地簽到記錄。我們採取這種方法,自適應地動態地擷取使用者本地簽到記錄,因而每個使用者的check-in記錄長短不一,起止時間也不一樣。
Q:本地出行記錄是否會先去除常去的地方?
Ans:沒有這個限制。
Q:本地偏好模型用G-GNN如何訓練?
Ans:訊息傳遞的更新機制寫好,嵌入到端到端傳統模型,和訓練傳統模型一樣進行最佳化,得到最佳化模型。值得注意的是,對Home-town Preference單獨做Loss是沒必要的,因為我們最終目標是做異地推薦,因而我們把Home-town Preference 和Travel Intention做聚合,本部分的loss會體現在Travel Intention Loss中。
Q:G-GNN有什麼最佳化處理方式?
Ans:將Home-town Preference作為輸入的因素放到其他loss(例如:Travel Intention Discovery Loss)裡,composite loss function透過端到端的方式就可以對GGNN的引數進行最佳化。
Q:在Home-town Preference Model中是否有嘗試GEO因素的建模?
Ans:曾私下做實驗嘗試,結果表明對於本地簽到,地理因素上的約束加進來意義不大。考慮Check-in behavior更有效,因而去掉了地理因素。模型足夠複雜,不想加進更多的引數。
Q:Transfer Loss的目的具體是什麼?
Ans:Transfer Loss可實現較好的推薦,解決本地異地存在差異的問題。
異地本地gap需要彌合:由Home-town Preference估計到使用者在異地的偏好,本地與異地偏好間存在gap,行為是有興趣漂移的。例如,下面實驗提及的EMCDR,即是沒有對本地異地做modeling的推薦系統,作為簡化版系統,結果非常好,甚至MAP比我們的模型都要好,因而Transfer Loss很有用。
Q:冷啟動問題的解決方案和業內相比有哪些優勢?
Ans:異地推薦(典型的,冷啟動問題比較突出的應用之一)問題之前都是採用LA-LDA等傳統方法,沒有對Travel Intention做很好的建模;我們考慮的因素是最全的,Framework考慮的因素最多。
還沒有驗證是否通用於其他的cross-domain推薦,目前著重於使用者異地出行。
06References
1. Xin, Haoran & Lu, Xinjiang & Xu, Tong & Liu, Hao & Gu, Jingjing & Dou, Dejing & Xiong, Hui. (2021). Out-of-Town Recommendation with Travel Intention Modeling.
2. 全球人工智慧頂會AAAI2021部分收錄論文解析:
https://m.gmw.cn/baijia/2021-02/03/34596357.html
3. Im, D. J. , Ahn, S. , Memisevic, R. , & Bengio, Y. . Auto-Encoding Variational Bayes.
4. 蘇劍林. (Mar. 18, 2018). 《變分自編碼器(一):原來是這麼一回事 》[Blog post]. Retrieved from https://www.spaces.ac.cn/archives/5253
5. Li, Y. , Tarlow, D. , Brockschmidt, M. , & Zemel, R. . (2015). Gated graph sequence neural networks. Computer Science.
今天的分享就到這裡,謝謝大家。
分享嘉賓:
分享嘉賓:路新江博士 百度 資深研發工程師
編輯整理:唐瑄翼 香港中文大學(深圳)
出品平臺:DataFunTalk