Researcher2Vec: ニューラル線形モデルによる自然言語処理研究者の可視化と推薦
持橋大地
統計数理研究所 数理・推論研究系
日本学術振興会 学術情報分析センター
daichi@ism.ac.jp

言語処理学会年次大会 2021
2021-3-16 (火)概要! 論文の内容から研究者をベクトル化し、キーワードで検索できるサーバを公開! Word2vecと同様のニューラル文書ベクトルを、特異値分解によりDoc2Vecの20倍の速度で計算! Doc2Vec, LDAによる検索を超えて最高精度

概要
l 研究者ベクトルを2次元に可視化することで、研究内容の近い研究者が客観的に可視化できる(既存のシステムはヒューリスティックが多い)背景
l コンピュータサイエンス分野では、論文数が激増– 言語処理学会2020…338本, ACL 2020…779本,
CVPR 2020…1470本, NeurIPS 2020…1,900本以上
l 人手による査読割り当ては、もはや限界– 上の採択数の4倍〜10倍程度 3〜5程度の査読数が必要(CVPR 2020では19000個の査読が必要)– TPMSが使われているが、研究者別情報は非公開– 未だに研究者の専門性を人手で調べる必要がある背景 (2)! 研究の興味が多様化しており、自然言語処理なら誰に聞いても同じ、ではもはやない背景 (2)l この分野の研究をよく知っている先生は誰か？

à 適切な指導者の発見 (学生、企業とも)
l 会議やジャーナルへの適切な研究者のリクルート
à コネがなくてもコミュニティに加われるようにしたい既存システム! 「日本の研究.com」, JDream Expert Finder, JSTサイエンスマップなど! 論文の内容ではなく、引用などメタ情報がベース! 本当の詳しい専門性は分からない、共著関係に引きずられる (コネ)" 鈴木さんが心理学??

既存研究l 桂井ら (2016)：CiNIIの10万件の論文概要、300万語のテキストをトピック数K=500のLDAで解析– 次元圧縮しないベクトル空間モデルより高精度
l 持橋 (2019)：学振内部の11万件の科研費申請書、3億語のテキストをトピック数K=4000の巨大なLDAで解析– LightLDA(WWW 2015)で高速化しても数日かかる– 科研費特別推進、基盤Sの審査に利用ちなみに..

! 本研究とは、これとは完全に独立 (学振での必要性)! まだ論文が出ていない(はず)! 「様々な情報を埋め込む」そうなので、今後に期待

LDAによる論文テキストの分析! 確率的潜在意味解析 (LDA, Blei+ 2003) …

各文書に対し、潜在的な話題 (トピック)分布を推定

政治

スポーツ

LDAの欠点! 結果として、LDAは大変有効なモデルではあるが、! 負の相関を扱えない! 細かい意味的な違いに対処するのに限界がある! 研究者や申請書の内容は和が1のトピック分布 !

✓=1 2  Kで表現されるため、! 「経済学者だが、数理的には解析学がベース」「経済学者だが、数理的にはゲーム理論がベース」などの細かい違いを!で捉えるのは、非常に難しい! 研究者の推薦精度にある程度限界がある

LDAの欠点 (2)! 数学的には、LDAは単体の上でしか文書をモデル化していない! ベクトル空間のごく一部しか使っていない
1

トピック分布 !

一般のベクトル11sha1_base64="/QrXniarPtZlPqXTWylpuYEC2Ew=">AAAHdnichZXNbtNAEMenLTSlfDQtFyQkVBGlcIo2AQnEqQUqUbWq0oS0qZoqsp11asWxLdv5Vl6AF+CAhAQSAsRjcOEFOPQREMciwYED47UjJ9lpcZTs7szvP5nZXe+qjml4PmOnM7Nzly7PJxauLF69dv3GUnJ5Zd+zW67GS5pt2m5ZVTxuGhYv+YZv8rLjcqWpmvxAbTwL/Adt7nqGbb30ew4/bip1y9ANTfHRVE2uVGx0u0b9xFdc1+4MasNqMsUyTDyrcicbdVIQPXl7eW4NKlADGzRoQRM4WOBj3wQFPPwcQRYYOGg7hgHaXOwZws9hCIuobSHFkVDQ2sDfOo6OIquF4yCmJ9Qa/ouJXxeVq5Bm39lndsa+sS/sB/t7bqyBiBHk0sNWDbXcqS69ulX8/V9VE1sfTmLVBQoV6Ytr8kGHx6IWA2tzhCWoUgvjt/uvz4pPCunBGnvPfmJ979gp+4oVWu1f2oc9XngjotdQo2PbxlaDFM7wAEejTFX0DYR1GGUT812C7BJcj+B6BNcnuD7BdQiuQ3A6wekE1yC4BsFtENwGwW0R3BbBbRPcNsGVCa5McIcEd0hwjOCYxKnR+gb7kFpXNVrX0C+vpyp28cjPCX8Td2xMVMRYphzM0ZjgQgtFehLpkWSQm4/1j7Mjm0wHszTixxWxfUioTPHOq2iZ1o17KGVeqjh/TsVFtNbFSo7TsVVW7ExkFWt2pnIaV+1G+WvoM/Fk2ZWIzakdpeJ4U6IKBFWQqOfitElBTtA6ns/BuReu5ujED/MITyXakwvi4v2Tnb5t5M5+LpN9kMntPUytP41uogW4DXfhPsZ/BOvwAue/hDl04S18hE/zfxJ3EunEvRCdnYk0N2HiSbB/7HaJsQ==</latexit><latexit

sha1_base64="3o2Cm+aYIQ8+S8IBgMleecPUSY8=">AAAHaHichZXPTxNBFMcfoBTxB0UParwQGoinZlpNNJ5AJZFASGltKaGE7CyzZe12d7O7LbRN/wFP3ox60sSD8c/w4j/ggT9BPWLixYNvZ7fZ0nnANu3MvPf5vr43MzvDXcv0A8aOx8YnLl2eTE1dmb567fqNmfTszYrvtDxdlHXHcrwq13xhmbYoB2ZgiarrCa3JLbHFG89C/1ZbeL7p2C+Djit2m1rdNg1T1wI0VWrBgQi0vXSGZZl85tROLu5kIH4KzuzEItRgHxzQoQVNEGBDgH0LNPDxswM5YOCibRd6aPOwZ0q/gD5Mo7aFlEBCQ2sDf+s42omtNo7DmL5U6/gvFn49VM7BAvvBvrAT9p19ZT/ZvzNj9WSMMJcOtjzSCndv5vWd0t8LVU1sAzhIVOcoONLn1xSAAY9lLSbW5kpLWKUexW93356UnhQXeovsE/uN9X1kx+wbVmi3/+ifN0Xxg4y+jxoD2za2OmRwhns4GmTK0deT1n6cTcIfEeQRwXUIrkNwXYLrEtwhwR0SnEFwBsE1CK5BcMsEt0xwqwS3SnBrBLdGcFWCqxLcNsFtExwjOKZwPF7fcB9S68rjdY386npyuYsHfkH4m7hjE6ImxyrlYo7mKS6yUKSvkD5JhrkFWP8wO7CpdDhLA35Ykdj7hMqS7zxHy6hu2EMpC0rFhTMqLqG1LldymE6sqmL9VFaJZn0kp2HVRpy/jj4LT5YNhVgZ2VEcxysKVSSookI9l6dNBvKSNvB8Ds+9aDUHJ36UR3Qq0Z58GBfvn9zobaN2Kvls7kE2v/kws/Q0vomm4B7Mw32M/wiW4AXOfxlzeAVv4B28n/yVSqdup+5G6PhYrLkFp57U/H+InYO9</latexit>

latexit<文書のベクトル表現

l 確率分布 ✓ で文書を表現するのをやめて、!
一般のベクトル d で文書や研究者を表現すればよい?

à RaP (Gehler+ 2006), RSM (Salakhutdinov 2009),
Doc2Vec (Le and Mikolov 2014) , NVDM (Miao+ 2016)など多数あるが..
l ニューラル手法なので、一般に学習が難しい
l しかし...

Word2vecの数理! 単語をベクトル化する、有名なWord2vec (Mikolov+ 2013)

は、以下の自己相互情報量行列の行列分解と等価である
ことが示されている (Levy and Goldberg 2014)
文脈語 c

K'

単語w
PMI(w, c)p(w, c)= logp(w)p(c)

YCW

単語ベクトル!
w

Word2vecから文書ベクトルへ! 単語!文書、文脈語!含まれる単語 に置き換えれば、SVDで簡単に「文書ベクトル」と「単語ベクトル」を計算できる
p(w|d)p(d, w)= log(注：log)p(d)p(w)
p(w)
単語 w

'

文書dPMI(d, w)p(d, w)= log
p(d)p(w)YW

D

単語ベクトル
文書ベクトル!
d!
w

計算時間の比較
l K=1,000次元(トピック)で同じコーパスから学習した場合、14時間48分

LDA
21分9秒

Doc2Vec

1分8秒 (超高速)SVD
010000 20000 30000 40000 50000 60000 (秒)– LDAはGibbs 1,000 iteration, Doc2Vecは100 epochs– データが巨大な場合、提案法はredsvdなども使える

文書ベクトルから研究者ベクトルへ
l 各研究者について、書いた論文/科研費申請書の文書ベクトルが得られるので、それらの平均を研究者ベクトルとする(最尤推定)l 本来は分散も推定するべき(Kernel mean embedding?)
研究者B
l 次元Kは、最大値は文書数(実験では3582)
主成分2

主成分K

研究者A

主成分1
研究者C

キーワード検索の方法
VK'W

D
PMI(d, w)p(d, w)= log
p(d)p(w)

yd! クエリを仮想的な「文書」yと思うと、

y ' dWVが成り立っている ( d は対応する文書ベクトル)

Kキーワード検索の方法 (2)
Vy'K

VdW

K! yの要素はPMI log p(w|y)/p(w) なので、クエリの部分に1を立て、残りは log(1)=0 のベクトル! クエリ単語の最後に * を付けると、1ではなく2,3,... にしてその単語を強調できる (例: “neural** model”)! y~dW の方程式は等式ではなく近似! 得られた「文書ベクトル」dを研究者ベクトルと比べればよいキーワード検索の方法 (3)
V

'yK

VdW

K

を書き直すと、K! これは線形回帰モデル！

'yV

dW

y ' Wd! よって、dの最適解は通常のOLSで、

d = (WT W) 1 WT y

で一瞬で求まる

d = Rysha1_base64="Zxbe0hmRgyiCLmFc/Q1U6KWw6Ns=">AAAHenichZXPaxNBFMdfW21q/dFUQQQvpaFFEcIkFhRBaNWCpaWkiWlTmhJ2N7NxyWZ32d2kTdb9B/wHPHiy4EHqf+HFf8BD/wTxWMFLD76d3ZA089puSGbmvc/35b2Z2RnVMQ3PZ+xkbHzi2vXJ1NSN6Zu3bt+ZSc/e3fbstqvxsmabtltRFY+bhsXLvuGbvOK4XGmpJt9Rm68j/06Hu55hW+/8rsP3W0rDMnRDU3w01dL3qx2uBfXwpWiLoWi6YS2dYVkmnjm5k0s6GUiegj07sQhVqIMNGrShBRws8LFvggIefvYgBwwctO1DgDYXe4bwcwhhGrVtpDgSClqb+NvA0V5itXAcxfSEWsN/MfHronIOFtgv9o2dsp/smP1mZxfGCkSMKJcutmqs5U5t5uOD0r8rVS1sfXg/UF2iUJG+vCYfdHguajGwNkdYoiq1OH6n9+m09KK4ECyyI/YH6/vCTtgPrNDq/NW+bvHiZxG9jhod2w62GmRwhgMc9TNV0RcIa5hkM+APCfKQ4LoE1yW4HsH1CO6A4A4ITic4neCaBNckuBWCWyG4NYJbI7h1glsnuArBVQhul+B2CY4RHJM4NVnfaB9S66om6xr75fVUxS7u+znhb+GOHRBVMZYpB3M0znGxhSI9ifRIMsrNx/qH2b5NpqNZ6vPDioE9JFSmeOdVtIzqhj2UsiBVXLig4hJaG2Ilh+mBVVZsnMtqoNkYyWlYtZnkr6HPxJNlUyJWR3aUiuNViSoSVFGi3ojTJgN5Qet4PkfnXrya/RM/ziM+lWhPPoqL909u9LaRO9v5bO5pNr+1lFl+ldxEU/AQ5uERxn8Gy/AW57+MOXyAIziG75NnqfnU49STGB0fSzT34NyTWvoPdnGLPg==</latexit>

sha1_base64="rvihj1pcGkEBRHbqwFU3uQETYmY=">AAAIDXichZXPT9RQEMdnRV1cfwB6MfGycWGDMZC3q0ZjgoJKIoEQWH7sEgqkLa/QbHfbtGVhacof4MWjB0+aeCCevRkvHvQf8MCfYDxi4sWD09duurQDdrP75s18vtOZvrevimXojsvYUeZcz/kLF7O9l3KXr1y91tc/cH3ZMXdslS+ppmHaNUV2uKE3+ZKruwavWTaXG4rBq0r9eRCvtrjt6GZz0W1bfK0hbzV1TVdlF10b/YeSZsuqJ1my7eqykZ/0Y1tqcdXb9P1ccSw/Uhazqr++KIy2n7+bT/iqfqQYYzlJykm2rDtcMfe8kuX63qDkbnOba6bNB/2Dg0724thwMsuddW+k5Cfvt9FfYKNMXPm0UYqMAkTXnDnQUwQJNsEEFXagARya4KJtgAwOflahBAws9K2Bhz4bLV3EOfiQQ+0OUhwJGb11/N3C2WrkbeI8yOkItYp3MfBrozIPQ+wHO2TH7Dv7yH6yv6fm8kSOoJY2jkqo5dZG36ubC3/+q2rg6MJ2rDpDoSB9dk8uaPBI9KJjb5bwBF2qYf7W/pvjhceVIa/I3rNf2N87dsS+YofN1m/1wzyvvBXZN1Gj4djCUYUCPmEPZ51KFYx5wutH1cT8HkHuEVyb4NoEt09w+wS3S3C7BKcRnEZwdYKrE9wEwU0Q3BTBTRHcNMFNE1yN4GoEt0JwKwTHCI6lOCVa32AfUuuqROsaxtPrqYhd3IlzIt7AHRsTkpinKQtr1E9woYcinRTpkGRQm4v9d7MdX5oOnlKH71bEfp9QGeI/r6AnqeuOUMq5VMdzp3S8gN4tsZLddOxNK2ZOVBVrZhI1datmo/pVjBl4ssymiMnEjlJwPpmiKgRVSVEvxGlTgLKgNTyfg3MvXM3OiR/WEZ5KdKQc5MX3Tyn5tkkby+XR0r3R8vz9wviz6E3UC7fgNgxj/ocwDi/x+S+BmunLPMg8yTzNvs5+yn7OfgnRc5lIcwNOXNlv/wAfPcKA</latexit><latexitl よって<latexit

sha1_base64="5etgp0lDZv7jeparr7eDl5ixWMc=">AAAHjXichZW/b9NQEMevLeASfiSFBYmlImrVDlQvAQRCgFqggqpVlSZNk6ppo9h9DlYc27KdtImVf4CFkYEJJAbEzAoDC/8AQ/8ExFgkFgbOzw5O4mtxlLx7d5/v5c7v+Vm2dM1xGTsaG584c/acNHk+ceHipcvJ1NSVLcds2QovKqZu2mW55nBdM3jR1Vydly2b15qyzkty44kfL7W57Wimsel2LL7brNUNTdWUmouuamq+0uaKl+89TMwJq9Tb2wyN+T3vZqb3z1tNpdkCE9d03MiERhrCK2dOTcxCBfbBBAVa0AQOBrho61ADBz87kAEGFvp2wUOfjZYm4hx6kEBtCymORA29Dfyt42wn9Bo493M6Qq3gv+j4tVE5DTPsO/vAjtk39pH9YH9OzOWJHH4tHRzlQMutavLltcLv/6qaOLrwIlKdopCRPr0nF1S4J3rRsDdLePwulSB/u/v6uHA/P+PNsnfsJ/b3lh2xr9ih0f6lvN/g+Tci+z5qVBzbOCqQxjvs4axfqYwxT3h7YTURf0iQhwTXIbgOwXUJrktwBwR3QHAqwakE1yC4BsEtEdwSwa0Q3ArBrRLcKsGVCa5McNsEt01wjOBYjJPD9fX3IbWucriuQTy+nrLYxf04J+JN3LERURHzOGVhjdoQF3go0omRDkn6tbnY/yDb98Vp/y71+UFF5O8RKl088zJ6RnWDEUqZi3WcO6HjAnrrYiUH6cgbV6wNVRVp1kZqGlSth/UrGNPxZFmPEcsjO0rG+XKMyhNUPkY9FadNGrKCVvF89s+9YDX7J35QR3Aq0ZGsnxffP5nRt03c2MouZG4tZDdupxcfh2+iSbgON2AO89+FRXiO97+INbyCT/AZvkhJ6Y70QHoUoONjoeYqDF3Ss7+D7JEq</latexit><latexit

sha1_base64="OTjhKqODCRPJebP9QB6E5xRbxkI=">AAAII3ichZXPbxJBFMcfrUrFH6V6MfGykUBqTMmwmmhMTFqVxIamofwoNKVt2O2AGxbYsAstUP4B/wEPnjTpwfhHePBi4s3ooQf/AOOxJl48+HZ2cYF9tEtgZr7v8519b2eYVQxdMy3GTgIzsxcuXgrOXQ5duXrt+nx44cam2Wy3VJ5Xm3qzVVTKJte1Bs9bmqXzotHi5bqi84JSe2bHCx3eMrVmI2d1Db5TL1cbWkVTyxZKe+GPyVDsiXRU6nC13x0sibYwEM3+4GhXlkql7aW4zOs7NrdIc3d3c9Mi434X2s0NadnlXKXghaSQJEn3pCnx/zfYC0dYnIlL8ncSbicC7pVuLszGoAT70AQV2lAHDg2wsK9DGUz8bEMCGBio7UAftRb2NBHnMIAQettIcSTKqNbwt4qjbVdt4Nie0xRuFe+i47eFTgmi7Dt7z07ZZ/aB/WR/p87VF3PYuXSxVRwvN/bmX93K/jnXVcfWgpee6wyHgvTZNVlQgUeiFg1rM4RiV6k683d6r0+zjzPRfoy9Y7+wvrfshH3CChud3+rxBs+8EbPvo6eCbQdbFSL4hPs4GmaqYKwv1IGbjccfEuQhwXUJrktwPYLrEdwBwR0QXIXgKgRXI7gawa0Q3ArBrRLcKsGlCC5FcEWCKxLcFsFtERwjOObjFHd97X1IravirqsT96+nInbxMM6JeB13rEeUxNhPGZijNsY5CkWaPtIkSTs3C+sfZYean7af0pAfdXj6gHDp4j+voDLpG41QzrSv4vSUirOoVsVKjtKe6nesjWXledYmchp1rbv5qxjT8WRZ9xHJiR2l4DjpozIElfFRz8VpEwFZ0BU8n+1zz1nN4Ynv5OGcSnREtufF909i8m3j72zK8cT9uLzxILL81H0TzcFtuAOLOP9DWIYX+PzzoAaigVQgF8gHj4Nfgl+D3xx0JuB6bsLYFfzxD2R9yRI=</latexit><latexit

キーワード検索の方法 (4)l 線形回帰の基本ですが、二乗誤差を最小化したいので
2

E = |y Wd|= (y Wd)T (y Wd)= yT y 2dT WT y + dT WT Wd@E= 2WT y + 2WT Wd = 0@d) d = (WT W) 1 WT yl 事前に R = (WT W) 1 WT を計算しておけば、

キーワード検索の方法 (5)T! R = (W W)

1

WT は、numpy.linalg.solve (dot(W.T,W), W.T)

で求められる! WはVxKなので、WTWはKxK, R=(WTW)-1WTは(KxK)x(KxV)=KxV の行列! 言語処理学会ではV=18000, K=2000 ! Rは277MB! 学振の場合はV=180000, K=4000なのでR (およびW)は要素数7億2000万個の巨大な行列、〜4GB
V=180000
K=4000Rキーワード検索の方法 (6)V=180000
K=4000y0:
01 V00:0

R
V! yの要素はほとんど0なので、Ryの掛け算は結局、Rの対応する列を取り出してくればよい! Rはディスクにmmap()しておけば、メモリ使用も最小(対応済み)

実験とデータl 言語処理学会年次大会の20年分の論文データ (1995-2013)

を使って実験
– 20周年記念コーパスなので、ニューラル以前なのに注意
l MeCabで形態素解析し、語彙18,135語、論文4,082本で13,654,061語のデータ (1300万単語)
l この期間で5本以上の論文がある著者499人/3660人を実験の対象
l テストデータ500文書の著者を推定し、スコア順に並べた
際の平均適合率 (Mean Average Precision, MAP)を計算– MAP=1：スコア最上位がすべて真の著者– Doc2Vec, LDAと比較

論文著者の推薦精度 (平均適合率)
l Doc2Vecを超えて、提案法が常に最高精度– LDAは、桂井ら(2016)の確率分布のコサイン類似度よりKLダイバージェンスで測った方がよい(%) 706050403020
K=500

K=1000Researcher2Vec
LDA KLdiv

K=2000Doc2Vec
LDA cosine平均適合率(MAP)の分布→ MAP. 件数 200

200150150

100100505000.

で61

論00.20.40.60.8(a) LDA KLdiv

100.20.40.60.81(b) Researcher2Vec (提案手法)

図 5: テストデータの各論文の著者予測の平均適合率(MAP)のプロット.
提案手法は多くの場合に MAP = 1 を達成してà著者をスコア順に並び替えたとき、真の著者が最上位おり,それ以外は英語論文などのノイズとなっている.
を占める

l 提案手法では、ほとんどの場合に平均適合率＝1l それ以外は、先生と興味が違う学生の論文や、英語論文
infer_vector() で繰り返し計算により文書ベクトルを求める他は, 提案手法と同様に計算する.11）

LDA 公開している Cython 版の LDA 実装12）を使用

デモ
http://clml.ism.ac.jp/nlp2vec/l 公開サーバですので、誰でも検索を試すことができます– 言語処理学会の過去の論文のビューアにもなります(著者別)研究者の可視化

l t-SNEによる可視化 (可視化は1通りではありません)– 詳しくは論文のAppendixを参照

将来の課題l 今回は直感の働く自然言語処理分野の論文で試しただけで、他の分野へも適用可能
l arXivやACL anthologyの英語論文への適用– 査読者や講演者を探すのに実際困っている!
l Web周りが得意で(非常に)役に立つシステムを作りたい
学生さんなどを募集しています
l 埋め込み空間での分布全体を考慮した研究者推薦(kernel mean embedding?)l 「ある分野全体をカバー」する研究者集合の求め方

まとめ
l 論文からWord2vecと同等のニューラル文書ベクトルをSVDで高速に求め、それを書いた研究者の “研究者ベクトル”を計算する手法を提案– Doc2Vecの20〜40倍高速、解析的な検索解、省メモリ– Doc2VecおよびLDAを超えて最高精度
l 実際に言語処理学会の年次大会コーパスから、論文に含まれる単語で研究者を検索できるシステムを公開(nlp2vec)l 今後は、日本学術振興会で同様のシステムを開発したい