グラフニューラルネットワークに基づく異種グラフ表現学習・推奨アルゴリズムの研究

グラフニューラルネットワークに基づく異種グラフ表現学習・​​推奨アルゴリズムの研究

ディレクトリ構造

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 データベースの構成

  1. データベースとユーザーを作成する
CREATE DATABASE academic_graph CHARACTER SET utf8mb4;
CREATE USER 'academic_graph'@'%' IDENTIFIED BY 'password';
GRANT ALL ON academic_graph.* TO 'academic_graph'@'%';
  1. ルート ディレクトリにファイル .mylogin.cnf を作成します。
[client]
host = x.x.x.x
port = 3306
user = username
password = password
database = database
default-character-set = utf8mb4
  1. データベーステーブルの作成
python manage.py makemigrations --settings=academic_graph.settings.prod rank
python manage.py migrate --settings=academic_graph.settings.prod
  1. 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 モデルの頂点入力特徴として事前トレーニングします

  1. ランダムウォーク
python -m gnnrec.kgrec.random_walk model/word2vec/oag_cs_corpus.txt
  1. トレーニング単語のベクター
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

おすすめ

転載: blog.csdn.net/pythonyanyan/article/details/134795858
おすすめ