論文読み会の資料です.
(A slide for the paper-reading activity at my company, written in Japanese.)
Learning Probabilistic Box Embeddings forEffective and Efficient Ranking著者: Lang Mei, Jiaxin Mao, Gang Guo, Ji-Rong Wen(Renmin Univ. of China)学会: WWW2022@cocomoff1/21
View Slide
目次(余計な話が多い)背景埋め込み・検索・推薦、ChatGeoPTKDD'22, ERNIE-GeoL階層性Box Embeddings関係の話EACL2017, Learning to Predict Denotational Probabilities ForModeling EntailmentACL2018, Probabilistic Embedding of Knowledge Graphs with BoxLattice MeasuresICLR2019, Smoothing the Geometry of Probabilistic BoxEmbeddingsEMNLP2021, Box Embeddings: An open-source library forrepresentation learning using geometric structuresWWW'22の内容 (ランキング)2/21
背景: 埋め込み・検索・推薦最近、埋め込みベクトルを利用した検索・推薦などに興味がある(NLP2023: 技術文書、2023年度業務: 地理空間情報 (経路・旅程)?)ここ数年、インタラクティブ最適化をやってきたのでChatGPTに乗っかりたいChatGeoPTとかもある3/21
背景: ERNIE-GeoLBaidu の ERNIE に対して地理情報を食べさせたやつ (ERNIE-GeoL, KDD'22)heterogeneous graphを使ってランダムウォークさせて埋め込みタスク: クエリの意図推定、クエリとPOIのマッチング、住所のパース、geocoding (地名のマッチングみたいなもの)、next POI推薦他の基盤モデルそのまま使うよりも、Geo情報でtuneすると性能上がる技術文書(専門性が高い、階層性がある)や旅程推薦(地理的な制約)を思うと、タスクが対象としている情報の構造性があった方が、信頼できる出力が出てきそう会社の部署構造、引用関係のネットワーク、地名の階層構造…4/21
背景: 階層性地理情報 (POIの列を単語の列とみなす) よりもNLPの世界の方が進んでる埋め込みを見てみると、いろいろある単語のベクトル埋め込み、ポアンカレ埋め込み、ガウス埋め込み、箱埋め込み、…今日は「箱埋め込み」とランキングの論文(WWW'22)に注目箱埋め込み: パラメータを倍に増やして、箱の包含関係を使う5/21
目次(余計な話が多い)Box Embeddings関係の話EACL2017, Learning to Predict Denotational Probabilities ForModeling EntailmentACL2018, Probabilistic Embedding of Knowledge Graphs with BoxLattice MeasuresICLR2019, Smoothing the Geometry of Probabilistic BoxEmbeddingsEMNLP2021, Box Embeddings: An open-source library forrepresentation learning using geometric structuresWWW'22の内容 (ランキング)背景埋め込み・検索・推薦、ChatGeoPTKDD'22, ERNIE-GeoL階層性6/21
埋め込み: EACL2017 具体的な学習方法・モデルは省略含意関係を判定するRTE (Recognizing Textual Entailment) タスクの論文背景知識Word2vec的な技術でベクトル埋め込みできるという世界観(分布仮説)他の考え方: 文 が説明できる画像の集合によって の表示的な意味を議論する (visual denotation): 結果がグラフになる (集合の階層関係)表示的な意味関係 (集合の包含関係) を使って順序関係(順序埋め込み)を学習する過去の研究によれば、少なくとも分布仮説による表現と同じぐらい有効7/21
埋め込み: ACL2018 説明かなり飛ばしてます順序埋め込みを束の上で議論すればいいのでは?という論文束; 順序によって構成される数学的なオブジェクト半順序集合 ( )束; 部分集合族で、join と meet が計算できるものメインのアイデア: 既存手法(半開区間)では議論してないけど、埋め込みベクトルの値域は に押し込めて、区間の積・max・minを使った束 (Box Lattice)性能も良かった8/21
埋め込み: ICLR2019 説明かなり飛ばしてます厳密な箱じゃなくて、重なり部分が計算できるなめらかな表現でいいのでは?厳密な箱だと重ならないペアで勾配が0で学習が難しいなめらかな箱にすると、パラメータも少なく学習が簡単特にスパース/inbalancedなデータの場合、なめらかな箱の方が性能が良い9/21
埋め込み: EMNLP2021 (demo) ライブラリあるよDemo paperなので論文にpythonのコードが書いてある基本的な機能 (箱の表現 BoxTensor、箱の問い合わせや重なり合い具合を評価するために使う体積の評価 Volume、データローダーと初期化など)Box Embeddingと階層構造の図 (左)例: を埋め込み、 となるように学習する (右)論文のコードをGoogle Colabで動かしたら結果再現できた10/21
目次(余計な話が多い)WWW'22の内容 (ランキング)背景埋め込み・検索・推薦、ChatGeoPTKDD'22, ERNIE-GeoL階層性Box Embeddings関係の話EACL2017, Learning to Predict Denotational Probabilities ForModeling EntailmentACL2018, Probabilistic Embedding of Knowledge Graphs with BoxLattice MeasuresICLR2019, Smoothing the Geometry of Probabilistic BoxEmbeddingsEMNLP2021, Box Embeddings: An open-source library forrepresentation learning using geometric structures11/21
ここから本編です:12/21
WWW'22: 背景と結果ベクトル埋め込みベースの検索システム (近傍検索・ランキング・推薦など) は、深層学習時代では基本的な技術になっているが、微妙な点もある:(effectiveness): クエリーやアイテムの多様性・不確実性の表現能力ベクトル空間の1つの点に埋め込めるほど明確ではない(efficiency): 近傍探索が大変アイデア: 箱にすればいいのでは (box retrieval を提案)?13/21
WWW'22: ベクトル埋め込み・箱埋め込みベクトル埋め込みオブジェクト を -次元ベクトル に埋め込む距離 や類似度 を検索に使う箱埋め込みオブジェクト を -次元のaxis-aligned hyper-rectangleに埋め込む表記体積重なり区間の重なり:2つの箱が疎:重なった体積: .定理: はカーネル関数14/21
WWW'22: 箱埋め込みの学習; Parameterization箱をそのまま最適化するのは disad. なのでガンベル分布の箱の縁を最適化する分布関数ガンベル分布のmax/minは、ガンベル分布(パラメータのmax/min)に従う箱でmin/maxを計算する場合 (平均のところがlog-sum-exp; LSE):体積の期待値を求めるために:,ガンベル分布を仮定したときの期待体積: Euler-Mascheroni constantたぶんどこかに式展開があるはず… (arXiv 2010.04831 or UAI21) 15/21
WWW'22: 問題設定・ロス関数前提クエリ 、アイテム 、クエリ に適合したアイテムの集合 に対して、 で埋め込む。ガンベル分布による期待体積 を用いてスコアを求める。ランキングロスLtRタスク: 正のアイテム は高いスコアを、負のアイテム(sampling戦略で取得) は低いスコアになるように学習する。exp()の2項目が大きく、1項目が小さくなればロスが小さくなる検索タスクのために2つの制約をつける箱の体積の制約箱の重なりに関する制約16/21
WWW'22: 制約LtRの全体ロス: ランキングロス+制約×2箱が大きすぎると曖昧な埋め込みになってダメそう(クエリ・アイテム両方):𝟙𝟙疎な箱同士(重なっていない軸がある)はフィルタリングに有効そう:正例 と負例 の領域が重ならないようにペナルティを付与したい一番近いところにマージン ぐらいの幅があるようにペナルティ17/21
WWW'22: 学習したあとの箱はどうなってるのか?学習後、クエリ とアイテム に箱埋め込みが計算できるの重なり合いはどうなるか箱の各次元 でそれぞれ確率 ぐらいで重なっていると仮定 (重なる = relevant)各次元が独立だと仮定重なっている部分 について著者の主張:各次元ごとに関係のないアイテム (irrelevantitems) をフィルタリングしていけば良いかぶっていない次元が1つでもあれば関係のないアイテムと判定高速に判定するために索引構造を作る18/21
WWW'22: Indexing & Search右のような軸があるかを高速に探したい書いてあること (抜粋)箱埋め込みの両側 ( )について、対象データ の各次元の情報をソートしておく:各軸で二分探索する各軸レベルで探すbit演算でできるので高速に計算できる関連アイテムをランキングにする方法索引から関連アイテム を取得して、重なり体積を計算して出力する空間索引使わないの? (R-Treeなど)高次元 ( ) だと死ぬので使わない19/21
WWW'22: 実験 (検索)TREC2019 Deep Learning (DL) Track8,841,823 passages, 502,939 training queries, 6,980 test queriesベースラインの STAR と同じ負例サンプリング手法を用いた箱埋め込みしただけで既存のベースラインより良い。制約つけると箱の重なり具合がいい感じに調整されて、効率が上がっている。20/21
WWW'22: 実験 (推薦)推薦実装の統一的なフレームワーク Recbole を使って、MovieLens-1M とAmazonBooks を利用してベースライン (DSSM/GRU4REC/SASREC) と比較した20インタラクションしたユーザのみ負例をランダムに100個と、全体使った場合で比較21/21