KDD 2019 | 使用神经网络为A*搜索算法赋能:以个性化路径推荐为例
「論文訪談間」是由 PaperWeekly 和中國中文信息學(xué)會社會媒體處理專委會(SMP)聯(lián)合發(fā)起的論文報道欄目,旨在讓國內(nèi)優(yōu)質(zhì)論文得到更多關(guān)注和認(rèn)可。
?
研究動機(jī)
A* 算法因?yàn)樗母咝Ш蜏?zhǔn)確而被廣泛應(yīng)用于路徑發(fā)現(xiàn)和圖遍歷等任務(wù)上。斯坦福的 Peter Hart, Nils Nilsson and Bertram Raphael(Nils Nilsson 老先生于 2019 年 4 月 23 日去世,哀悼)于 1968 年首次提出了 A* 算法。A* 算法在尋找最優(yōu)路徑的過程中,使用 f(n) 來評價所有候選節(jié)點(diǎn)的得分,每次要擴(kuò)展結(jié)點(diǎn)的時候都會選擇那個 f(n) 最小的節(jié)點(diǎn):
??
g(n) 是從出發(fā)點(diǎn)到 n 節(jié)點(diǎn)的費(fèi)用值,而 h(n) 是一個被估計的從 n 到終點(diǎn)的費(fèi)用值。不同于 Dijkstra 算法,A* 算法需要多考慮一個啟發(fā)值 h(n),通過啟發(fā)值的幫助,A* 算法可以大大減小搜索空間。
此圖引用于:https://www.redblobgames.com/pathfinding/a-star/introduction.html
上圖是三種搜索算法的對比,Dijkstra 算法只使用 g(n), 雖然可以找到最優(yōu)路徑,但是搜索空間巨大。貪心的最佳優(yōu)先(Greedy Best-First)算法只使用 h(n),雖然減小了搜索空間,但是不能保證得到最優(yōu)的結(jié)果。而 A* 算法可以保證得到最優(yōu)路徑,并且大大減小了搜索空間。
傳統(tǒng)的 A* 算法使用一些比較簡單的指標(biāo)作為 g(n) 和 h(n),比如歐氏距離,用以解決最短路徑等比較簡單的問題,因此對于一些復(fù)雜的非線性問題的搜索求解并不適用。
在智能交通領(lǐng)域,一個非常典型的例子就是個性化的路徑推薦。傳統(tǒng)的 A* 算法對于“最短路徑”、“最快路徑”的搜索非常有效,但是對于“最喜歡的路徑”搜索就很難發(fā)揮作用。
因?yàn)橛脩舻钠檬且粋€非常復(fù)雜的非線性過程,無法用簡單的歐氏距離進(jìn)行度量。面對這樣的問題,我們提出使用深度神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí) A* 算法的 g(n) 和 h(n) 值,以此來幫助 A* 算法解決更為復(fù)雜的問題。
研究思路
我們以個性化出行路徑推薦為例子介紹神經(jīng)網(wǎng)絡(luò)是怎樣與 A* 算法結(jié)合的。出行路徑推薦是一個和我們平時生活息息相關(guān)的問題,也一直是各大地圖應(yīng)用的核心算法之一。一個好的路徑推薦算法,可以提升人們的出行體驗(yàn),為經(jīng)濟(jì)社會的發(fā)展帶來價值。
出行路徑推薦受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,最初的路徑規(guī)劃算法討論的是怎樣在路網(wǎng)上找到一條最短路徑。隨著時代的發(fā)展,基于歷史軌跡數(shù)據(jù)的個性化的路徑推薦任務(wù)也開始受到研究者們的關(guān)注。
過去的路徑推薦方案大多以 A* 搜索為框架不同的費(fèi)用函數(shù)對應(yīng)于不同的搜索任務(wù),比如說以移動距離為費(fèi)用,那么搜索的便是最短路徑,以用時為費(fèi)用,那么搜索的便是最快路徑,以用戶的偏好為費(fèi)用,那么便是個性化的路徑推薦。
在現(xiàn)有工作中,大家往往以簡單的統(tǒng)計或者淺層的模型來作為搜索的費(fèi)用函數(shù),但是用戶的喜好往往是難以被如此簡單地建模的,因此,我們提出用神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí) A* 搜索算法中的費(fèi)用函數(shù),以此為基礎(chǔ)結(jié)合 A* 搜索算法來完成個性化的路徑推薦。本文 Empowering A ? Search Algorithms with Neural Networks for Personalized Route Recommendation?已經(jīng)被 KDD 2019 收錄,可以通過 https://arxiv.org/pdf/1907.08489.pdf 下載。
模型介紹
任務(wù)定義
路徑推薦任務(wù)中,我們的模型接受一個歷史軌跡數(shù)據(jù)集 D,起點(diǎn) ls,終點(diǎn) ld,出發(fā)時間 b 和用戶 u 作為輸入,然后基于輸入推薦個性化的軌跡?。形式化地來講,我們需要找到一條條件概率最高的最優(yōu)路徑:
基于A*算法的解決方案
首先我們討論傳統(tǒng) A* 算法在路徑推薦上的應(yīng)用。A* 算法是 Dijkstra 算法的擴(kuò)展,在尋找最優(yōu)路徑的過程中,它每次擴(kuò)展一個結(jié)點(diǎn) n,然后使用 f(n) 來評價這個節(jié)點(diǎn)的得分:
??
g(n) 是從出發(fā)點(diǎn)到 n 節(jié)點(diǎn)的費(fèi)用值,而 h(n) 是一個被估計的從 n 到終點(diǎn)的費(fèi)用值。我們算法的關(guān)鍵部分就是 h(n) 的設(shè)計,它會大大影響算法的效果和性能。
前面已經(jīng)說過了,我們的任務(wù)目標(biāo)是最大化 Pr(p|q,u,D),它等同于最小化負(fù)對數(shù) -logPr(p|q,u,D)。給出一條可能的路徑 p:ls→l1→l2…→lm→ld,我們可以將路徑的概率分解為各個項之和。
因此,對于一條路徑 ls→l1…→li-1,我們可以計算已知費(fèi)用 g(ls…→li):
為了方便計算條件轉(zhuǎn)移概率,在傳統(tǒng) A* 算法費(fèi)用函數(shù)的計算中,一階馬爾可夫假設(shè)經(jīng)常被使用,因此我們有 Pr(lk+1|ls→lk,q,u)=Pr(lk+1|lk,q,u)。然而在個性化路徑推薦的任務(wù)中,這樣簡單的假設(shè)并不能很好地建模用戶對于每個位置的選擇,因此我們需要引入深度學(xué)習(xí)來建模用戶和位置之間的復(fù)雜依賴關(guān)系。
NASR模型結(jié)構(gòu)
本文的網(wǎng)絡(luò)主要分為兩部分:g() 和 h(),分別對應(yīng)于 A* 搜索算法中的兩個 Cost:g 和 h。g() 學(xué)習(xí)的是從起點(diǎn)到候選位置的費(fèi)用,我們稱之為可觀測費(fèi)用,而 h() 學(xué)習(xí)的是從候選位置到終點(diǎn)的費(fèi)用,我們稱之為估計費(fèi)用。在設(shè)計這兩個網(wǎng)絡(luò)的時候,需要滿足一些要求:
1. 如何衡量已知路徑的費(fèi)用:怎樣捕獲用戶的個性化偏好,時空特征以及路網(wǎng)限制呢? 用戶的每一次的選擇都會帶來費(fèi)用,這個費(fèi)用跟用戶的歷史信息有關(guān),跟時空信息也有關(guān),并且還受到了路網(wǎng)鄰接關(guān)系的影響。
2. 如何去衡量未來的費(fèi)用:給定候選位置和終點(diǎn),如何衡量這兩個位置之間的費(fèi)用呢? ?類似于衡量路網(wǎng)上兩個點(diǎn)的距離,在考慮用戶偏好的前提下,怎樣建模路網(wǎng)上兩個位置之間潛在的費(fèi)用是一個很重要的問題。
特征嵌入:
首先我們介紹多源輸入信息的嵌入。通過詞嵌入技術(shù),我們將離散的用戶信息嵌入到一個低維向量中,用 Vu 來表示。對于每一個位置,我們也使用相似的方法將這個位置嵌入到一個低維向量中,用 Vl 來表示。另外,我們又引入了時間信息,用 Vdi(b)?來表示天的向量,Vhi(b)?來表示小時的向量。最后這四者會被拼接起來成為循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入:
g網(wǎng)絡(luò)的設(shè)計:
我們采用 GRU(門控循環(huán)單元)來建模軌跡:
?是 GRU 在第i時刻的隱狀態(tài),它包含了該用戶當(dāng)前的移動狀態(tài),?是第 i 時刻的上下文向量。在引入了 GRU 之后,我們進(jìn)一步引入了內(nèi)部注意力機(jī)制來改進(jìn)建模效果:
在這里是通過內(nèi)部注意力機(jī)制改進(jìn)了之后的狀態(tài)向量,att()?是注意力函數(shù):
上式中 w1,W1,W2?是需要學(xué)習(xí)的參數(shù)。在內(nèi)部注意力機(jī)制的基礎(chǔ)上,我們又進(jìn)一步提出了外部注意力機(jī)制,將用戶的歷史軌跡數(shù)據(jù)也考慮了進(jìn)來:
上式中??是用戶 u 的歷史軌跡集合。在實(shí)現(xiàn)了兩個注意力機(jī)制之后,我們開始以下式計算可觀察的花費(fèi)函數(shù),在這個式子中,我們考慮了:
上式中為 li-1?的鄰居集合,在上式的基礎(chǔ)上我們可以用負(fù)對數(shù)和來計算 g 函數(shù)。
最后我們采用交叉熵來進(jìn)行優(yōu)化:
h網(wǎng)絡(luò)的設(shè)計:
對于 h 函數(shù),我們使用圖神經(jīng)網(wǎng)絡(luò)來建模。
上式中是一個矩陣,這個矩陣每一行都是一個節(jié)點(diǎn)的表示, z 是第 z 次迭代。接著,在圖神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,我們引入了圖注意力神經(jīng)網(wǎng)絡(luò),并在計算注意力機(jī)制的時候考慮了移動的狀態(tài)信息和位置之間的距離信息。
在這里??和 w2?都是可學(xué)習(xí)的參數(shù)。既然我們?nèi)谌肓诉@么多信息,因此我們使用了多頭的注意力機(jī)制來穩(wěn)定訓(xùn)練過程。
我們將 A 個參數(shù)不同的注意力機(jī)制計算的結(jié)果拼接起來,是不同的注意力機(jī)制的參數(shù)。最后,我們使用了一個多層感知機(jī) MLP() 來融合所有信息。
是 GRU 輸出的狀態(tài)向量,是 li 的表示向量,是 ld?的表示向量,是 li?和 ld?之間距離的表示向量。最后,為了對 h() 網(wǎng)絡(luò)進(jìn)行訓(xùn)練,我們采用了時間差分的方法。首先我們將用戶運(yùn)動的過程定義為一個馬爾可夫決策過程,對于每一次位置的轉(zhuǎn)移,都會得到一個獎勵,我們將獎勵定義為如下形式。
因此,h() 函數(shù)可以被以下式子近似,這個式子代表了未來獎勵之和:
上式中,γ?是折扣因子,T 是到達(dá)終點(diǎn)時的時間步驟數(shù),距離當(dāng)前時間點(diǎn)越遠(yuǎn),那么這個獎勵就需要被打的折扣越多。進(jìn)一步,通過時間差分法,我們可以將時間差分學(xué)習(xí)的標(biāo)簽寫成如下形式。
預(yù)測誤差可以被寫成如下形式:
最終對于所有用戶,所有軌跡的損失函數(shù)可以被定義成如下形式:
實(shí)驗(yàn)結(jié)果
表 2 是模型的性能,對比的都是經(jīng)典或者最新的算法,可以看出本文的模型表現(xiàn)最佳。圖 2 展示了注意力機(jī)制,圖注意力神經(jīng)網(wǎng)絡(luò)以及時序差分學(xué)習(xí)對于性能的幫助。
圖 3 展示了圖注意力機(jī)制的有效性,我們可視化了路網(wǎng)上每個節(jié)點(diǎn)與起點(diǎn)和終點(diǎn)的相似度之和,可以發(fā)現(xiàn),通過圖注意力機(jī)制,我們的模型可以更多地關(guān)注那些可能經(jīng)過的路網(wǎng)上的節(jié)點(diǎn)。而圖 4 則展示了我們 h 網(wǎng)絡(luò)的有效性,通過 h 網(wǎng)絡(luò),算法的搜索空間被大大減小了,避免了很多無謂的搜索。
總結(jié)
作者提出使用神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí) A* 搜索中的費(fèi)用函數(shù),并專門設(shè)計了兩個網(wǎng)絡(luò)。這兩個網(wǎng)絡(luò)建模了用戶的偏好并充分利用了路網(wǎng)的結(jié)構(gòu)信息,取得了非常好的效果。
按照本文的思路,未來可以嘗試設(shè)計不同的神經(jīng)網(wǎng)絡(luò)來適應(yīng)不同的路徑規(guī)劃任務(wù),從而滿足用戶不同的需求。更多關(guān)于大數(shù)據(jù)與城市計算的論文以及相關(guān)代碼數(shù)據(jù)請訪問:https://www.bigscity.com/。
關(guān)于作者
王靜遠(yuǎn), 北京航空航天大學(xué)計算機(jī)學(xué)院副教授、博士生導(dǎo)師 (https://www.bigscity.com)。他2011年博士畢業(yè)于清華大學(xué)計算機(jī)系,近年來在頂級期刊和會議上發(fā)表了30多篇論文,擔(dān)任了多個重要的國際會議或者期刊評審,并獲得多項中國和美國專利。他的研究興趣包括人工智能,數(shù)據(jù)挖掘和城市計算。
吳寧,北京航空航天大學(xué)計算機(jī)學(xué)院碩士研究生。目前的研究方向?yàn)槌鞘杏嬎愫蛨D神經(jīng)網(wǎng)絡(luò)。
趙鑫,中國人民大學(xué)信息學(xué)院副教授、博士生導(dǎo)師 (https://weibo.com/batmanfly)。近五年內(nèi)在國內(nèi)外著名學(xué)術(shù)期刊與會議上以第一作者或者第二作者身份發(fā)表論文60余篇。擔(dān)任多個重要的國際會議或者期刊評審,入選第二屆CCF青年人才發(fā)展計劃。曾獲得CIKM 2017最佳短文候選以及AIRS 2017最佳論文獎。他的研究興趣包括社交媒體數(shù)據(jù)挖掘,大數(shù)據(jù)挖掘技術(shù),自然語言處理,人工智能。
主辦單位
點(diǎn)擊以下標(biāo)題查看更多往期內(nèi)容:?
巧用文本語境信息:基于上下文感知的向量優(yōu)化
一文看懂虛假新聞檢測(附數(shù)據(jù)集 & 論文推薦)
一大批中文(BERT等)預(yù)訓(xùn)練模型等你認(rèn)領(lǐng)
萬字綜述之生成對抗網(wǎng)絡(luò)(GAN)
ACL 2019 | 基于知識增強(qiáng)的語言表示模型
NAACL 2019最佳論文:量子概率驅(qū)動的神經(jīng)網(wǎng)絡(luò)
復(fù)旦大學(xué)邱錫鵬教授:詞法、句法分析研究進(jìn)展綜述
?
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點(diǎn)擊 |?閱讀原文?| 下載論文
總結(jié)
以上是生活随笔為你收集整理的KDD 2019 | 使用神经网络为A*搜索算法赋能:以个性化路径推荐为例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 岗位推荐 | 微软AI Researc
- 下一篇: 低精度神经网络:从数值计算角度优化模型效