グラフニューラルネットワークに基づく異種グラフ表現学習・推奨アルゴリズムの研究
ディレクトリ構造
GNN-Recommendation/
gnnrec/ 算法模块顶级包
hge/ 异构图表示学习模块
kgrec/ 基于图神经网络的推荐算法模块
data/ 数据集目录(已添加.gitignore)
model/ 模型保存目录(已添加.gitignore)
img/ 图片目录
academic_graph/ Django项目模块
rank/ Django应用
manage.py Django管理脚本
依存関係をインストールする
Python 3.7
CUDA 11.0
pip install -r requirements_cuda.txt
CPU
pip install -r requirements.txt
異種グラフ表現学習(付録)
対照学習に基づく関係認識型異種グラフ ニューラル ネットワーク (RHCO)
実験
Readmeを参照してください
グラフニューラルネットワークに基づく推奨アルゴリズム(付録)
グラフニューラルネットワークベースの学術推薦アルゴリズム (GARec)
実験
Readmeを参照してください
ジャンゴの設定
MySQL データベースの構成
- データベースとユーザーを作成する
CREATE DATABASE academic_graph CHARACTER SET utf8mb4;
CREATE USER 'academic_graph'@'%' IDENTIFIED BY 'password';
GRANT ALL ON academic_graph.* TO 'academic_graph'@'%';
- ルート ディレクトリにファイル .mylogin.cnf を作成します。
[client]
host = x.x.x.x
port = 3306
user = username
password = password
database = database
default-character-set = utf8mb4
- データベーステーブルの作成
python manage.py makemigrations --settings=academic_graph.settings.prod rank
python manage.py migrate --settings=academic_graph.settings.prod
- oag-cs データセットをインポートする
python manage.py loadoagcs --settings=academic_graph.settings.prod
注: 1 回のインポートには長時間 (約 9 時間) かかるため、プロセス中のエラーを避けるために、最初に data/oag/test にあるテスト データを使用してデバッグできます。
静的ファイルをコピーする
python manage.py collectstatic --settings=academic_graph.settings.prod
Webサーバーを起動します
export SECRET_KEY=xxx
python manage.py runserver --settings=academic_graph.settings.prod 0.0.0.0:8000
システムのスクリーンショット
論文を検索する
用紙詳細
学者を検索する
学者の詳細
付録
グラフニューラルネットワークに基づく推奨アルゴリズム
データセット
oag-cs - OAG Microsoft 学術データを使用して構築されたコンピュータ分野の学術ネットワーク ( readmeを参照)
事前トレーニングされた頂点埋め込み
metapath2vec (ランダム ウォーク + word2vec) を使用して、頂点埋め込みを GNN モデルの頂点入力特徴として事前トレーニングします
- ランダムウォーク
python -m gnnrec.kgrec.random_walk model/word2vec/oag_cs_corpus.txt
- トレーニング単語のベクター
python -m gnnrec.hge.metapath2vec.train_word2vec --size=128 --workers=8 model/word2vec/oag_cs_corpus.txt model/word2vec/oag_cs.model
想起
微調整された SciBERT モデル ( readme のステップ 2 を参照) を使用して、クエリ単語をベクトルにエンコードし、事前に計算された論文タイトル ベクトルとのコサイン類似度を計算し、上位 k を取得します。
python -m gnnrec.kgrec.recall
リコール結果の例:
グラフニューラルネットワーク
0.9629 Aggregation Graph Neural Networks
0.9579 Neural Graph Learning: Training Neural Networks Using Graphs
0.9556 Heterogeneous Graph Neural Network
0.9552 Neural Graph Machines: Learning Neural Networks Using Graphs
0.9490 On the choice of graph neural network architectures
0.9474 Measuring and Improving the Use of Graph Information in Graph Neural Networks
0.9362 Challenging the generalization capabilities of Graph Neural Networks for network modeling
0.9295 Strategies for Pre-training Graph Neural Networks
0.9142 Supervised Neural Network Models for Processing Graphs
0.9112 Geometrically Principled Connections in Graph Neural Networks
ナレッジグラフに基づく推奨アルゴリズム
0.9172 Research on Video Recommendation Algorithm Based on Knowledge Reasoning of Knowledge Graph
0.8972 An Improved Recommendation Algorithm in Knowledge Network
0.8558 A personalized recommendation algorithm based on interest graph
0.8431 An Improved Recommendation Algorithm Based on Graph Model
0.8334 The Research of Recommendation Algorithm based on Complete Tripartite Graph Model
0.8220 Recommendation Algorithm based on Link Prediction and Domain Knowledge in Retail Transactions
0.8167 Recommendation Algorithm Based on Graph-Model Considering User Background Information
0.8034 A Tripartite Graph Recommendation Algorithm Based on Item Information and User Preference
0.7774 Improvement of TF-IDF Algorithm Based on Knowledge Graph
0.7770 Graph Searching Algorithms for Semantic-Social Recommendation
学者 曖昧さ回避
0.9690 Scholar search-oriented author disambiguation
0.9040 Author name disambiguation in scientific collaboration and mobility cases
0.8901 Exploring author name disambiguation on PubMed-scale
0.8852 Author Name Disambiguation in Heterogeneous Academic Networks
0.8797 KDD Cup 2013: author disambiguation
0.8796 A survey of author name disambiguation techniques: 2010–2016
0.8721 Who is Who: Name Disambiguation in Large-Scale Scientific Literature
0.8660 Use of ResearchGate and Google CSE for author name disambiguation
0.8643 Automatic Methods for Disambiguating Author Names in Bibliographic Data Repositories
0.8641 A brief survey of automatic methods for author name disambiguation
細かい漕ぎ方
グラウンドトゥルースを構築する
(1) 検証セット
AMiner が発行した 人工知能における世界で最も影響力のある学者の AI 2000 リストから、人工知能の 20 のサブ分野の上位 100 人の学者を獲得
pip install scrapy>=2.3.0
cd gnnrec/kgrec/data/preprocess
scrapy runspider ai2000_crawler.py -a save_path=/home/zzy/GNN-Recommendation/data/rank/ai2000.json
oag-cs データセットの学者と照合し、学者ランキングのグラウンドトゥルース検証セットとして、より高いランクを持つが一致しない一部の学者を手動で確認します。
export DJANGO_SETTINGS_MODULE=academic_graph.settings.common
export SECRET_KEY=xxx
python -m gnnrec.kgrec.data.preprocess.build_author_rank build-val
(2)トレーニングセット
AI 2000の計算式を参考に、特定分野の論文の引用数の加重和に基づいて学者のランキングを構築し、これをグラウンドトゥルースのトレーニングセットとして使用します。
計算式:
つまり、論文に n 人の著者がいると仮定すると、k 番目の著者の重みは 1/k、最後の著者を責任著者とみなし、重みは 1/2 になります。正規化後、著者の数の重み付き合計は、論文の引用数が計算されます。
python -m gnnrec.kgrec.data.preprocess.build_author_rank