CVPRの論文の被引用数を分析・予測してみた
CVPR2022・2023で採択された論文の被引用数を分析し、GitHubリポジトリやArxivでの公開が引用数に与える影響を調査しました。結果、これらの要因が引用数の増加に有意に寄与しており、Embeddingを用いたモデルで被引用数をある程度予測できることが示唆されました。
目次
はじめに
- CVPR2022, 2023にアクセプトされた論文がその後どのような被引用数を辿ったのかを分析してみた
- 最終的に被引用数の予測を試してみたが、その過程でEDAとしてGitHubリポジトリの有無、Arxivの公開の有無を変数として関係性を調べてみた
- CVPRのデータはHuggingFaceに公開されているもの、被引用数のデータはSemantic ScholarのAPIを使用
結論
- 被引用数はかなり対数正規分布(あるいはべき分布)に近い形をしている。CVPRにアクセプトされた論文であっても、2年で10~数十の引用が中央値
- HuggingFaceに公開されているデータの範囲内では、GitHubのリポジトリの有無、Arxivの公開の有無が全て有意に引用数の増加に寄与している。ただ、元データに記載されているGitHubのリポジトリの有無がどの程度カバーしきれているかが疑問がある(実際はGitHubのリポジトリがあるのに、元データに書いていないケースが十分想定される)ので慎重に議論する必要がありそう。
- Semantic ScholarのAPIで提供されているEmbedding(specter_v2)を用いて、ロジスティック回帰で被引用数のグループを予測してみた。具体的には上位20%、20%~40%、……、下位20%のような5グループに分割し、その分類モデルを訓練した。
- その結果、精度は低いものの(CVPR2022で訓練し、2022で推論した場合はテスト精度28%)、混合行列には一定の傾向は見れて、「引用されやすい論文かそうでないか」の傾向はEmbeddingで一定わかることが示唆できた。
関連研究
(※Arxivの検索APIをRAGした結果をそのまま出力)
論文の引用数を予測する研究は複数存在し、それぞれ異なるアプローチを取っています。以下に、提示された論文から引用数を予測する研究を、その手法や特徴を比較しながらまとめます。
1. 従来手法の限界と多タスク学習アプローチ (Dynamic technology impact analysis: A multi-task learning approach to patent citation prediction)
Dynamic technology impact analysis: A multi-task learning approach to patent citation prediction では、従来の機械学習モデルが技術の影響の動的な性質とその相互依存性を捉えられない点を指摘し、多タスク学習(MTL)アプローチを提案しています。この手法は、異なる時間枠にわたる知識共有と技術的影響の進化の監視によって予測精度を向上させます。特許指標に基づいて引用数を予測するMTLモデルを開発し、SHapley Additive exPlanation (SHAP)法を用いてこれらの指標の変化を分析することで、予測精度向上と技術的影響に関する深い洞察の両方を提供します。
2. BERTベースモデルによる論文本文の活用 (CiMaTe: Citation Count Prediction Effectively Leveraging the Main Text)
CiMaTe: Citation Count Prediction Effectively Leveraging the Main Text は、従来の手法が論文の長い本文を効果的に機械学習モデルに取り込むのに苦労していた点を解決するために、論文の本文のセクション構造を捉えるBERTベースのモデルCiMaTeを提案しています。計算言語学と生物学の分野での実験により、CiMaTeは従来の方法よりも高いSpearmanの順位相関係数を達成し、引用数予測における有効性を示しています。
3. 論文アブストラクトのテキスト埋め込みによる予測 (Predicting citation impact of research papers using GPT and other text embeddings)
Predicting citation impact of research papers using GPT and other text embeddings では、4万件以上の論文のアブストラクトを分析し、GPTやTF-IDFなどのテキスト埋め込み技術と教師あり機械学習アルゴリズムを用いて引用数の予測を試みています。ランダムフォレストが最高の予測精度(上位20%の論文の識別で80%)を示し、アブストラクトで扱われているトピックが、著者や機関のバイアスとは独立して引用数を予測する上で重要であると結論付けています。
4. 動的異種グラフとノード重要度の活用 (Modeling Dynamic Heterogeneous Graph and Node Importance for Future Citation Prediction)
Modeling Dynamic Heterogeneous Graph and Node Importance for Future Citation Prediction では、学術ネットワークの動的な性質と個々の論文の重要性の違いを考慮したDynamic heterogeneous Graph and Node Importance (DGNI)フレームワークを提案しています。動的異種ネットワーク埋め込みモジュールとノード重要度埋め込みモジュールを組み合わせることで、対数正規分布を用いて将来の引用数を予測します。大規模データセットでの実験により、DGNIは最先端のモデルを上回る引用数予測精度を示しています。
5. 拡散、コンプライアンス、貢献の分離による予測 (Predicting Scientific Impact Through Diffusion, Conformity, and Contribution Disentanglement)
Predicting Scientific Impact Through Diffusion, Conformity, and Contribution Disentanglement では、論文の引用を拡散、コンプライアンス、貢献の3つの要素に分解するDPPDCCモデルを提案しています。動的異種グラフを用いて知識の流れを捉え、引用数の増加をより効果的に予測します。補助タスクと直交制約を用いて、各要素の貢献を明確に区別しています。
これらの研究は、それぞれ異なるデータセット、特徴量、アルゴリズムを用いて引用数を予測していますが、いずれも従来の手法よりも高い精度を目指しており、学術研究における影響力の評価に役立つ可能性があります。 特に、本文の活用や動的ネットワークの考慮、そして複数の要因の分離といったアプローチは、より正確な予測に繋がる重要な要素であると考えられます。
==ここまでGPT==
Embeddingと被引用数の関係は関連研究3で指摘されているもので、今回はその結果を追試した形。
CVPRのデータセット
CVPRのデータはHuggingFaceのデータセットとして公式で公開されており、公式ページをスクレイピングする必要はない
2022はSpacesのデモアプリとして公開されており、このアプリは現在は壊れているが、ソースコードから元データをダウンロードできる。
このデータには主に以下の項目が含まれている。他にもあるが、今回使ったのは主に以下の項目
- 論文のタイトル
- GitHubリポジトリのリンク
- ArxivのIDやリンク
Semantic ScholarのAPI
ただ、これだけでは引用数が取得できないので、Semantic ScholarのAPIを使って各論文の引用数を取得する。データは2024年12月時点のもの。
Semantic ScholarのAPIは無料ででき、無料プランだと5分間に100リクエストを送れる。また、1000RPSを非認証のユーザーでシェアしている。3.5秒ぐらい待ってもスロットリングがかかることが多いので、根気よくデータを集めるのが必要。
Most Semantic Scholar endpoints are available to the public without authentication, but they are rate-limited to 1000 requests per second shared among all unauthenticated users. Requests may also be further throttled during periods of heavy use.
Semantic ScholarのAPI Reference
リクエストは次のように送れる。クエリはCVPRのデータセットの各論文のタイトルとして、アブストラクト、要約、被引用数、論文内の引用数、Embedding(specter_v2)を取得した。
# Semantic Scholar APIのエンドポイント
url = "https://api.semanticscholar.org/graph/v1/paper/search"
# クエリパラメータの設定
params = {
"query": query,
"limit": limit,
"fields": "title,abstract,tldr,citationCount,references,embedding.specter_v2" # 取得するフィールドを指定
}
# GETリクエストを送信
response = requests.get(url, params=params)
CVPRのデータにある論文タイトルで検索したものの、Semantic Scholarの検索結果に目的の論文があるとは限らない。検索のトップ3の中から、論文タイトルの編集距離による類似度を計算し、それが0.9以上のものを「見つかった」として、選択した。この距離関数はTF-IDFも検討したが、編集距離のような原始的な距離のほうがよかった。完全一致でないのは、たまに論文のタイトルが変わっていたり表記揺れしていることがあるため。以下のコードで計算した
rom rapidfuzz import fuzz
def sentence_similarity(sentence1, sentence2):
# 前処理: 小文字化してトリミング
s1 = sentence1.lower().strip()
s2 = sentence2.lower().strip()
# 類似度スコアを計算(0から100)
score = fuzz.ratio(s1, s2)
# 0から1のスケールに変換
normalized_score = score / 100.0
return normalized_score
データ分析(EDA)の結果
分析結果だけをサクッと示していく。
被引用数は非常に世知辛い分布をしている
最初がリニアなヒストグラム、次が被引用数に1を足して10を底とした対数のグラフ。
結果はなんとも辛い形で、たとえCVPRにアクセプトされた論文であっても、その多くが引用されていなく、CVPR2022の場合は、2年経っても10も引用されていないであろう論文(対数で1.0)が一定存在する。被引用数が100超えはほんの一握り。この母集団はアクセプトされたものであるため、リジェクトされた論文も含めればさらに惨憺たる結果になることは想像に難くない。
被引用数の対数を取るとほぼ正規分布。
ArxivとGitHubはいずれも被引用数に有意だが、見せかけの相関に注意が必要
CVPRの公式データセット上に記録されている、Arxivの有無、GitHubリポジトリの有無をダミー変数(0, 1)として被引用数の対数を比較してみた。各タイトルにはMann-Whitney U検定のp値を記録している。
結果は、GitHubもArxivも全てp値が0で強く有意で、GitHubリポジトリを用意する / Arxivを用意すると被引用数が伸びやすくなることがデータからはわかる。
ただ、このCVPRの公式データセットに記録されている特にGitHubのデータがどの程度信頼できるかが未知数で、特にCVPR2022は、「公式データセットには乗っていないが実はGitHubリポジトリが存在する」ケースがかなりあると思われる。公式データセットがどのようにリポジトリを名寄せしたのかが不明だが、おそらく投稿時のオプションデータとして入れたものとしたら慎重に考える必要がありそうだ。
最初からGitHubリポジトリを用意するような論文はそもそも意識が高くてPR戦略がしっかりしているのだから、被引用数は伸びて当たり前。結局そこの意識がしっかりしているかの差であって、GitHubの有無は見せかけの相関である可能性が否定はできない。ここはGitHubの検索などで実際に存在するリポジトリを書き出して名寄せすれば追試できるが、大変なので暇があったらやることにする。
ただ、仮説としては「GitHubがあればみんな試すし、注目されやすくなるし、Arxivがあればそこを追っている人は多いから引用はされやすくなる」というのは直感的にとても理解しやすい。おそらく無関係ということはないかと思われる。
論文内での引用数と被引用数はあまり関係なさそう
論文内での被引用数と被引用数を見てみた。横軸が論文内の引用数で、縦軸が被引用数の対数。「スケールが異なるのがいいのか?」という指摘もあるだろうが、論文内での引用数は指数的に上がるということはほぼないかと思われる。
「情けは人の為ならずで、論文内でいっぱい論文を引用すれば、恩返し的に自分の論文も引用してくれるんじゃ」という淡い期待もあるかもしれない。弱い傾向はありそうだが、そこまで明確には出ていない。結局、「いっぱい先行研究を引用した論文は大作であって、そもそも引用されやすい」と説明できそうなので、論文内での引用数はさほど大きなファクターではなさそうだ。一定以上引用していればおそらく大丈夫なのだろう。
Embeddingからの被引用数の予測
分類手法
Semantic ScholarのAPIからはspecter_v2
という専用のEmbeddingモデルでのベクトルが取得できる(元ネタはHuggingFaceで公開されているこのモデル?)。このEmbeddingの値から被引用数を予測してみる。予測は以下のようにする。
- CVPR2022、2023について、それぞれの年内の被引用数をソートし、5階級に分類する。つまり、上位20%、20%~40%、……、下位20%の5クラスにラベリングし、擬似ラベルとする。
- CVPR2022の被引用数とEmbeddingがあるデータのうち(2063件)、ランダムを8割を訓練データ、2割をテストデータとする。
- 予測は以下の2つを試す
- CVPR2022の訓練データで訓練し、CVPR2022のテストデータで推論する(同一年度)
- CVPR2022の訓練データで訓練し、CVPR2023の全体データで推論する(年度またぎ)
- 分類器は、Embeddingを正規化(StandardScaler)し、ロジスティック回帰するだけの簡単なモデル
CVPR2022の訓練データ vs CVPR2022のテストデータ(同一年度)
訓練データのサンプル数: 1650
テストデータのサンプル数: 413
訓練精度: 0.96
テスト精度: 0.28
分類レポート:
precision recall f1-score support
1 0.34 0.39 0.36 83
2 0.25 0.27 0.26 86
3 0.27 0.25 0.26 80
4 0.23 0.22 0.23 86
5 0.31 0.28 0.30 78
accuracy 0.28 413
macro avg 0.28 0.28 0.28 413
weighted avg 0.28 0.28 0.28 413
見かけのテスト精度は低い(28%)が、混同行列を見ると濃淡が対角線上に分布しており、一定傾向が取れていることがわかる。
CVPR2022の訓練データ vs CVPR2023の全体データ(年度またぎ)
テスト精度: 0.28
分類レポート:
precision recall f1-score support
1 0.36 0.44 0.39 478
2 0.25 0.25 0.25 497
3 0.21 0.18 0.20 463
4 0.26 0.24 0.25 479
5 0.30 0.29 0.30 422
accuracy 0.28 2339
macro avg 0.28 0.28 0.28 2339
weighted avg 0.28 0.28 0.28 2339
興味深いのは年度をまたいだ例で、CVPR2022のデータで訓練し、CVPR2023のデータで推論しても同じような精度をしていることだ。濃淡は若干ぼやけているが、ある程度はEmbeddingだけで読めるということになる。「この論文は良い論文、悪い論文」というのは慣れた研究者だと直感的にわかってしまうが、それがEmbeddingに出ているということなのかもしれない。
番外編(OpenAIのEmbeddingを使う)
これはCVPR2022の訓練 vs CVPR2022のテストで、「タイトル+アブストラクト」でOpenAIのEmbeddingをとった例。精度はSemantic ScholarのEmbeddingより下がっている(テスト精度0.26)。Semantic ScholarのEmbeddingがどのような方法で計算したかがわからないが、とりあえずAPIの結果をそのまま使うでも良さそうだ。
番外編
GPT(o1)にこの原因の仮説案を出させたら面白いことを言ってきた。
===
- 研究インパクトの高い論文ほどGitHub・arXivで早期公開されやすい
- 仮説の概要
高インパクト(=将来引用が伸びる)論文ほど、リサーチコミュニティに早期に情報を発信する意欲・体制が整っており、GitHub・arXivの公開率が高い。 - 根拠・背景
- 両方を公開しているグループの中には高引用数を獲得している論文が多い。
- コード・プレプリントの早期公開はコミュニティに与えるインパクトを高める施策として広く行われる。
- 検証方法
- 発表前のarXiv公開時点のダウンロード数やスター数(GitHub)など、早期反響データとの相関を調べる。
- 論文の著者の研究体制(企業研究所か、オープンソース文化が根付いた大学かなど)を含めて、公開意欲との因果関係を検証する。
おわりに
- GitHubとArxivがかなり明確に効いてそうで驚いた。GitHubは見せかけの相関部分をもう少しちゃんと調べてみる必要がありそう。
- Embeddingからでは予測できないだろうと思ったが、混同行列を見ていると一定読めているようで驚き
- 被引用数の予測も良いが、「Code will be avaliable soon」とか言って放置しているリポジトリもあるので、本当に有益なOSSを公開しているリポジトリをフィルタリングする方向が実務的には有益そう
- データ分析のコード作成をひたすらo1-miniにやらせたのだが、いい感じにやってくれてとても助かった。(o1-miniでここまでできてしまうとデータサイエンティストが食っていけるのだろうか)
Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内
技術書コーナー
北海道の駅巡りコーナー