コンペティション概要
本コンペでは、論文のタイトル、アブストラクト、キーワードなどの自然言語情報から、その論文が国際学会で採択されるかどうかを予測していただきます。
背景・目的
国際学会での論文掲載は、研究者にとっての重要な節目であり、その実績はその後のキャリアに大きな影響を与えます。
論文が採択される可能性は、文章の質、テーマ、研究の新しさなどが影響します。特に、多くの論文が集まる国際学会においては、始めに査読の目に留まる、アブストラクトの品質が特に重要です。
そこで、本コンペでは、論文本文を含まないタイトル・アブストラクト等の情報が、国際学会の採択率にどの程度影響するかを考察したいと思います。
コンペティションを通して、審査者がどのような判断基準で採択を決定しているのかなどの洞察につながれば幸いです。
賞金
1位:100,000円
締め切り
提出締切 2023年5月7日 22:00 JST
LB公開 2023年5月7日 24:00 JST
ダウンロード
データをダウンロードするにはログインまたはユーザー登録して下さい
概要
コンペに使用するデータは大きく2つです。
- 訓練データ(train_data.csv)
- テストデータ(test_data.csv)
訓練データ、テストデータに、それぞれ4,974件、6,393件のデータが含まれます。
データはICLRに投稿された論文のメタデータを収集して作成したものです。訓練データは2018 - 20年に投稿された論文のデータ、テストデータには2021,22年に投稿された論文のデータが含まれています。
データの形式
column name |
description |
id |
ユニークなid |
title |
投稿論文のタイトル |
abstract |
概要 |
tldr |
"要約" Too Long, Didn't Read |
keywords |
キーワード、カンマ区切り |
y |
論文のカテゴリ、(0: Reject, 1: Accept) |
出典:下記をもとに改変し利用
https://openreview.net/
目標
目標はテストデータセットの論文データにもとづき、採択種別の予測をすることです。yを0,1のいずれかで予測してくだい。
評価指標
- モデルの予測性能はAccuracyで評価されます。
- 評価値は0以上1以下の値をとり、精度が高いほど大きな値となります。
提出ファイルの形式
回答用のsubmission.csvを用意します(エントリーとヘッダー行を含む) 。
提出されたファイルに余分な行や列(idとy以外)が含まれていた場合はエラーとなります。
提出ファイルは以下の列のみを必ず含んでください:
- id(学習データセットのカラムと同じ順序)
- y(予測値 0:Reject, 1:Accept)
以下は提出ファイルの例です。
id,y
1, 1
2, 1
3, 0
4, 0
コンペティションルール
■Open Review Competition
本コンペでは、開催期間終了後 賞金対象者のコードを公開し、ユーザーの皆様にチーティング有無をレビューしていただき順位確定させる、オープンレビュー方式のコンペティションを行います。
賞金対象ユーザー
コンペ終了後1週間以内:
トピックにて、学習過程の分かるコードの公開をお願いいたします。
(簡易解説までつけていただけると助かります。)
コード公開後1週間:
レビュアー(ユーザー)より、チーティングの疑いに関するコメントがある場合は、ご回答をお願いいたします。
※チーティングとは無関係のコメント(ノウハウに関する質疑 等)についてもご回答いただけると幸いですが、順位確定の判断材料とは致しません。
レビュアー(ユーザーの皆様)
コード公開後1週間:
公開コードを確認いただき、チーティングが疑われる場合は、トピックを通して質疑の投稿をお願いいたします。
レビュアーからの質疑と、回答状況をふまえて、最終的に運営側で順位確定を判断します。
■順位決定ロジック
- コンペ期間中はPublicリーダーボード(以下LB)により暫定評価を、最終結果についてはPrivate LBにより評価します。
※ Private LBはコンペ終了と同時に表示されます。
- Private スコア計算に使われるファイルについては、2つまで選択可能です。
※ 未選択の場合は、Public スコアの上位ファイルが提出上限まで自動選択されます。
- スコアが同値の場合は、早い日時に提出いただいたユーザーが上位となります。
- コンペ終了後であっても、不正が発覚の際は、対象ユーザーは失格となり、全体の順位が繰り上がります。
順位繰上げにより賞金対象者となられた場合は、繰上げ日より一週間以内に、トピックにてコードを公開いただき、「Open Review Competition」と同様のフローにて順位を確定させていただきます。
■タイムライン
開始 2022/2/7 0:00 JST
提出締切 2023/5/7 22:00 JST
終了日 2023/5/7 24:00 JST
エントリー締め切り なし
■システム利用
- 参加者ごとに1つのアカウントでご参加ください
- チーム参加の場合は、最大5名までエントリー可能です
- 1日あたり、各チーム最大5回までの提出が可能です
■禁止事項
※コンペ期間中であっても、不正が疑われる場合は、運営より確認のためメール連絡させていただくことがございます。一週間以内にご回答いただけない場合も、不正と判断させていただきます。
■事前学習モデルの使用について
データがリークしてしまう可能性のあるモデル(例: ICLR, OpenReview 等で採択結果・引用数を用いて学習しているモデル)を除き、事前学習モデルの利用は可能です。
判断に迷う場合は、トピック、メール等にて運営にお問い合わせください。利用可否について判断いたします。
■運営からのお願い
公平性の担保、チーティング等の不正防止のため、予告なくルールの追加・変更を行う場合がございます。
ご不便をおかけすることもあるかと思いますが、サービス向上のためご了承ください。
FAQ
このコンペティションでは賞金はでますか?
はい。
最も精度の高い学習モデルを作成した優勝者には、賞金を贈呈します。
順位確定までのプロセスについては、ルール「Open Review Competition」を参照ください。
チームで参加できますか?
可能です。チームページから作成いただけます。
どこでアカウントをつくればいいですか?
こちらから作成いただけます。
コンペティション参加にはアカウント登録が必要となりますのでご注意ください。
外部データ/学習済みモデルを使うことは可能ですか?
本コンペティションの基本情報/データから取得できるデータのみを用いてチャレンジして下さい。
コードを提出するにあたって Seed を固定する必要はありますか?
Seed を固定することが推奨です。
ただし、Seed を固定しなくても提出用コードとしては認めています。
概要
このチュートリアルでは、論文のメタデータに対して
- データの読み込み
- データの確認と前処理
- Scikit-Learnを用いた論文の採択不採択を予測する分類モデルの作成,学習
- 提出用データの作成
を行います。
import pandas as pd
import numpy as np
import sklearn
import gensim
!python3 --version
print(pd.__version__)
print(np.__version__)
print(sklearn.__version__)
import matplotlib
print(matplotlib.__version__)
print(gensim.__version__)
Python 3.10.6
1.5.2
1.23.5
1.2.1
3.6.3
4.3.0
データのロードと確認
まずはデータを読み込んで見ましょう。csvデータの読み込みにはpd.read_csv
関数を用います。
train_file = 'train_data.csv'
df = pd.read_csv(train_file, index_col='id')
データにはid
, タイトル、概要、キーワードが含まれているようです。
データの前処理
論文のタイトルと概要は重要な情報と考えられるのでgensim
を用いてベクトルに変換を行います。
emb_model = gensim.models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
X = []
y = []
for index, data in df.iterrows():
title = data['title']
title = title.replace('-', ' ')
abstract = data['abstract']
emb_title = np.mean([emb_model[w.lower()] for w in title.split(' ') if w.lower() in emb_model], axis=0)
emb_abstract = np.mean([emb_model[w] for w in abstract.split(' ') if w in emb_model], axis=0)
if emb_title.ndim == 0:
emb_title = np.zeros(300)
X.append(np.concatenate([emb_title, emb_abstract], axis=0))
y.append(data['y'])
/opt/homebrew/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3432: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/homebrew/lib/python3.10/site-packages/numpy/core/_methods.py:190: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
X = np.array(X)
y = np.array(y)
X.shape, y.shape
import matplotlib.pyplot as plt
%matplotlib inline
plt.hist(y)
予測モデルの作成,学習
モデルに投入する目的変数(y),説明変数(X)を作成します
いよいよ予測モデルの作成に入ります。
model.fit('説明変数','目的変数')
と記述することでモデルの学習が可能となります。目的変数を説明変数の組み合わせで説明可能な回帰モデルを作成できます。
import sklearn
from sklearn.neural_network import MLPClassifier
model = MLPClassifier()
model.fit(X, y)
分類モデルの評価
モデルの評価
テストデータに対する回帰モデルの当てはまりの良さの指標としてはaccuracy
などの指標が用いられます。
accuracy
の値は、.score
で確認が可能です。
1に近いほど予測された値がデータに当てはまることを表します。
model.score(X, y)
1.0
今回作成したモデルの学習データに対するaccuracy
は1.0
程度でした。
テストデータに対する出力
最後に、作成したモデルを使用してテストデータでの採択不採択を予測します。
test_df = pd.read_csv('test_data.csv', index_col='id')
test_X = []
for index, data in test_df.iterrows():
title = data['title']
title = title.replace('-', ' ')
abstract = data['abstract']
emb_title = np.mean([emb_model[w.lower()] for w in title.split(' ') if w.lower() in emb_model], axis=0)
emb_abstract = np.mean([emb_model[w] for w in abstract.split(' ') if w in emb_model], axis=0)
if emb_title.ndim == 0:
emb_title = np.zeros(300)
test_X.append(np.concatenate([emb_title, emb_abstract], axis=0))
先ほど使用したmodel.predict('説明変数')
の'説明変数'にテストデータの値を代入することで、テストデータの予測値を算出することができます。
下記のようにして、提出用のsubmission.csv
を出力することが可能です。
test_predicted = model.predict(test_X)
submit_df = pd.DataFrame({'y': test_predicted})
submit_df.reset_index(drop=True)
submit_df.index += 1
submit_df.index.name = 'id'
submit_df.to_csv('submission.csv')
「研究論文の国際学会採択予測」コンペティション参加規約
コンペティションへの参加に際しては、ProbSpace利用規約(以下、「利用規約」といいます。)に加え、本ProbSpace参加規約(以下「本規約」といいます。)に同意いただく必要があります。利用規約にて定義された用語は、本規約においても同様の意味で用いられるものとします。
第1条(適用)
- 参加者(第2条に定義します。)は、コンペティションに参加した時点で、本規約、利用規約、その他ご同意いただいた規約のすべて、及びコンペティションサイトに掲載されているコンペティションに関するルールの一切に同意したものとみなされます。
- 本規約、利用規約、その他ご同意いただいた規約のすべて、及びコンペティションサイトに掲載されているコンペティションに関するルールは、コンペティションの終了後も参加者に適用されます。
第2条(定義)
本規約において次の各用語の定義は、それぞれ以下に定めるとおりとします。
- 「本コンペ」とは、当社ウェブサイト上で開催されるAI開発又はデータ分析等に関するコンペティションのうち、本規約に紐づく特定のコンペティションを意味します。
- 「主催者」とは、当社またはユーザーのうち、本コンペを主催する者を意味します。また、本コンペが、当社の顧客又は提携先の企業、学校その他の団体等がスポンサードするものである場合は、当該団体等も主催者の定義に含まれます。
- 「参加者」とは、ユーザーのうち、主催者側以外の立場で本コンペに参加する方を意味します。
- 「成果物」とは、本コンペにおいて参加者により開発される学習済みモデル、そのソースコード及び乱数シード等の設定値を意味します。
- 「入賞者」とは、当社より本コンペに入賞した旨の通知を受けた参加者を意味します。
- 「知的財産権」とは、著作権(著作権法第27条及び第28条に定める権利を含みます。)、特許権、実用新案権、商標権、意匠権、その他のノウハウ及び技術情報等の知的財産権(それらの権利を取得し、又はそれらの権利につき登録等を出願する権利を含みます。)を意味します。
第3条(権利の帰属)
- 本コンペで発生した成果物に関する知的財産権は、参加者に帰属します。
第4条(入賞者の義務)
- 入賞者は、本コンペで公開した成果物を、MITライセンスを適用し、商用利用の許諾条項及び著作権人格権の包括的不行使条項をライセンス条項に付与した形式で、オープンソースソフトウェアとして公開する義務を負うものとします。その前提として、入賞者は、成果物について本項に基づく方法でオープンソース化する権利を有していることを当社に対して表明保証するものとします。
※第三者が、授業・研修・セミナー等で活用できるようにするための規約となります。ご理解のほどよろしくお願いいたします。
- 当社は、以下の3点の確認が完了した時点で、本コンペの賞金または商品を、入賞者に対して授与するものとします。
- 入賞者が、前項に基づいて成果物のオープンソース化を実施したこと
- 入賞者が、本規約、利用規約、その他ご同意いただいた規約のすべて、及びコンペティションサイトに掲載されているコンペティションに関するルールの一切に違反していないこと
- 当社が定める方法による本人確認
- 当社は、入賞者が第1項に基づいてオープンソース化した成果物を、自由に商用利用することができます。
第5条(禁止事項)
- 参加者は、本コンペにおいて、以下の各号のいずれかに該当する行為を行ってはならないものとします。
- クラッキングやチート行為、なりすまし、盗用等の不正行為
- 第三者の知的財産権その他の権利を侵害する内容ないし態様で、参加者公開事項を公開する行為
- 主催者(当社以外の者に限ります。)に対する直接連絡、相談、依頼、勧誘、勧誘対応等の活動(但し、当社を介して当社が認めた方法により行うものは除きます。)
- 本コンペにおいて、当該コンペと直接関係のない成果物等を提出すること
- 本規約における参加者としての地位又は参加者としての権利義務について、譲渡、移転、担保設定、その他の処分をすること
- その他、本規約、参加ルール及び利用規約に違反する行為
- 参加者が前項に規定する禁止行為を行ったと当社が認める場合、当社は、当該参加者に事前に通知することなく、当該参加者の本コンペにおける失格処分、当社サービスの全部又は一部の利用停止、ユーザー登録の抹消、その他当社が必要と判断した措置をとることができるものとします。
第6条(本コンペの変更、中断、終了等)
- 当社は、参加者に事前の通知をすることなく本規約に基づく本コンペの開催内容の変更、本コンペの一時的な中断又は終了を行うことができます。
- 当社は、本条に基づき当社が行った措置により生じた結果及び損害について、一切の責任を負わないものとします。
第7条(損害賠償)
- 参加者は、本コンペに関連して、自らの責に帰すべき事由により、当社、主催者その他の第三者に損害を与えた場合には、その一切の損害(逸失利益、弁護士費用を含みます。)を賠償するものとします。
- 参加者が本規約の規定に違反したことにより主催者(当社を除きます。)その他の第三者が当社に対して何らかの訴え、異議、請求等がなされた場合において、当社から処理の要請がなされたときは、参加者は自己の責任と費用負担において、当社に代わって当該第三者との紛争を処理するとともに、当社がかかる訴え、異議、請求等により被った一切の損害(逸失利益、弁護士費用を含みます。)を賠償するものとします。
第8条(本規約の変更)
当社は、必要と判断した場合には、参加者に対して事前に通知する(本コンペにかかる当社ウェブサイト上での告知その他当社が適当と認める方法を含みます。)ことにより、いつでも本規約を変更することができるものとします。なお、変更内容の通知後、参加者が当社の定める期間内に本コンペへの参加を取り消す手続をとらなかった場合には、当該参加者は変更後の規約に同意したものとみなされます。当社は、本規約の変更により参加者に生じたすべての損害について一切の責任を負いません。
第9条(その他)
本契約の準拠法は日本法とし、本契約に起因し又は関連する一切の紛争については、当社の本店所在地を管轄する裁判所を第一審の専属的合意管轄裁判所とします。
(制定)2020年6月22日