retarfiの日記

自然言語処理などの研究やゴルフ、音楽など。

社会人博士を無事に3年で卒業しました

以前社会人をやりながら博士課程に入学した記事を書きました。

retarfi.hatenablog.jp

半年ほど前にはなりますが、2025年9月に無事卒業したので社会人博士としての経過をまとめておきたいと思います。
博士進学当時の状況や進学直後の状況は上記の記事をご覧下さい。
以下ではいくつかの観点から社会人博士としての生活を記載します。

業績について

所属大学や専攻に寄りますが、私が所属していた東京大学大学院工学系研究科では、暗黙的にジャーナル3本を目安とした業績やそれに相当する内容が博士論文として必要になります。
私は2022年3月に同じ研究科・専攻・研究室で修士課程を卒業してから、修士論文に(時間の都合で)記載できなかった内容を同年10月の入学時まで実験や分析を拡張し、たまたまトピックの合う国際ジャーナルの特集号があったこともあり投稿していました。10月に入学して比較的すぐの11月に採択され、それが1本となったことが最終的に3年で卒業できた大きな要因となりました。 しかし3本目のジャーナルは、国際会議ではありますが予備審査の約1年前に内容としては完成していたにもかかわらず、国際会議に出していたりジャーナルの査読者がつかなかったりでreviewが初めて返ってきたのが卒業後の2025年12月になってしまいました。
予備審査・本審査の時点では2本採択・1本投稿中というステータスだったので、上出来だったとは言えないです(一応会社で書いていた採択済ジャーナルや国際会議論文は他にありましたが)。
博士進学前のブーストを使ってもこのような感じだったので、社会人博士の本学での卒業という観点でジャーナル3本をきれいに揃えるためには、常にジャーナルに投稿していくのが望ましいように思いました。
私の最初の2本はともに特集号なので、可能であれば特集号だと採択までの流れが早いです。

社会人生活との両立について

会社と家族の理解があった
これに尽きます。逆にこれがなかったら卒業できなかったと思います。
会社は国内/国際学会の発表を業務とみなしてくれ、モチベーションの維持につなげることができました。
業務量が調整できたり裁量のある環境でなければ、結構大変だと思います。

個人的には博士卒業に必要な研究以外も寄り道を結構したので、卒業だけを見ればもっと効率的にできたかもしれませんが、私としては(reject数が少ないのでまだまだ足りないとは思いますが)色々失敗もできたので良い経験になったかなと思っています。

個人的に大変だったこと

  • 一番相談に乗ってもらっていた教員の異動
  • 研究が右肩下がりだったこと
  • 卒業直前の7月に単位の不足が判明したこと

1点目はコミュニケーションの問題ではあるのですが、学部・修士で研究テーマ的に指導教員よりもお世話になっていた研究室の2番めのポジションの先生が栄転することになり、研究室内で直接コミュニケーションを取ることが難しくなりました。
(博士卒業に関係ない寄り道の内容含め)リモートで色々打ち合わせをしていたものの、指導教員としては目の届かないところで勝手に進めているように映ってしまい、あるタイミングから博士研究としての内容については個人的に打ち合わせをするな、ということを伝えられました(背景には他の内容もあるのですがここでは割愛します)。
博士研究は自分で切り開かないといけない、というのはもっともなんですが、それでも一番議論してもらっていた方を失ったのは大きかったと思います。
これは2点目にも影響があったと思います(もちろん大部分は私の力不足によるものですが)。

最後の点は私の確認ミスなんですが、修士2年の最終学期に博士で必要な単位として12単位(所属研究科とそれ以外の研究科の混合)を取得しました。
博士の卒業に必要な講義の単位は10単位なので、余裕を持った設計にしたつもりでした。
ここに罠が2つあって、博士での必要単位として参入できるのは同じ研究科のものだけのようで、修士卒業時にどの単位を修士の卒業単位とするかを指定することで、明示的に所属研究科の単位を修士の卒業単位として使用しない必要があったそうです。
特にアナウンスがなかったのでそのままいい感じにしてくれると思ったのですが、卒業時に比較的所属研究科のものが使われ、残った単位の中に所属研究科のものが足りず、単位が不足する自体になってしまいました。
修士から博士進学を考えていて単位も流そうとしている方は、学務に(面倒がられようとも大事なことなので)ちゃんと確認したほうが良さそうです(1敗)。

博士を取ってみて

給料は上がりませんでした!
ただ客員研究員などを通して現在も研究を続けられているので良かったのかなと思います。
前述の別記事にも書きましたが、博士にストレートで進学することが金銭的や精神的などの理由でしんどそうと感じる方には、1つの折衷案かなとは思います。
結構社会人博士の方も増えているので色々相談先はあるかと思いますが、ご相談があれば私にお声がけいただいても構いません。

最後に修士を卒業してから直近までの投稿などの履歴をまとめておきます。

投稿・採択・不採択履歴(クリックで開閉します) 履歴は主著に限っています。R1のようにRと数字で書いているものは博士論文に関係のあるResearch内容、O1のようにOと数字で書いているものは博士論文に関係のないOptionalであったり会社で書いていた内容です。

2022年

6月: 国際ジャーナル特集号 (R1) 投稿
8月: 国際ジャーナル (R1) major revision
9月: 国際ジャーナル (R1) revision 投稿
11月: 国際ジャーナル (R1) 採択

2023年

1月: 国内会議 (R2) 投稿
2月: 国内会議 (R3) 投稿
8-9月: 国内シンポジウム・研究会 (O1) 発表
9月: 国際会議 (IEEE Big Data, O1) 投稿
10月:
- 国際会議 (O1) 採択
- 国内ジャーナル特集号 (R2) 投稿
12月: 国際会議(O1)発表

2024年

1月: 国内ジャーナル (R2) major revision
2月: 国内会議 (O2) 投稿
3月: 国内ジャーナル (R2) revision 投稿
4月:
- 国内ジャーナル (R2) 採択
- ACL ARR (R4) 投稿
6月: 国際ジャーナル (O2) 投稿
7月:
- 国際会議 (EMNLP Insudstry Track, O3) 投稿
- ACL ARR (R4) reviewed. 評価が低かったのでARR経由での投稿はせず。
9月:
- 国際会議 (IEEE Big Data, O4) 投稿
- 国際会議 (COLING, Short Paper, R4) 投稿
- 国際ジャーナル (O2) minor revision
10月:
- 国際会議 (EMNLP Insudstry Track, O3) 不採択
- 国際会議 (COLING Industry Track, O3) 投稿
11月:
- 国際会議 (IEEE Big Data, O4) 採択
- 国際会議 (COLING Short Paper, R4) 不採択
- 国際会議 (COLING Industry Track, O3) 不採択
- 国際ジャーナル (O2) revision 投稿
12月:
- 国際会議 (WWW Resource Track, O3) 投稿
- 国際ジャーナル (O2) 採択

2025年

1月:
- 国際会議 (WWW Resource Track, O3) 採択
- 国際ジャーナル (R4) 投稿
4月: 国際ジャーナル (R4) withdraw (reviewerが全然つかないため)
5月: 別の国際ジャーナル (R4) 投稿 and desk reject (今でもこれは納得がいかない)
6月:
- さらに別の国際ジャーナル (R4) 投稿
- 国際会議 (CIKM Resource Paper, O5) 投稿
8月: 国際会議 (CIKM Resource Paper, O5) 不採択
9月: 博士卒業
10月: 国際ワークショップ (O5) 投稿 and 採択
11月: 国際会議 (WWW Short Paper, O5) 投稿
12月: 国際ジャーナル (R4) minor revision

2026年

1月:
- 国際ジャーナル (R4) revision 投稿
- 国際会議 (WWW Short Paper, O5) 不採択
2月:
- 国際ジャーナル (R4) 採択
- 国際会議 (SIGIR Resource Track, O5) 投稿
4月: 国際会議 (SIGIR Resource Track, O5) 採択

YANS委員を退任しました

2025年4月より2年間務めた言語処理若手シンポジウム(YANS)の運営委員を退任しました。 一応区切りとしては年度末ですが、YANS懇(懇親会)が終わったので交代ということになります。

yans.anlp.jp

最初のきっかけとしては所属していた研究室のつながりで委員になることになりまして(実は推薦されてからなるまでに間は空いている)、編成係として主にConfitという参加登録のサービスの設定に携わりました。
委員1年目にConfitが初めて導入となったので色々大変だったりしましたが、やってよかったと思うことが何点かあったので残しておきます。
なお、この話は私がいるコミュニティに限った話かもしれないので一般化はできません。
また委員退任の懇親会の勢いで書いていますので、何か問題のある記述や誤りがあった場合は修正するかもしれません。

①知り合いが増える

懇親会行けば増えるのでは、というのはごもっともなんですが、そのような会で社交的に交流することがあまり得意でない人は、委員の仕事をすることで同じ委員との交流が必ず発生します。
色々大変なこともあるのでそれを一緒に乗り越えたり進めていくことで、かなり信頼感のある繋がりを得られたと感じています。
個人的にはこれが一番大きくて、委員を始める前よりも年次大会で話せる人が格段に増えました。

また委員をやっていることで多少は認知もされるはずなので、トップカンファレンスがない私のような人でも話のネタにはなると思います。

②コミュニティに貢献できる

ある研究コミュニティがあったときに、そのコミュニティでトップとされる論文(トップカンファレンス・ジャーナル)としてパブリッシュすることが多くの人のまず目指すところだと思います。
私個人としては数度挑戦して、自分には難しい世界だということを強く感じました。
その一方で研究のコミュニティは会社内にいるだけでは得られない交流ができるので、大変ありがたいです。
そのありがたいコミュニティにもう少し長くいるための別の方法としての、コミュニティへの貢献の形のために委員をする、というのも良いのではないかと思います。
もちろんトップカンファレンス・ジャーナルに委員をやりながら通している人もいるのですが、そうでない人にとってもコミュニティにいて良い理由の1つになりうると思います(年のためですが委員にならないとコミュニティにいてはいけない、ということを主張するものではないです)。
私は研究分野的に言語処理を応用するところなので、どちらかというと言語処理学会の中心とは言えないと思っているところがあり、そのような自分にも居場所ができたような気持ちになれました。
個人的には色々作業をするのは楽しかったです。

③運営の裏側を知ることができる

これはぜひやって頂いて体感するのが良いと思うのですが、学会の動きがわかることで、例えばそのシンポジウムや年次大会でうまく行っていない部分があっても大変なんだろうな、と思えると思います。
委員になってからそれを経験してこられた先生方の動きを見ていると、気遣いをされているようなムーブを感じることができます。
あたたかい気持ちでシンポジウムや大会に参加されることで、より良い雰囲気の運営に繋がっているのではないかと思います。

ちなみに、人によっては良くないであろうこともあると思うので書いておきます。

(1) タダ働き

各所で言われていることではあると思いますが、ボランティア活動です。
ある程度まとまった時間を(特に会期直前)投入しますが、自分の懐は1円たりともあったまりません。
誰かの犠牲の上に成り立っているといえばそうなので歪みみたいなのはあると思いますが、ここでは特に言及しません。
また委員をやっていても旅費が出るシンポジウム・大会は少ないので、金銭的なメリットは全く無いと思って良いでしょう。

(2) 大変・休日が減る

社会人として働いている人は業務時間外でやることがあったり、シンポジウム直前は曜日に 限らずやらねばならないことも出てくるので、休日をきちんと取ってリフレッシュ等したい方には向いていないと思います(尤も、私の仕事の効率が悪いため、という可能性もあります)。
またライフステージの変化(転職・転居をはじめとしたライフイベント)があると両立が難しかったりすると思うので、その辺りも考慮したほうが良さそうです。
私の場合、幸い会社の仕事の強度が高すぎないため、社会人博士と並行しても問題なく続けられました。
なお、社内評価には一切プラスに働いていないと思いますが。。

(3) 委員の仕事が継続的に来てしまう(らしい)

これはそのままです。(1)が断続的に続くということにもなります。
ちょうど私も、前述したYANSの委員が終わる前に言語処理学会の年次大会の実行委員のお話をいただきました。
現在言語処理学会の年次大会の会期中で、私はSlackの運営を担当しています。

言語処理学会第32回年次大会(NLP2026)

この次は研究会の委員の話があるので、こうして終わらない委員の旅が始まるのかもしれません。

色々と書きましたが、(ボランティアとして)委員について少しでも興味を持って貰えれば幸いです。
少なくとも私は今のところやって良かったと思っているので、当分はお手伝いさせていただくつもりです。
やってみたい、と思う方は私にお声がけいただければ紹介できるかもしれません(私はまだペーペーなので、お繋ぎする程度だとは思います)。

現在23時という、明日9時集合のためには早めに準備をしたほうが良い時間ではありますが、年次大会のSlack担当として会期中早めにやっておくべきことが見つかったので、これから実装したいと思います。。。

Pythonのsqlite3のconnオブジェクトはwith句では自動で閉じない

Pythonでsqlalchemyを使っていると、以下のように読み取ることがある。

import pandas as pd
import sqlalchemy

engine = sqlalchemy.create_engine(...)
with engine.connect() as conn:
    df = pd.read_sql_query(query, conn.connection)

ここのwith句ではconnは自動で閉じるので、sqlite3でも同じようなものだと思っていた。

しかし、sqlite3.connectで得られるconnはwith句では閉じないので、明示的にconn.close()を書く必要がある。

import sqlite3

# これではダメ
with sqlite3.connect(path) as conn:
    ...

# こう書くべき
conn = sqlite3.connect(path)
...
conn.close()

with句を使って書きたい場合は下記リンクのように自前でクラスを書くことになるが、元々定義されていないのであれば素直にclose()を書いたほうが良いかもしれない。

qiita.com

Google Scholarに載らない論文を自力で載せる

以前以下のような投稿をしたら思いの外反応があったので、やり方をまとめておこうと思います。

ちなみに、現在ではJxivがあるのでそちらから投稿するのが一番楽だとは思います。

Jxiv, JSTプレプリントサーバ

ただ、citationの兼ね合いで自前でやりたいケースもあるかもしれません。 例えばJxivに載せていても、もとの論文の会議名などで引用されるとGoogle Scholarでは認識されないと思われます。 その場合に、もとの会議名などでGoogle Scholarに登録できる点はメリットかと思います。

1. 概要

独自ドメインによるwebページにPDFをアップロードします。
次に、その原稿の情報を、独自ドメインの独立した1ページにmeta情報として記載します。
後は、Google Scholarにインデックスされるのを待つだけです。

2. 必要なもの

必要なものは以下の2つです。

2.1 独自ドメイン

独自ドメインは、研究者なら自分のドメインを持っていても良いかと思います。
私のホームページはmsuzuki.meというドメインで、ドメイン自体の年間維持費は年3,000円くらいです。
.comや.netなど、安いものだと年1,500円くらいから維持できるはずです。

webサーバーが必要なのでは...?

実は、自前でサーバーを立てなくても、GitHub Pagesなどのホスティングサービスでも大丈夫です。
ホスティングサービスの場合はサービス内で独自ドメインの設定が必要です)
筆者はGitHubでソース管理→Cloudflare Pagesでデプロイという流れでやっています。

2.2 原稿PDF

インデックスの対象となる原稿のPDFを用意します。
必ず著作権的に問題ないもののみを使用してください。

例えば、以降の例で用いる言語処理学会 2023年 年次大会では、CC BY 4.0で公開されています。

言語処理学会第29回年次大会 (NLP2023) - 発表申込・原稿提出・大会発表各要項

投稿前ならOKかと思いますが、会議によっては何年か経ってからでないと公開できないものもあります。 またCiNiiだとPDFがなくてもインデックスに登録されていたりするので、PDFがないと登録されない、というのは違うかもしれません(要確認)。

3. 具体的な手順

材料が揃ったところで、具体的な手順を見てみます。
GitHub Pagesなど、具体的なデプロイ方法は他の記事などを参照していただくとして、ここでは各原稿をインデックスの対象とするために必要な要素のみに焦点を当てます。

例えば、私の以下のページを見てみましょう。

異なる単語分割システムによる日本語事前学習言語モデルの性能評価

このページで重要なのは

  • 1つの論文のmetaタグが埋め込まれていること
  • 論文PDFへのリンクがあること

の2点です。

3.1 metaタグの記載

まず、1点目のmetaタグですが、このページのソースコードのheadには以下のような記載があります。

<head>
    <meta charset="utf-8">
    <meta name="citation_title" content="異なる単語分割システムによる日本語事前学習言語モデルの性能評価" />
    <meta name="citation_author" content="鈴木, 雅弘" />
    <meta name="citation_author" content="坂地, 泰紀" />
    <meta name="citation_author" content="和泉, 潔" />
    <meta name="citation_conference_title" content="言語処理学会 第29回年次大会 (NLP2023)" />
    <meta name="citation_date" content="2023" />
    <meta name="citation_publication_date" content="2023/03/14" />
    <meta name="citation_firstpage" content="894" />
    <meta name="citation_lastpage" content="898" />
    <meta name="citation_abstract_html_url" content="https://msuzuki.me/paper/2023/nlp.html">
    <meta name="citation_pdf_url" content="https://msuzuki.me/paper/2023/nlp.pdf" />
    <title>異なる単語分割システムによる日本語事前学習言語モデルの性能評価</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
    <link rel="stylesheet" type="text/css" href="/css/bootstrap.min_flatly.css" />
    <script>
      var shiftWindow = function() { scrollBy(0, -50) };
      window.addEventListener("hashchange", shiftWindow);
      function load() { if (window.location.hash) shiftWindow(); }
    </script>
  </head>

特に大事なのはcitation_title, citation_conference_title, citation_date, citation_abstract_html_url, citation_pdf_urlで指定している<meta>タグです。
citation_titleとcitation_conference_titleまでは良いとして、citation_dateはyearだけでも、YYYY/MM/DD形式でも良いと思われます。
citation_abstract_html_urlは、論文のmetaタグを埋め込んでいるURLです。
citation_pdf_urlは、アップロードしている論文のPDFです。
このURLは同じドメインである必要があるっぽく、Google DriveGitHubではダメだった記憶があります。
また1つの論文に対して1つのページが必要なので、複数の論文を登録したい場合は複数のページでそれぞれmetaタグを記述する必要があります。

ちなみにジャーナルの場合は、citation_conference_titleではなくcitation_journal_titleを使ったり、以下を参考にvolumeなどを入力すると良いと思います。

div.div1.com.au

私もこの記事を書いているときに自分のジャーナルのmetaタグに誤りがあることに気づきました汗
著者名はcitation_authorから認識するはずなのですが、当方の他の論文ではPDFの著者名についている脚注文字を誤って取ってきているなど、どうも著者名は論文PDFから取ってきているような気がします。

3.2 論文PDFのリンクの記述

私の論文の概要ページの真ん中くらいを見ていただくと、論文PDFへのリンクがあると思います。
実は論文PDFのURLはmetaタグに埋め込むだけではダメで、ページ中に記載する必要があるようです。
なお、Google Scholar上で表示されるアブストラクトはwebページから取ってきているようなので、同じページにアブストラクトも載せておくと良いと思います。

3.3 準備が終わったら

後は待つだけです。実はここが一番大変かもしれません。
インデックスまで時間がかかるために正しいか誤っているかが中々わかりません。
私の体感では1, 2ヶ月はかかる感じなので、気長に待ちましょう。

4. その他

以上のような流れでインデックスされていない論文をGoogle Scholarに登録することができるはずです。
ただ毎度metaタグを書くのも大変なので、私はスクリプトを書いておいて必要なときに自動でmetaタグが記述されるようにしています。

今後の課題としては、上記の手法でアップしたPDFの参考文献の引用先がGoogle Scholarに登録されないことがある点です。
一応metaタグ上はcitation_referenceがあったり、IEEEやElsevierでは引用リストが表示されるなどして、いい感じに登録する方法があるような気がするのですが、未検証です。