推荐算法炼丹笔记:序列化推荐系统
作者:一元
公眾號:煉丹筆記
特約審稿:杰少
背景
序列推薦系統(SRS)不同于傳統推薦系統(RSs)包括協同過濾和基于內容的過濾,SRSs試圖理解和建模用戶的連續行為、用戶與物品之間的交互作用以及用戶偏好和商品流行度隨時間的變化。SRS涉及到以上幾個方面,以便更精確地描述用戶上下文、意圖和目標,以及物品消費趨勢,從而得到更準確、定制和動態的推薦。
本篇文章我們對SRSs進行了系統的回顧。我們先介紹SRSs的特點,然后對該研究領域面臨的主要挑戰進行了總結和分類,然后介紹了該領域的最新研究進展和最具代表性的研究進展。最后,討論了該領域的重要研究方向。
序列化推薦的動機&形式
傳統的推薦系統,例如基于內容和協同過濾的推薦系統,以一種靜態的方式建模用戶和商品的交互并且只可以捕獲用戶廣義的喜好。而相反地,SRSs則是將用戶和商品的交互建模為一個動態的序列并且利用序列的依賴性來活捉當前和最近用戶的喜好。
為什么要進行序列化推薦?
1. 用戶和商品的交互本質是序列相關的
用戶和商品的交互本質上是序列以來的,現實生活中,用戶的購物習慣經常是一整個序列化的行為,而不是獨立的。
以圖1所示的Jimmy的購物事件為例,在Jimmy開始度假之前,他先后預訂了機票、酒店和租車,接下來的行動可能是通過自駕游游覽旅游景點。在這種情況下,酒店可能靠近航班的目的地機場,取車地點可能離酒店不遠。在這個場景中,Jimmy的每個后續動作都依賴于前面的動作,因此所有四個消費動作都是順序相關的。2. 用戶的喜好和商品的流行度是動態變化的
用戶的偏好會隨著時間的推移而改變。
例如,許多曾經是iPhone粉絲的年輕人現在轉而成為了華為或三星(Samsung)生產的手機的粉絲,而iPhone的受歡迎程度近年來一直在下降。這種動態對于精確分析用戶或商品具有重要意義,而且它們只能由SRS捕獲。3. 用戶商品的交互在特定的序列化的上下文中發生
不同的上下文通常會導致不同用戶對項目的交互,然而,這一點常常被傳統的推薦系統例如協作過濾所忽略。相反,時間序列推薦模型會將先前的順序交互作為上下文來預測在不久的將來哪些商品可能會交互。因此,通過避免重復推薦與已經選擇的商品相同或相似的項目,使推薦結果多樣化要容易得多。
序列化推薦的形式
序列化推薦系統由最大化下面的函數得到:
數據特點和挑戰
處理長的用戶商品交互序列
長的用戶商品交互序列意味著大量的用戶商品的交互,所以這里面藏有非常大復雜的相關性。而關于長的用戶商品交互序列重點挑戰可以分為:
1. 學習高階的序列依賴
- 在用戶商品的交互序列中,特別是在長的交互序列中,通常存在高階的序列依賴關系。
高階馬爾可夫鏈模型中所涉及的歷史信息是有限的,因為需要估計的模型參數個數隨階數呈指數增長,而RNN中過強的階數假設限制了RNN在具有靈活階數的序列中的應用。
2. 學習長期的序列依賴
長期順序依賴關系是指在一個序列中彼此相距很遠的交互之間的依賴關系。例如,給定一個購物序列 S1={a rose、eggs、bread、a bottle of milk、a vase},包含用戶Janet連續購買的商品。而這其中,很明顯, vase和rose是高度相關的, 但是它們的距離有些遠。
- 一些工作嘗試使用LSTM和GRU等去捕捉這些關系,然而,RNN模型很容易建立錯誤的依賴關系,因為它會過度假設序列中的任何相鄰項高度依賴。在上面的珍妮特購物序列的例子中,RNN通常通過假設牛奶和花瓶之間的距離很近而建立S1模型,但實際上它們不是。
- 一些其它的工作使用混合模型來捕捉這些問題,但是目前看來這些能力還是有限的。
以靈活的順序處理用戶商品的交互序列
在現實世界中,一些用戶-商品交互序列是嚴格有序的,而另一些則可能不是,即并非所有相鄰的交互都是順序依賴的。
例如,在購物序列S2={牛奶,黃油,面粉}中,先買牛奶還是黃油并不重要,但購買這兩種商品會導致下一步購買面粉的概率更高;也就是說,牛奶和黃油之間沒有嚴格的順序,但面粉的順序取決于它們的結合。因此,對于一個具有靈活順序的序列,捕獲集合順序依賴比捕獲點式依賴要好得多,因為前者是模糊的,并且在用戶-商品交互上不假定嚴格的順序。因此,如何在靈活順序的假設下捕獲集合序列相關性成為SRSs中處理靈活順序序列的關鍵問題。
目前國內外對這一問題的研究還不多見。現有的基于Markov鏈、因子分解機或RNN的SRS只能處理點依賴關系,而不擅長對集合依賴進行建模和捕捉。目前有些工作試圖通過利用CNN的優勢來捕捉局部和全局依賴性,即一系列交互作用的嵌入矩陣。
處理帶有噪音的用戶商品交互
在一個用戶-商品交互序列中,一些歷史交互與下一個交互具有強相關性,而另一些則可能弱相關甚至不相關。
例如,在另一個購物序列S3={bacon,a rose,eggs,bread}中,項目“rose”可能是一個嘈雜的項目,因為它與其他項目非常不同,并且與它們沒有關聯。下一個項目可能是一瓶很有可能的牛奶,它只順序依賴于熏肉、雞蛋和面包,而與玫瑰無關。因此,SRSs中的另一個關鍵挑戰是在有噪聲的用戶-商品交互序列中,有意識地、有區別地學習序列相關性。
處理具有異構關系的用戶商品交互序列
在處理與異構關系相關聯的用戶商品交互序列時,如何有效地捕獲嵌入在用戶-商品交互序列中的異構關系,并使它們協同工作進行順序推薦。
異構關系是指傳遞不同類型信息的不同類型的關系,應在SRSs中進行不同的建模。例如,在一個用戶-商品的交互序列中,除了用戶-商品交互之間普遍存在基于發生的順序依賴關系外,交互商品之間在其特征方面也存在基于相似性的關系。此外,盡管兩者都是順序依賴,但長期的順序依賴與短期的順序依賴是完全不同的,它們不能以相同的方式建模。
- 目前處理該關系主要還是基于混合模型進行處理。
使用層次結構處理用戶商品的交互序列
到目前為止,我們發現用戶商品的交互序列中一共又兩種不同的層次結構,如何將嵌入在層次結構中的層次依賴結合到序列依賴學習中,以生成更準確的序列推薦也是目前的一大挑戰.
為了考慮商品特征對用戶-商品交互的影響,一些工作提出了一系列特征豐富的神經網絡模型,例如[Hidasi等,2016b]。
相比之下,現有的SRS很少考慮到用戶群體的影響。另一方面,一些層次模型,包括層次嵌入模型[Wang et al.,2015]、層次RNN[Quadrana et al.,2017]和分層注意力網絡[Ying et al.,2018]將歷史子序列納入序列依賴學習,以構建更強大的SRS。
研究現狀
傳統序列模型
傳統序列模型一共分為兩塊, 序列模式挖掘 & Markow鏈。
(1)序列模式挖掘
基于序列模式的推薦先挖掘序列數據的常用模式,然后利用挖掘到的模式來指導后續的推薦。雖然簡單,但是卻經常會產生大量的冗余的模式, 這往往會增加非常多不必要時間和空間等代價。同時此類方法經常會丟失不頻繁的模式以及商品,所以對于不是非常流行的商品的推薦會受限。
(2)馬爾可夫鏈模型
基于馬爾可夫鏈的推薦系統會采用Markov鏈模型對用戶-商品的交互轉換進行建模,以預測下一次交互。根據使用的技術,基于馬爾可夫鏈的推薦系統又可以分為基于基本Markov鏈的推薦系統和基于潛在Markov embedding的推薦系統方法。
前者直接根據顯式觀測的值計算轉移概率,而后者首先將馬爾可夫鏈嵌入歐幾里德空間,然后根據其歐幾里德距離計算相互作用之間的轉移概率。基于Markov鏈的推薦系統的缺點主要有兩塊。一方面,由于Markov特性假設當前交互只依賴于一個或幾個最近的交互,因此只能捕獲短期依賴關系而忽略長期依賴關系;另一方面,它們只能捕獲點式依賴,而忽略了用戶商品交互的集體依賴。
序列推薦的隱式表示
隱式的表示模型先學習每個用戶和商品的潛在表示,然后使用學習得到的表示預測接下來的用戶商品交互。這么做就可以捕捉更多的內部關系。
(1)分解機(Factorization Machines)
基于因子分解機的序列推薦通常利用矩陣分解或張量分解將觀察到的用戶-商品交互作用分解為用戶和商品的潛在因子。和協同過濾不一樣的地方在于,要分解的矩陣或張量是由交互作用組成的,而不是CF中的評分,這樣的模型很容易受到觀測數據稀疏性的影響,因而不能達到理想的推薦效果。
(2)嵌入式(Embedding)
基于Embedding的序列化推薦通過將用戶-商品交互序列編碼到一個潛在空間,學習每個用戶和商品的潛在表示,以供后續推薦。具體而言,一些工作將學習到的潛在表征作為網絡的輸入,進一步計算用戶和商品之間的交互得分,或后續用戶的行為,而其他作品則直接利用它們來計算歐幾里德距離等度量作為交互得分。該模型具有簡單、高效、高效的特點,近年來已顯示出巨大的潛力。
用于序列化推薦的DNN模型
深層神經網絡能夠在一個序列中模擬和捕捉不同實體(如用戶、項目、交互)之間的綜合關系,因此在過去的幾年中,它們幾乎占據了序列化推薦的主導地位。
(1)基本的神經網絡模型
a. 基于RNN的序列化推薦
給定一系列歷史用戶商品的交互,基于RNN的序列化推薦試圖通過對給定交互的順序依賴建模來預測下一個可能的交互。除了基本的RNN外,基于長短時記憶(LSTM)和基于選通遞歸單元(GRU)的RNN也被用于捕捉序列中的長期依賴關系。
除了基本的RNN結構外,還提出了一些變體來捕獲序列中更復雜的依賴關系,例如分層RNN。然而,對于序列化推薦系統,RNN并不是完美無缺的,它存在兩個缺點:(1)序列中任何相鄰的相互作用都必須是依賴的,這很容易產生偽依賴,這可能不是真實世界中的情況,因為序列內部通常存在不相關或有噪聲的交互;(2).它很可能只捕獲點式依賴,而忽略集體依賴(例如,幾個交互協作影響下一個)。
b. 基于CNN的序列化推薦
與RNN不同的是,給定一系列的用戶-項目交互,CNN首先將這些交互的Embedding嵌入到一個矩陣中,然后將該矩陣視為時間和潛在空間中的“圖像”。最后,CNN使用卷積濾波器學習序列模式作為圖像的局部特征,以供后續推薦。由于CNN對序列中的交互作用沒有強的有序性假設,它們學習圖像中區域之間的模式而不是過度交互,因此基于CNN的序列化推薦可以在一定程度上彌補基于RNN的上述缺點。然而,基于CNN不能有效地捕獲長期依賴關系,這是由于CNN中使用的過濾器的尺寸有限,限制了它們的應用。
c. 基于GNN的序列化推薦
隨著GNN的快速發展, 基于GNN的序列化推薦被設計成利用GNN對用戶-商品交互序列進行建模,捕捉復雜的遷移古納西。通常情況下,有向圖首先建立在序列數據上,將每個交互作為圖中的一個節點,同時將每個序列映射到一條路徑。然后,在圖上學習用戶或商品的嵌入,以便在整個圖上嵌入更復雜的關系。這種方法充分利用了GNN的優點,可以捕捉結構化關系數據集中的復雜關系。基于GNN的序列化推薦通過揭示推薦商品與相應的順序上下文之間的復雜關系,顯示了提供可解釋的建議的巨大潛力。目前基于GNN的序列化推薦仍然處理早期階段。
(2) 高級模型
1. Attention模型
Attention模型在序列化推薦中通常被用來強調那些在一個序列中真正相關和重要的交互,而忽略那些與下一個交互無關的交互。它們被廣泛地納入淺層網絡和RNN,以處理有噪聲的交互序列。
2. Memory網絡
Memory網絡被引入序列化推薦系統,泳衣捕捉歷史的用戶商品交互以及下一個交互通過一個額外的memory矩陣來。這樣的矩陣能夠更明確和動態地存儲和更新歷史交互,以提高模型的表達能力,減少不相關交互的干擾。此外,一些工作還結合了一個key-value的memory網絡,以存儲和更新交互商品的相應知識庫信息,以學習屬性級別偏好以增強建議。
3. Mixture模型
基于混合模型的序列化推薦結合了不同的模型,這些模型擅長捕捉不同類型的依賴關系從而增強整個模型捕獲各種依賴關系的能力,從而能進行更好的推薦。但是目前Mixture的推薦模型依然處于早期階段。
待研究方向
Context-aware的序列化推薦系統
用戶或商品所在的當前環境會極大地影響用戶對項目的選擇,在進行推薦時應考慮到這一點。這在序列化推薦系統中更為必要,因為上下文可能會隨著時間而變化。然而,現有的序列化推薦大多忽略了這一重要方面。因此,上下文感知的序列化推薦將是未來工作的一個重要方向;
Social-aware的序列化推薦系統
用戶生活在一個社會中,并與各種人在線和離線連接。其他人的行為或意見往往會對用戶的選擇產生很大的影響。因此,在現有的研究中,我們往往忽略了序列化推案系統的Social影響;
Interactive的序列化推薦系統
現實世界中的大多數購物行為都是連續的,而不是孤立的事件。換句話說,用戶和購物平臺(例如亞馬遜)之間實際上是有順序的交互。然而,現有的序列化推薦往往忽略了這種交互作用,并且只在單個時間步驟中生成一個操作的建議。如何結合用戶-賣家交互,從而產生多時間步的推薦是一個很有前途的研究方向;
Cross-domain的序列化推薦
在現實世界中,用戶在一定時間段內購買的商品通常來自多個域,而不是一個域。本質上,來自不同領域的項目之間存在一些順序依賴關系,例如在購買汽車后購買汽車保險。這種跨域順序依賴在大多數序列化推薦中被忽略。因此,跨域SRS是另一個很有前途的研究方向,可以利用來自其他領域的信息和來自不同領域的更多不同的推薦來生成更準確的推薦。
小結
推薦系統是人工智能在日常生活中最直接、最實際的應用之一。在過去的三到五年里,順序推薦系統已經成為推薦領域的核心,因為它們提供了更智能和更令人滿意的推薦來滿足我們的日常需求。我們希望這篇綜述能為遙感研究界提供一個關于SRSs面臨的挑戰和最新進展以及一些未來方向的概述.
參考文獻
后續我們會篩選出在我們實踐中帶來提升或者啟發的工作進行細致的解讀與探討,歡迎關注我們的公眾號,也歡迎多交流,我是三品煉丹師: 一元。
煉丹筆記推薦算法煉丹筆記:序列化推薦系統
推薦算法煉丹筆記:電商搜索推薦業務詞匯表
推薦算法煉丹筆記:推薦系統采樣評估指標及線上線下一致性問題
推薦算法煉丹筆記:CTR點擊率預估系列入門手冊
推薦算法煉丹筆記:科學調參在模型優化中的意義
推薦算法煉丹筆記:如何讓你的推薦系統具有可解釋性?
2020年推薦系統工程師煉丹手冊
總結
以上是生活随笔為你收集整理的推荐算法炼丹笔记:序列化推荐系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统炼丹笔记:推荐算法特征交叉新方式
- 下一篇: 推荐系统炼丹笔记:多模态推荐之用户评论篇