#NLP2023 の類似論文検索システムを作ってみた
先に結果だけ知りたい人用
以下のサイトにアクセスしてみてください。
例えば NLP2022 の最優秀賞の論文タイトルを入れた場合、以下のようにサジェストされます。
背景
言語処理学会第29回年次大会(NLP2023) の発表件数は過去最多の579件となっているそうです。(国際会議ではもはや当然の風景になっていますが、)これだけ発表が増えると、自分の分野に近そうな論文を探すだけでも大変になってしまいます。
この
論文がどんどん増えていく中で、どのようにすれば自分の興味のある論文を探せるようになるのか
というのは、論文に関する自然言語処理 (scholarly document processing) が取り組むべき課題の一つです。実際に、論文推薦 (paper recommendation) や引用論文推薦 (citation recommendation) といったタスクが研究され続けています。
こうしたタスクに対する最近の流行りのアプローチとして、論文埋め込みモデルを作って、クエリと近い埋め込みの論文を推薦候補にするというのがあります。例えば以下のような研究があります。
このような論文の埋め込みモデルを作るときには、引用-被引用関係や共引用関係にある 2 つの論文を正例とするような対照学習で SciBERT 等を fine-tuning するのが通例です。
しかし、日本語でこれをやろうとしたときに、言語処理学会年次大会の PDF データから引用関係のデータを取ってくるのが難しいという問題があります。
そこで今回はもっと簡易的に、同じテーマの 2 つの論文を正例とすることで対照学習してみました。具体的には https://www.anlp.jp/nlp2022/program.html のような年次大会の Web サイトから、
A1:機械学習(1)
A1-1 Representative Data Selection for Sequence-to-Sequence Pre-training
A1-2 日本語GPTを用いたトークナイザの影響の調査
A1-3 End-to-End 学習可能な記号処理層の検討と数量推論への応用における課題の分析
A1-4 海馬の記憶インデックスに着想を得たリプレイによる言語処理タスクの継続学習
...
という感じで情報が取れるので、A1-1 と A1-2、A1-1 と A1-3、A1-1 と A1-4、A1-2 と A1-3 ... のような同じセッション(ただしポスターセッションを除く)の論文タイトルペアを正例として学習しました(負例は簡易的に in-batch negatives にしました)。これをデモにして動かしているのが冒頭のリンクになります。
興味のある発表を見つける手助けになれば幸いです。
Discussion
有益な記事、ありがとうございます!
類似論文検索システムに非常に興味を持ちました。
こちらのhugging faceに上がっているコード、埋め込みなどを用いて色々と試してみてもよろしいでしょうか?
はい、どうぞご自由にお使いください!