CurvLearn开源 | 阿里妈妈曲率学习框架详解
??摘要
歐氏空間由于其直觀的幾何特性及簡單有效的公式而被應用于幾乎所有的深度學習模型。然而,近年來的研究發現,復雜結構數據(如社交網絡、電商數據等)的建模精度往往會受到“平坦”的歐氏空間的制約,“彎曲”的曲率空間(如雙曲空間和球形空間)由于具備更強的表征能力成為一種更佳的選擇。
本文介紹的曲率學習框架(Curvature Learning Framework,以下簡稱 CurvLearn) 由阿里媽媽技術團隊自研,旨在實現曲率空間下任意深度模型的訓練與優化。基于 Tensorflow,CurvLearn 提供了豐富的流形實現,封裝了完整的向量算子和高層 API,具備大規模分布式訓練能力。目前該框架已在阿里廣告關鍵業務場景落地,并取得了比歐氏空間更好的效果。
本文將對 CurvLearn 的相關背景、適用場景及實現邏輯做簡要介紹,希望給大家帶來一點啟發與幫助,歡迎試用與交流討論!
CurvLearn 開源地址:
https://github.com/alibaba/Curvature-Learning-Framework
??框架背景
什么是曲率空間
曲率空間,也即微分流形,是三維歐氏空間中曲線和曲面概念的推廣,呈現為局部平坦而整體“彎曲”的空間。
衡量空間“彎曲”程度的量即是曲率,曲率約接近于 ,空間越平坦,如歐氏空間曲率處處為 ;反之曲率絕對數值越大,空間畸變程度越高。根據空間各處曲率的不同,可以將曲率空間劃分為常曲率空間及混合曲率空間兩種。
常曲率空間指空間中各點截面曲率相等,即空間各處“彎曲”程度相同。根據曲率數值正負劃分為雙曲空間、歐氏空間及球面空間三種,各空間幾何性質如下圖所示。
圖1:常曲率空間混合曲率空間指空間各處曲率不同,整體呈現多樣化的幾何特性。實際上絕大部分常見的非歐空間都呈現出混合曲率特性,如下圖展示了一個常見例子:環面空間。
圖2:混合曲率空間示例:環面曲率空間的特性
實際上不同空間暗涵了對數據分布的不同假設,一個常見例子是地圖,在歐氏空間中計算真實城市距離會帶來誤差。因此不考慮真實數據分布而不假思索使用歐氏空間往往會帶來模型精度上的損失。為此本文分別對不同空間適合的數據分布做出簡要分析。
歐氏空間
歐氏空間各處均勻且平坦,具備各向同性及平移不變性,因此適合建模網格數據如圖像等[1]。
雙曲空間
雙曲空間具備指數級體積容量 ,同存儲量下樣本間距更大,因此適合建模超大規模數據[2]。
雙曲空間距離度規等價于冪律分布,互相導出,作為對數據分布的先驗認知適合建模無尺度網絡[3]。
雙曲空間無損嵌入樹結構,而歐氏空間無法避免表征損失,因此適合建模層次結構[4]。
球面空間
球面空間距離度規等價于角度度規,具備旋轉不變性,因此適合建模環狀數據[4]。
混合曲率空間
混合曲率空間整體分布不均,各處呈現出不同的幾何特性,因此適合建模多種結構特性并存的數據,如樹環等[5]。
曲率空間的形式化定義
曲率空間 由流形 和度規 嚴格定義。 指定了空間可行域,度規 定義了各點處的坐標尺度,用來導出各點曲率 及測地線距離,歐氏空間下 即為單位矩陣 。對于流形上的每個點 ,切空間 為 點附近的一階近似,屬于歐氏空間。通過指數映射 可以將切空間上的點 映射至流形上:;與之可逆通過對數映射 可以將流形的點 映射至切空間上:。
常曲率空間擁有多種模型定義,如雙曲空間包含洛倫茲模型(Lorentz Model)、克萊因模型(Klein Model)等。然而部分模型在曲率 時并不會收斂至歐氏空間,造成優化困難。幸運的是空間的球極平面投影( Stereographic Projection)模型[4]可以避免這個問題,即龐加萊球模型(Poincare ?ball)以及投影球面模型(Projected Sphere)。這里給出三種空間模型的形式化定義:
雙曲空間以 表示,曲率 ,定義為,黎曼度量為 ;
歐氏空間以 表示,曲率 ,定義為 ,黎曼度規為 ;
球形空間以 表示,曲率 ,定義為 ,黎曼度量為 。
其中 為向量維度, 為單位矩陣,。
注意到上述三種模型的形式化定義存在相似之處,為了使得空間學習更為靈活,一種統一的非歐空間表示為 ,它是雙曲空間、歐氏空間以及球形空間的一體化實現,分別對應 , 以及 這三種情況。
混合曲率空間具備復雜多變的空間曲率,模型自由度極高。其中積空間(Product Space)具備可分解及獨立優化的特性,通常作為混合曲率空間的典型模型[5]。積空間定義為 ,其中 代表笛卡爾積, 代表第 個空間的維度, 為第 個空間的曲率。
??曲率學習框架
框架概覽
曲率學習是一個開源的基于 Tensorflow 的非歐深度學習框架。它實現了多種非歐流形、非歐算子和黎曼優化器,基于與 Tensorflow 相似的底層接口,用戶可以便捷的將模型從歐氏空間遷移至非歐空間。曲率學習整體架構如下圖所示,自下而上分別包含流形(Manifolds)、算子(Operations)、模型(Models)、優化器(Optimizers)及應用(Applications)五大模塊:
圖7:曲率學習架構Manifolds
非歐空間中向量操作需要滿足流形約束,與歐氏空間不同,它們通常在陀螺矢量空間(Gyrovector Space)中進行定義[6],其表達形式與流形特性相關聯。框架實現了如下五大類基本流形:
Euclidean:歐幾里得空間,曲率恒零。
Stereographic:使用球極平面投影的常曲率空間,曲率可以是任意實數值。
PoincareBall:雙曲幾何中的龐加萊球模型,曲率恒負。
ProjectedSphere:球面幾何中的球極平面投影模型,曲率恒正。
Product:多種流形笛卡爾積構成的積流形,曲率具備各向異性。
以球極平面投影模型 作為示例,框架實現了如下向量操作:
指數映射:將 的切空間向量 投影到對應流形上。
對數映射:將對應流形向量 投影到 的切空間上。
向量加法:流形向量 與 相加。
向量乘法:流形向量 擴充 倍。
平行移動:將 的切空間向量 移到 的切空間中發生的尺度變化。
Connect Host Timeout #608
測地線距離:流形上 和 的最短距離。
Trigonometric函數:
Operations
模型中的向量操作遠不止上述定義的幾種。實際上諸如向量平均,向量拼接等不是良定義的,需要自行推導其形式,在滿足合適的向量變換邏輯上,使得該操作盡可能高效易優化。通常而言,絕大部分非歐算子都遵循轉移到切空間的運算流程:
向量 通過對數映射投影至切空間
切空間向量 通過歐氏算子進行變換
通過指數映射投影回非歐流形
由此框架導出了其余算子,如向量拼接,激活函數等。值得注意的是向量平均我們使用了愛因斯坦中值(Einstein Midpoint),因為相比于上述切空間變換,該方法精度能提高約200%[7]。
Models
基于非歐算子的堆疊組合可以自然的構建非歐模型,如非線性變換可以定義為:
另一種構建模型的方式為轉移計算到切空間,即投影流形向量至切空間,在切空間中實現復雜模型變換,投影回流形。HGCN[8]實現的非歐圖卷積神經網絡正是一個典型的例子:
由于不同模型實現及側重點不一致,這里不做進一步細節闡述。
Optimizers
由于底層向量定義在非歐流形上,直接優化向量需要使用黎曼優化器[9]。以 RSGD(Riemannian SGD)為例,基本思想為先計算歐氏空間下的梯度,接著投影至切空間,最后執行非歐空間下的梯度下降。其具體參數更新過程為:
其中 位于切空間,為 的黎曼梯度, 是歐氏梯度,通常有 , 是學習率。出于性能方面的考慮,目前非歐優化更多的采用間接優化非歐向量的手段,即將底層向量定義在歐氏空間中,然后投影至非歐流形上,由此使用歐氏優化器間接優化非歐模型。
Applications
近年來,非歐表征學習得到了越來越多的關注,在理論方面也得到了持續的完善,在各個領域也有相應的應用,包括推薦系統[10]、圖學習[11]、自然語言處理[12]等。在阿里媽媽搜索直通車場景中,框架在圖學習召回和類目預測應用上進行了落地,并取得了不錯的離線在線效果。
在接下來的文章中以圖學習召回為例,我們會詳細描述如何使用曲率學習框架提高表征效果,歡迎持續關注。
??曲率學習訓練技巧
無論是在業界,還是我們自己的實踐經驗,都發現曲率模型訓練可能存在著數值不穩定性的問題,主要包括如下兩個原因:
節點Embedding容易超出曲率空間定義域。例如雙曲空間的定義域為一個有限半徑的球體,在訓練的過程中,節點的 Embedding 容易靠近空間邊緣,由于數值精度問題容易導致向量操作不合法。
梯度爆炸或彌散。由于曲率空間引入了復雜的計算邏輯,例如大量的 以及 函數等,位于這些函數的極值區域較難被優化。
為了解決這些問題,我們經過大量嘗試總結了一些比較有效的訓練優化手段:
參數初始化。曲率空間訓練對參數初始化比較敏感,我們發現維持任意節點初始距離為較小的常值對提高訓練穩定性很有幫助。一種可行的方案是使用小方差的正態分布初始化向量,同時使用 Xavier 初始化模型參數。
曲率 Embedding 正則。為了讓節點 Embedding 盡量遠離空間邊緣等極值區域,直觀的想法是通過正則項約束向量分布。作為 的擴展,正則項被定義為:
學習率及梯度處理。模型分布式優化往往涉及到梯度累加的過程,使用Warm-up及梯度裁剪有助于在訓練初期維持梯度數值穩定性。
??曲率ANN檢索工具
由于曲率空間距離不是簡單的內積、Cosine 或 L2,傳統的 ANN 檢索工具已經不再適用,為此我們開發了支持一系列非歐空間距離的 ANN 檢索工具,包括雙曲距離、球形距離以及混合空間距離,為了彌補距離公式復雜度提高帶來的性能損失,工程上做了一系列的優化措施,包括分布式、數據及指令并行化,使得檢索性能大為提高,相較于歐氏檢索性能損耗被縮小至一個可以接受的范圍內。目前我們正在進行工具的完善,計劃于近期在 Github 進行開源發布。
??展望
曲率空間作為一個全新領域,可以視作歐氏空間的擴展,天然適合建模復雜網絡,在大規模場景下具有很大的應用潛力。
曲率空間獨立于模型,理論上可以推廣到任意的模型結構。越來越多的學術工作著眼于探索新的非歐流形表征及特性應用,并取得了亮眼的效果。
希望我們的曲率學習框架能為非歐空間在工業場景的落地添磚加瓦,鋪平道路。
CurvLearn 開源地址:
https://github.com/alibaba/Curvature-Learning-Framework
參考文獻
[1] Bronstein, Michael M. et al. “Geometric Deep Learning: Going beyond Euclidean data.” IEEE Signal Processing Magazine 34 (2017): 18-42.?
[2] Nickel, Maximilian and Douwe Kiela. “Poincaré Embeddings for Learning Hierarchical Representations.” NIPS (2017).?
[3] Krioukov, Dmitri V. et al. “Hyperbolic Geometry of Complex Networks.” Physical review. E, Statistical, nonlinear, and soft matter physics 82 3 Pt 2 (2010): 036106.?
[4] Bachmann, Gregor et al. “Constant Curvature Graph Convolutional Networks.” ICML (2020).?
[5] Gu, Albert et al. “Learning Mixed-Curvature Representations in Product Spaces.” ICLR (2019).?
[6] Ganea, Octavian-Eugen et al. “Hyperbolic Neural Networks.” NIPS (2018).?
[7] Lou, Aaron et al. “Differentiating through the Fréchet Mean.” ICML (2020).?
[8] Chami, Ines et al. “Hyperbolic Graph Convolutional Neural Networks.” NIPS (2019).?
[9] Bécigneul, Gary and Octavian-Eugen Ganea. “Riemannian Adaptive Optimization Methods.” ICLR (2019).?
[10] Vinh Tran, Lucas et al. “HyperML: A Boosting Metric Learning Approach in Hyperbolic Space for Recommender Systems.” WSDM (2020).?
[11] Zhu, Shichao et al. “Graph Geometry Interaction Learning.” NIPS (2020).?
[12] Chen, Boli et al. “Probing BERT in Hyperbolic Spaces.” ICLR (2021).
END
歡迎關注「阿里媽媽技術」
瘋狂暗示↓↓↓↓↓↓↓
總結
以上是生活随笔為你收集整理的CurvLearn开源 | 阿里妈妈曲率学习框架详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EFLS开源 | 阿里妈妈联邦学习解决方
- 下一篇: CIKM 2021 | AutoHERI