LinkedInでのグラフニューラルネットワークを使ったレコメンデーションの強化
LinkedInがどのようにグラフニューラルネットワークを使ってユーザーのおすすめを改善しているかを学ぼう。
― 1 分で読む
目次
LinkedInは、200以上の国で10億以上のメンバーをつなぐ最大のプロフェッショナルネットワークだよ。このプラットフォームは、人々が仕事の機会を見つけたり、知識を共有したり、関係を築いたりすることができる場なんだ。メンバー同士のつながりは、数十億のノード(メンバー)やエッジ(インタラクション)からなる巨大なウェブ、またはグラフを作り出す。このグラフは、ユーザーに興味がありそうな仕事やコンテンツを提案するために重要なんだ。
グラフニューラルネットワーク開発の課題
こんな大きなグラフで作業するのは、独特の課題があるよ:
スケールでのグラフトレーニング: 従来のモデルとは違って、グラフのトレーニングはデータのサイズや構造のために複雑になりがちなんだ。
多様なエンティティ: 投稿、メンバー、企業、仕事などの違ったものが一緒に機能する共通のスペースを作る必要があるんだ。
コールドスタート問題: 一部のメンバーはあまりプラットフォームを使わないから、彼らの好みに関するデータが少なくなっちゃう。
ダイナミックシステム: LinkedInのネットワークは常に変化してるから、モデルが追いつくのが難しいこともあるよ。
これらの課題に対処するために、グラフニューラルネットワーク(GNN)を使ったシステムを開発したんだ。
グラフニューラルネットワークとは?
GNNは、グラフデータを扱うために設計されたモデルだよ。データの中のパターンや関係を見つけるのが得意で、つながりが重要なLinkedInのようなプラットフォームにぴったりなんだ。
GNNフレームワークの構築
効率よくGNNモデルをトレーニングする包括的なフレームワークを作ったよ。
トレーニングインフラ
GoogleのKubernetesを使ったシステムで、複数のタスクを同時に実行できるんだ。このシステムを使うことで、GNNのトレーニングが迅速に行える。リアルタイムでグラフデータをサンプリングできるのが重要なんだ。
グラフ構築
さまざまなタイプのノードとエッジを含むグラフを構築してるよ。この組み合わせで、複雑な関係をキャッチできるんだ。例えば、メンバーが関わる投稿や、インタラクションがある他のメンバーとつなげているんだ。
コールドスタート問題の対処
あまりアクティブでないメンバーを助けるために、グラフを密にする方法を導入したよ。これは、似たようなメンバーを見つけて追加のつながりを作るってこと。例えば、メンバーがあまり関与してなければ、もっとアクティブな似たメンバーを探して、つながりを作るんだ。
ダイナミックモデリング
モデルを関連性のあるものに保つために、時間的要素を統合したよ。これで、インタラクションが時間と共にどう変わるかを考慮できて、最近の活動の重要性をモデルが理解できるようになるんだ。
GNNトレーニング改善のための技術
GNNトレーニングを速く安定にするために、いくつかの技術を使っているよ:
アダプティブサンプリング
最初から多くの隣接ノードをサンプリングするのではなく、少数グループから始めて必要に応じて増やす方法だね。この方法は時間を節約できて、最も有用なデータに焦点を当てられる。
グルーピングとスライシング
メンバーごとにインタラクションをグループ化してトレーニングデータを整理しているよ。これで、データをより効率的に処理できて、データソースへのクエリ数を減らせるんだ。
共有メモリを使ったマルチプロセッシング
Pythonでマルチプロセッシングを使うことで、データタスクを同時に処理できるんだ。これが、トレーニングに必要な情報を取得する際の遅延を防ぐ助けになるよ。
リアルタイム推論
システムには、推奨が新鮮であることを保証するためのほぼリアルタイムのパイプラインも含まれているんだ。メンバーが投稿にインタラクトすると、必要なデータを素早く集めて、更新された埋め込みを生成し、即座に推奨に使えるようにしているよ。
LinkedInでのGNNの応用
GNNフレームワークをLinkedInのさまざまなアプリケーションに適用して、その効果を見たんだ。
フォローフィード推奨
フォローフィードでは、GNN埋め込みがユーザーの興味や関係に基づいて投稿をおすすめするのを手助けしているよ。このタスクをリンク予測問題として定義して、メンバーが関与しそうなコンテンツを予測しているんだ。
ネットワーク外の推奨
GNNの応用を拡張して、メンバーの直近のネットワークを超えたコンテンツを推奨しているよ。これで、ユーザーが新しいつながりや関連する投稿を見つけやすくなって、プラットフォームへのエンゲージメントが増えるんだ。
仕事の推奨
仕事の推奨では、GNNを使ってメンバーが応募しそうな仕事を提案しているよ。メンバー、仕事、企業間のつながりを分析することで、メンバーのプロファイルに合った機会を強調できるんだ。
人の推奨
GNNフレームワークは、メンバーに潜在的なつながりを提案するのにも役立っているよ。メンバー間の関係を分析することで、つながると良さそうな人をよりよく推薦できるんだ。
広告の推奨
私たちのGNNモデルは、LinkedInの広告のクリック率を予測するのにも関与しているよ。メンバーと広告コンテンツの間の関係を理解することで、興味のあるユーザーに合わせた広告をターゲティングできるんだ。
実験結果
GNNフレームワークのさまざまなアプリケーションにおける影響を測定するために、いくつかの実験を行ったよ。結果は期待できるものでした:
エンゲージメントの向上: フォローフィードやネットワーク外の推奨などの機能でエンゲージメントメトリクスが向上したよ。
仕事の応募増加: 仕事の推奨は、ポジティブなフィードバックを得られた応募の割合が増えたんだ。
人とのつながりの質向上: システムが推薦するつながりの質が向上して、プラットフォーム上でのネットワーキングが強化されたよ。
広告クリック率の増加: GNN埋め込みが広告のパフォーマンス予測を大幅に向上させて、高いインタラクション率につながったよ。
結論
LinkedInでのGNNを使った取り組みは、さまざまなアプリケーションで効果的であることが証明されたよ。私たちが開発したフレームワークは、トレーニングを加速させるだけでなく、モデルの質も大幅に向上させたんだ。これらの進展によって、より関連性のある推奨ができるようになって、メンバーがより深くつながり、エンゲージできる手助けができてるよ。この開発から得られた経験は、同じようなシステムを自分の組織で実装したい人にとって貴重だと思うよ。
タイトル: LiGNN: Graph Neural Networks at LinkedIn
概要: In this paper, we present LiGNN, a deployed large-scale Graph Neural Networks (GNNs) Framework. We share our insight on developing and deployment of GNNs at large scale at LinkedIn. We present a set of algorithmic improvements to the quality of GNN representation learning including temporal graph architectures with long term losses, effective cold start solutions via graph densification, ID embeddings and multi-hop neighbor sampling. We explain how we built and sped up by 7x our large-scale training on LinkedIn graphs with adaptive sampling of neighbors, grouping and slicing of training data batches, specialized shared-memory queue and local gradient optimization. We summarize our deployment lessons and learnings gathered from A/B test experiments. The techniques presented in this work have contributed to an approximate relative improvements of 1% of Job application hearing back rate, 2% Ads CTR lift, 0.5% of Feed engaged daily active users, 0.2% session lift and 0.1% weekly active user lift from people recommendation. We believe that this work can provide practical solutions and insights for engineers who are interested in applying Graph neural networks at large scale.
著者: Fedor Borisyuk, Shihai He, Yunbo Ouyang, Morteza Ramezani, Peng Du, Xiaochen Hou, Chengming Jiang, Nitin Pasumarthy, Priya Bannur, Birjodh Tiwana, Ping Liu, Siddharth Dangi, Daqi Sun, Zhoutao Pei, Xiao Shi, Sirou Zhu, Qianqi Shen, Kuang-Hsuan Lee, David Stein, Baolei Li, Haichao Wei, Amol Ghoting, Souvik Ghosh
最終更新: 2024-02-16 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2402.11139
ソースPDF: https://arxiv.org/pdf/2402.11139
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://www.acm.org/publications/taps/whitelist-of-latex-packages
- https://ctan.org/pkg/multicols
- https://dl.acm.org/ccs.cfm
- https://grpc.io/
- https://beam.apache.org/
- https://www.slideshare.net/DavidStein1/frame-feature-management-for-productive-machine-learning
- https://engineering.linkedin.com/blog/2022/open-sourcing-venice--linkedin-s-derived-data-platform
- https://wiki.python.org/moin/GlobalInterpreterLock