一、引言
目前,個性化和推薦系統已部署于各種互聯網公司,包括廣告點擊率(CTR)預測和排名。近幾年,有兩個方法為深度學習模型的個性化和推薦作出了貢獻。第一個來自推薦系統。這些系統最初采用內容過濾技術,用戶選擇首選類別后,系統會根據用戶的喜好進行匹配[。隨后,該領域演變出了基于協同過濾的技術,它利用了用戶過去的互動行為,如歷史評分記錄。第二種觀點來自預測分析,它依賴于統計模型來進行分類或根據給定的數據預測事件發生概率[2]。預測模型從簡單的模型,如線性和邏輯
回歸到深度網絡模型。為了處理分類數據,這些模型采用了嵌入式轉換,將單熱和多熱矢量轉換為抽象空間中的密集。這個空間可以解釋為推薦系統發現的潛在因素的空間。
本文介紹了由兩者結合的個性化模型。該模型采用嵌入技術來表示分類數據的稀疏特征,并利用多層感知器(MLP)來處理密集特征。隨后,它應用了文獻中提出的統計技術的特征。最后,找到這個事件,通過后處理與另一個MLP的交互概率。我們將此模型稱為深度學習推薦模型(DLRM)。最終,通過PyTorch的實現模型評估本論文提出的模型。
二、模型設計和架構
在本節中,我們將描述DLRM的設計,從高級組件
入手,闡述其組裝方式及原因,進而描述由低級操作符和基元構成的模型,并探討其對未來硬件和系統設計的潛在影響。
(一)DLRM組件
DLRM的高級組件通過回顧早期模型更容易理解。本文聚焦于用于早期模型的四種關鍵技術,可以解釋為DLRM的重要高級組件[3]。
1.嵌入
為了處理分類數據,嵌入技術將每個類別映射到一個密集的抽象空間表示中。每次嵌入查找可以解釋為使用一個熱點矢量 ei (第 i 個位置是1,其他是0,其中索引 i 對應于第 i 個類別),獲取相應的行向量嵌入表W∈Rm×d ,如下所示:
WiT=eiTW
在更復雜的場景中,嵌入也可以表示多重加權組合項目,具有權重的多熱點矢量 aT=[0,…,ai1,…,aik,…,0] ,可以將小批量的 t 嵌入查找寫成:
S=ATW
2.矩陣分解
在推薦問題的典型表述中,給出了已評定產品的一組用戶。用矢量 wi∈Rd 表示第 i 個產品 i=1,…n ,對于 j 層用戶通過向量 ?νj∈Rd 找到所有評級。其中 j=1,…,m , n 和 m 分別表示產品和用戶的總數。集合 s 通過元組 (?i,j)
來索引,表示第 j 個用戶對第 i 個產品的評價。
矩陣分解方法通過最小化來解決這個問題:
min(i,j)∈Srij-wiTνj
3.分解機器
FM與具有多項式核的支持向量機(SVM)明顯不同[4,因為他們將二階相互作用矩陣分解為潛在因子(或嵌入向量)。在矩陣分解中,它能夠有效地處理稀疏數據,顯著降低了二階交互的復雜性,僅通過捕獲不同對象間的交互來生成嵌入向量,從而實現了線性計算復雜度。
4.分層感知器
最近機器學習的成功歸功于深度學習的興起。其中,最基本的模型是多層感知器(MLP),一種預測功能σ:RR 由完全連接(FC)層的交錯序列和激活功能組成。
這些方法已用于捕獲更復雜的交互。例如,它已被證明如果給定足夠的參數,具有足夠深度和寬度的MLP可以使數據適應任意精度[5。這些方法的變化已廣泛用于包括計算機在內的各種應用。
(二)DLRM架構
目前為止,我們已經描述了推薦系統和預測分析中使用的不同模型。現在著手構建一個最先進的個性化模型,該模型通過許多連續和分類特征來描繪用戶與產品的特性。在分類特征中,每個分類特征將由嵌入向量表示相同的維度,概括了矩陣分解中使用的潛在因素的概念。對于連續特征的處理,我們將采用MLP(我們稱之為底部或密集的MLP來生成與嵌人向量等同長度的密集表示。
計算不同特征的二階交互處理FMs中提供的稀疏數據,可選擇通過MLP傳遞它們。這是通過在所有嵌入向量對和處理的密集特征之間取點積。這些點積與原始處理的密集特征連接并進行后處理另一個MLP(頂部或輸出MLP),并輸入Sigmoid函數以給出概率。
(三)與先前模型的比較
許多基于深度學習的推薦模型[使用類似的基礎生成高階項以處理稀疏特征,例如,DeepFM和xDeepFM網絡系統設計了專用網絡構建高階交互。然后,這些網絡對其專業模型和MLP的結果進行求和,通過線性層和Sigmoid激活傳遞到最終可能性。DLRM通過模仿分解的結構化方式,專門設計用于交互嵌入,它僅考慮交叉項,從而顯著降低模型維數,這些交叉項由最終MLP中的嵌人對之間的點積產生。我們認為,在其他網絡中發現的超出二階的更高階交互可能會帶來額外的計算和
內在成本。
DLRM與其他網絡之間的關鍵區別主要體現在它們處理嵌入式功能向量的方式上,特別是,DLRM和xDeepFM[將每個特征向量視為代表單一類別的獨立單元,而Deep和Cross等網絡則將每個類別特征向量中的元素視為能夠生成不同交叉項的新單元。因此,Deep和Cross網絡不僅能在來自不同特征向量的元素之間產生交叉項,如在DLRM中通過點積,但也能生成相同元素之間的交叉項特征向量,這導致了更高的維度。
三、數據集
為了測量模型的準確性,就要測試其整體性能,并對其進行表征。針對個體運營商,需要為實施創建或獲取適當的數據集。目前該模型的實現提供三種類型的數據集:隨機、合成和公共數據集。
前兩個數據集可用于從系統角度試驗模型。特別是,它允許我們在移除數據存儲系統的依賴關系時,通過運用不同的硬件屬性和瓶頸動態獲取數據。后者允許我們對實際數據進行實驗,并測量模型的準確性。
(一)隨機數據集
DLRM接受連續和分類特征作為輸入。前者可以建模,通過使用均勻或正態(高斯)分布生成隨機數矢量,使用默認參數的Numpy.random包Rand或Randn調用。然后是一個小批量可以通過生成矩陣來獲得輸入,其中每行對應元素小批量。
(二)合成數據集
有許多理由支持自定義生成與分類特征相對應的索引。例如,如果應用程序使用特定數據集,但出于隱私不愿共享,可通過分布表達分類特征。這可以作為應用程序中使用的隱私保護技術的替代方案[8。另外,為訓練系統組件(如學習記憶行為),需捕獲原始痕跡訪問的基本位置以合成痕跡。
為解釋如何使用合成數據集,假設有一系列指數對應于嵌入單個分類特征的查找。那么,可以在該跡線中記錄重復訪問之間的唯一訪問和距離頻率,然后生成文獻中提出的合成跡線。
值得注意的是,只能生成一個堆棧距離,最多達到已經看過的多個唯一訪問。因此,s用于控制Alg.2中分布p的支持。給定一定數量的唯一訪問,較長的輸入跟蹤將導致在Alg.1中分配給它們的概率較低。這將導致更長的時間在Alg.2中實現完全分發支持。為了解決這個問題,需要將唯一訪問的概率提升至最小閾值,并在用戶查看完所有內容后,調整支持系統以排除唯一訪問的情況。
(三)公共數據集
很少有公共數據集可用于推薦和個性化系統。CriteoAILabsAdKaggle6和Terabyte7數據集是由點擊日志組成的開源數據集。每個數據集包含13個連續和26個分類特征。通常連續特征使用簡單的對數變換日志進行預處理。絕對的功能被映射到相應的嵌人索引,具有未標記的分類特征或標簽映射為0或NULL。
CriteoAdKaggle數據集在7天內包含大約4500萬個樣本。在實驗中,通第7天分為驗證和測試集,而前6天用作培訓組。CriteoAdTerabyte數據集在24天內進行采樣,其中第24天被分為驗證和測試集,前23天用作訓練集。
四、實驗
本節說明DLRM的性能和準確性。該模型在PyTorch框架中實現并在GitHub8上提供。它采用FP32浮點數和模型參數的 Int32 (Caffe2)/Int64(PyTorch)類型和指數進行實驗,并在配備雙插槽IntelXeon6138CPU和8個NvidiaTeslaV10O16GBGPU的BigBasin上進行實驗,相關信息可通過OpenComputeProject獲取。
(一)公共數據集的模型準確性
我們在CriteoAdKaggle數據集上評估模型的準確性,并比較其性能。針對深度和跨網絡(DCN)的DLRM沒有進行大量調整[0]。比較使用DCN,因為它是少數幾個在同一數據集上具有全面結果的模型之一。在這種情況下,模型的大小適合于存在的特征數量數據集。特別是,DLRM由底部MLP組成,用于處理密集特征,其中包含三個隱藏層,節點數分別為512、256和64。
頂部MLP由兩個隱藏層組成,節點數分別為512和256 另一方面,DCN由六個交叉層和一個交叉層組成,這會產生DLRM和DCN,均具有大約540M參數。
我們在完整的單個訓練時期繪制了訓練(固體)和驗證(虛線)準確度。對于具有SGD和Adagrad優化器的兩種模型,沒有使用正則化。在這個實驗中,DLRM獲得稍高的訓練和驗證準確度。
(二)單個插座/設備上的模型性能
為了分析單個插座設備上模型的性能,我們采用了示例模型,該模型包含8個分類功能和512個連續特征。每個分類功能都通過處理包含1M向量的嵌人表,向量維度為64;而連續特征則被組裝成尺寸為512的矢量。讓底部MLP有兩層,而頂部MLP有四層。在具有2048K隨機生成樣本的數據集上分析該模型,則被組織成1K小批量進行處理。
PyTorch中的這種模型實現在CPU上運行大約256。正如預期,大部分時間都是用于執行嵌入查找和完全連接的層。在CPU上,完全連接層占據了計算的很大一部分,而在GPU上它們幾乎可以忽略不計。
五、結束語
本文利用分類數據的模型提出并開源了一種新穎的基于深度學習的建議。雖然推薦和個性化系統仍然存在,在今天的行業中,深入學習取得了很大的實際成功,但在學術界很少受到關注。本文詳細描述了推薦系統及其開源實現,旨在引起學者們的關注。這類網絡以可訪問的方式呈現的獨特挑戰,進一步實現算法實驗、建模、系統協同設計和基準測試。
作者單位:高璐 端木青云 金肯職業技術學院
參考文獻
[1]王嫣然,陳梅,王翰虎,等.一種基于內容過濾的科技文獻推薦算法[J].計算機技術與發展,2011,21(02):66-69.
[2]曹宗杰,閔銳,龐伶俐,等.基于統計模型的變分水平集SAR圖像分割方法[J].電子與信息學報,2008,30(12):2862-2866.
[3]李同歡.基于深度學習的多角度綜合推薦模型[J].大數據時代,2018,21(12):34-39.
[4]丁世飛,齊丙娟,譚紅艷.支持向量機理論與算法研究綜述[J].電子科技大學學報,2011,40(01):2-10.
[5]騫宇澄,劉昭策.深度學習的實現與發展——從神經網絡到機器學習[J].電子技術與軟件工程,2017(1):30-31.
[6]Gentry C.Afully homomorphic encryption scheme[M].Stanford University,2009.
[7]胡松波,何洪波,肖云.ConvFNN:一種基于深度學習的個性化推薦算法[J].科研信息化技術與應用,2017,8(05):3-10.
[8]譚娟,王勝春.基于深度學習的交通擁堵預測模型研究[J].計算機應用研究,2015,32(10):2951-2954.
[9]曾旭禹.一種基于深度學習的混合推薦算法[J].計算機科學,2019,46(01):133-137.
[10]孟祥申.基于深度神經網絡的跨模態檢索技術研究[D].南昌:江西師范大學,2017.