2016-05-02

コンピューター科学のアカデミック業界の残念な現状

mhoye on Twitter: "Extremely angry with the state of academic CS research right now. (1/n)"

MozillaでFirefoxのエンジニアリングコミュニティマネージャーであるMike Hoyeが、コンピューター科学におけるアカデミック研究の残念な現状に激怒している。

コンピューター科学のアカデミック研究の現状に激怒している。

MozillaがBugzillaを始めとした多数の情報を公開した結果として、多くの研究論文が書かれている。

我々はそのような研究には注目している。論文はじっくり読んでいるし、研究結果にしたがって今後の方向性も決めている。

しかし、我々は常に変化する世界に生きている。そのため、我々はデータをもとに結果を再検証して、仮定が正しいことを確認する。

ここで我々が行いたいことは、我々はある意思決定をある論文Xの結果をもとに行いたいのだが、その結果は最新のデータでも妥当であろうか? と言えることだ。

まともな世界では、そのような検証は以下の3ステップで行えるはずだ。

  • 論文著者のバージョン管理システムのレポジトリをクローン
  • 論文著者のプログラムを最新のデータに対して適用
  • 新しく生成されたグラフを見る

データはまだ仮説を支持するものであるか? 素晴らしい。この方向で進めよう。結果が変わった? 何故なのか考えてみよう。いずれにせよ。全員が満足する結果となる。

しかし、これは実現しない。なぜならば、コンピューター科学の研究者はコードもデータも公開しないからだ。奴らはLatexで整形したWordドキュメントをペイウォールに阻まれたPDFとして公開する。

奴らときたら、科学の原則である、「妥当性」とか「再現性」とか、中でも最も基本的な原則、「現実に即しているか」などは、クソ喰らえの姿勢だ。

人間が知識や学習結果を共有しないことの時代遅れがいかに時代遅れであるかを見てみようか。

ギリシア火薬の製法は失われた。ダマスカス鋼の製法は失われた。アンティキティラ島の機械は紀元前200年に失われ、同等の精度を持つ時計を再び作るには1500年代まで待たねばならなかった。

いいか。よく聞け。お前の未公開のコードと、お前の未検証のデータと、お前のペイウォールに阻まれた博士論文は、この輝かしい因習の一部であるのだぞ。

お前の目的とやらが、学士を得て卒業することなら、まあいいだろうよ。大抵の人間が望むことだ。だが、院にまで来てやることか?

お前の業績により世界をよりよい方向にインクリメントするためには、世界はお前の業績を読めなければならないのだぞ。

俺は結果の報告書など読みたくない。そんなのは、ワインを注文しているのに、赤っぽい色の液体について報じた新聞記事の切り抜きをFAXしてよこされるのと同じだ。

検証可能なデータと動くコードなしには、お前のコンピューター科学の博士論文の命題とやらは命題ではない。それは単に命題が存在するかもしれないという未検証の主張に過ぎない。

まとめると、俺は大変に失望している。もっと言うべきことはあるが、俺はこれから長年の研究とツールを再現するためのコードを書かねばならないのだ。

33 comments:

kmizushima said...

外側からみるとそういう風に見えるという話かもしれません。ただ、一般的な批判としては機能していない
と思います。まず、コードとデータについては研究者間では問い合わせれば普通は出してくれますし(論文
には問い合わせ用メールアドレスがある)、それで実験が再現できないのなら批判にさらされるべきです。

また、そもそも、コードを対象にするわけではない研究(特に基礎理論)では、(評価された)論文はそれ自体だけで他の研究者の研究を進めるのに役立ちます。

Mike Hoye氏はCS研究の目的(といっても、分野によって目的は異なりますが)と慣習を踏まえずに、対象の論文が自分の思うようでない事に対して怒っているだけのようにみえます。

Anonymous said...

俺もCS専攻じゃないが情報系の研究者として言わせてもらうが、
この意見は論文を利用しようとしている側の一方的な論理に聞こえるな。
それも学問としてではなく、自社製品の金儲けのための道具として。

使う側からしたら不満があるのはわかるしさ、
俺も調査する時に同じ意見持ったりするよ?
でも書く側からしたらデータもコードも論文執筆もタダじゃないんだよ。
こっちは税金(研究費)つぎ込んでコードを作ったり調達したりさ、
機密データを提供してもらって研究して結果出したりしてるわけでさ。
金をかけてやっとのことで用意した資産に対して
「アカデミック」を理由に何でもかんでもタダで手に入ると思うなよ。

開発のプロで金もらってやってんだろ?
だったら論文からコードを書き直す努力ぐらい自分でしろ。

Anonymous said...

世の中上みたいなのばっかりってことですな

Anonymous said...

これ2-3行目にありますけど「Mozillaがオープンソースで公開したデータ」を
元に書かれた論文に対して言ってるんじゃないでしょうか?
そしたら皆ちゃんと公開して改善していこうぜっていうのは理に適ったスタンスだと思います。

Anonymous said...

>これ2-3行目にありますけど「Mozillaがオープンソースで公開したデータ」を
>元に書かれた論文に対して言ってるんじゃないでしょうか?

違うでしょ。そうだとするとデータは既に公開されていて
「コンピューター科学の研究者はコードもデータも公開しないからだ。」
っていう部分と矛盾する。

Anonymous said...

いやいや、
・「Mozilla」がオープンソースで公開したデータを元にして「コンピュータ科学の研究者」が論文を書いてる
・「コンピュータ科学の研究者」は自分が改変したソースコードを公開していない
という話です。

「Mozilla」側としては「コンピュータ科学の研究者」が改変した部分も同じように公開してほしい。
これはオープンソース的な考え方としては至極まっとうだと思います。
でも「コンピュータ科学の研究者」がそうしてくれない事に対して「Mozilla」側の人間であるMike Hoyさんが嘆いているというツイートなんじゃないかと思います。

Anonymous said...

筆者の最も述べたかった点に下線を引きなさい?国語の問題文か?

Anonymous said...

Mozzilaのソースコードを改変したなんてどこにも書いてないし、
本当に改変していた場合は研究者といえどもライセンスを守らないと違法です。
そうだとすると法務部に訴訟を起こしてもらえば済む話です。
おそらくここで言っているのは、研究者が論文のために
自分で書いたコードについて公開しろということでしょう。
せいぜい、公開されたデータを解析して学術的な結論を得たってことで論文を書いて
それに至る過程のコードをMozzilaで自分で作り直すのが面倒だから
すぐに使える形で全部出せっていうのがMozzilaの主張なんでしょう。

オープンソースは物作り、つまり産業界の都合であって学術界の都合ではありません。
また、学術では基本的に企業に対して中立でなくてはいけないので、
学術界の範囲を逸脱してMozzilaという一企業のために
税金を使って特別にソースを公開するなんていうのは難しいでしょうね。
産業界とwin-winなことは何でもやっていったらいいと思うけど
学術界は学術界の事情があるので、
一方的に産業界の自分たちの都合を学術界に押し付けるのは違うと思いますがね。

Anonymous said...

Paywall を取り払っても経費がかかるのは変わらず, 結局それを押し付けられるのは研究者なわけで,
この発言は「俺は金を払いたくないが研究者は身銭を切って俺にフリーライドさせろ」と言ってるのと変わりません.
Paywall 取り払いたければ, 「Mozilla が Open Access にかかるお金をすべて負担します」とすればいいのでは?

Anonymous said...

私は「ネ申Excel」問題のような一般論として読みました

Anonymous said...

科学者とはいえ他人にマネされたくないからな
コード自体は研究の評価対象に入らないことも多いから隠しても問題ない
競争率は低い程良い

Anonymous said...

Paywallの問題自体は多分Mozillaみたいな大会社からしたらタダみたいなもんで
コードを作り直す部分がMozillaにとって手間と金がかかるんだろうな。
ここでは、Mozillaがデータ公開という形で研究者と社会に貢献して
研究者は論文という研究の世界の作法にのっとってMozillaと社会に貢献して
これでお互い貢献してよかったね、で終わればよかったんだ。
その論文を利用して自社製品に使おうとしてるのはMozillaなわけで
それが面倒だと言って研究者の仕事にしようとするのは違うだろと思うわけで。

あと、マネされるのが嫌とか競争率が低い方が良いとかよりも、
ソース公開とか縛りをきつくすると委縮して
その分野の論文が減って衰退するのが問題なんだよな。
他の研究者や同僚から引き継いだコード、有料のライブラリを使ってるコード、
非公開データ等を利用してるコード、こういうのを勝手に無料公開したら問題なわけで、
論文でちょっとでもそういうのに該当すると一切投稿できなくなる問題が発生する。
また、研究のコードを(種類にもよるが)研究費や税金を使って業者に外注すると
書類上はそのコードの所有者は研究者ではなくて国とかになるので
権利関係から論文に投稿できず、外注がしにくくなるとかもあるんじゃないだろうか。
結局、最もたくさん情報を出させるためにソースコードを非公開を許すしかないんだよ。

論文ではソースコードは「自分の仮説を実証するために試作したもの」
ぐらいの立ち位置でしかなく、論文の本質は仮説と実証、結論の方にあるので、
ソースコードや実装は研究の世界では本質とは切り離され、論点から外れます。
(ソースコードの良し悪し自体で評価を受けるということはあってはならない)
論文の仮説の検証は他の人が作り直して検証して初めて担保できる(再現性)ので、
そういう意味でも検証する人がいるなら一からコードを書き直すべき。
(これは研究者同士でもそうです)

hyoshiok said...

オープンソースの世界は「情報を公開することによって進化する」という仮説のもとに成り立っていて、それは多くの場合正しいです。CSを志す人も、同様にコードを公開しましょう。そうすることによってCSもより発展するし、その進化のスピードも増すという主張だと思います。

検証用のコードが公開されていれば、それを利用することもできるし、妥当性を確認することもできます。そしてそれによってより多くの知見が発見されるでしょうし、進化も加速して、皆が得をするという世界観です。

公開することによるメリットは大きいと思います。

Anonymous said...

「コンピュータ科学」という括りは大雑把すぎるという指摘が以下に。

https://twitter.com/esumii/status/727359849885921280
> 少なくとも「コンピュータ科学」が全称だとすれば明らかに偽。自分の近傍ではソースも論文も普通に公開されているし、それを公式に評価するartifact evaluation等の仕組みもある。https://twitter.com/EzoeRyou/status/727065367860809728

元ツイートも微妙に誤解がある気がしてて、Bugzillaのデータをベースに論文書くのって、computer science じゃなくて、software engineering の分野じゃないかなあ。
software engineering は、工学であって、科学という括りとはちょっと違う分野の気がする。computer science って数学にわりと近い分野だけを指す言葉だと思う。

Anonymous said...

これはMozilla、Bugzillaうんぬんは関係なく、単にPDF論文をやめろ、GitHubに書け、オープンソースにしろ、という当たり前のことを言ってるだけだね。

突き詰めると、ネットがあるんだから研究者は大学に所属するのをやめて、みんなIndependent Scholarになろうよっていう流れとリンクする。

>kmizushima
>コードとデータについては研究者間では問い合わせれば普通は出してくれますし(論文
には問い合わせ用メールアドレスがある)

わかってない。
問い合わせるのにどんだけ機会費用がかかると思ってんの?
「いちいち問い合わせないと出してくんない」なんてオープンソースの世界じゃありえないよ。
人間と会話しなくても事を進められるのがオープンソースの利点の一つ。

>コードを対象にするわけではない研究(特に基礎理論)では、(評価された)論文はそれ自体だけで他の研究者の研究を進めるのに役立ちます

あえてコードを公開しないメリットはない。

>Mike Hoye氏はCS研究の目的(といっても、分野によって目的は異なりますが)と慣習を踏まえずに、対象の論文が自分の思うようでない事に対して怒っているだけのようにみえます

その慣習を変えるべきだ、というのが彼の主張でしょ。
どういう慣習にすべきなのか(何が最も合理的か)、という視点で考えてください。

Anonymous said...

>May 3, 2016 at 10:24 AM
>それも学問としてではなく、自社製品の金儲けのための道具として

金儲けして何が悪いの?
それでMozillaが優秀な技術者を雇ってFirefox等、オープンソースの世界が発展すれば、社会にとってもあなたにとっても得でしょう。
あなたの論文だって社会貢献の一助になるんだよ。

>でも書く側からしたらデータもコードも論文執筆もタダじゃないんだよ
>こっちは税金(研究費)つぎ込んでコードを作ったり調達したりさ

*わざわざ*使いづらい論文を書いて不完全な仕事をしたあげく、他の人の無駄な仕事を増やそうと*書く側が*思う理由は何?

誰だって自分の論文を役立ててもらったらうれしいし、より役立つものを書こうと努力するよ。
税金をつぎ込んでるならなおのこと。

>論文からコードを書き直す努力ぐらい自分でしろ

それは「努力」ではなく「徒労」という。
「車輪の再発明」という言葉すら知らないのか。
誰も得しない。無駄な仕事をして税金を食い潰してるだけだよね。

あなたのような研究者は(もし実在したら)全部オープンにする人に淘汰されるだけのことだよ。それがオープンソースというものの始まりになってる。

Anonymous said...

>May 3, 2016 at 2:13 PM
>学術では基本的に企業に対して中立でなくてはいけないので、
>学術界の範囲を逸脱してMozzilaという一企業のために
>税金を使って特別にソースを公開するなんていうのは難しいでしょうね

噴飯物。逆、逆。
ソースを公開すればみんなが見れるんだから、「一企業のために」公開する、などという状態にはなりえないよ。
オープンソースを「中立じゃない」と思う人がいるとは。
いつの時代の人なのか、どこから来たのか、そしてなぜ自由ソフトウェア主義者のブログを読んでいるのか…

オープンソースは社会に貢献することなのに、なぜ税金を使ってソースを公開するのは難しいのかまったく理解できない…(苦笑)

「学術界の事情」って何よ。
単にGitHubの使い方を知らないとか、オープンソースの発想がないとか、そういうレガシーの部分が大きいだけだと思うよ。

優秀な人の間ではすでにオープンソースは常識になってるし、時代とともにオープンソースに進んでいくと思う。
その流れを加速するのが元ツイートの意図なわけで。

Anonymous said...

気になって戻ってきてみたけど、欠員裁判になるとあれなので一応反論。
既に賞味期限が切れてる時期だけれど。

>問い合わせるのにどんだけ機会費用がかかると思ってんの?

そもそも研究のプログラムなんかそんなに百人も二百人も見るようなことは無いし
いても今回のような Mozzila が再実装の手を抜きたいようなケースぐらいでしょう。
本当に再現が必要なら、論文にそれに足りる情報があるから再実装して追試するのが筋。
あと学問は産業界とは別分野だ。オープンソースは産業界の都合であって学問ではない。
金儲けとか仕事で使いたいなら、なおさら人のコードじゃなくて自社で再実装するべきだ。
研究成果なんか人工知能に代表されるように一歩間違えば暴走させる可能性もあるわけで
再実装もできず中身の危険性も理解できないレベルの人に
すぐに動く実験段階のコードを持たせるべきでもないと思うわけで。
コードは基本的に作者に権利が帰属するべきもので、公開してもいいよっていう場合はともかく、
なんでもかんでも公開義務はやりすぎ。どう考えても相手に問い合わせるのがマナーだ。

>自分の近傍ではソースも論文も普通に公開されているし、それを公式に評価するartifact evaluation等の仕組みもある。

一部生物とか純粋科学に近い研究分野で、学会総出でデータベースを作って
みんなで同じデータを共有してソースつきで解析していきましょうっていう分野があるのは知ってる。
だけどそれは特殊なケースで一般的なトップジャーナルやトップカンファレンスでは珍しい。
この前も Nature に Google の AlphaGO の論文が載ったけど、
こういう科学全般の学会で取り上げる時はソースをどうするのか。
(そもそもソース自体が存在しなくて当たり前の分野だと審査員はソースすら読めない可能性もある)
またソースを公開してそれを動かせる環境を用意できるのか。
逆にソース公開必須だったら、商用利用の可能性もある AlphaGO の論文とソースを出してくれたか。
(Google だとやってくれそうな気もするけど、企業ならその条件で委縮するところは少なくない)
うちの周りにもソース提出義務の論文誌はあるのあるが、
レベルが低くて、どうしても論文が通らなかった時のすべり止めにしてるぐらいで、
やっぱり成功してない印象はある。

Anonymous said...

>単にPDF論文をやめろ、GitHubに書け、オープンソースにしろ
>その慣習を変えるべきだ、というのが彼の主張でしょ。

言いたいことは十分に理解できるし、初めは俺もそう思ってたが、現実には無理だわ。
金が儲かれば正しい産業界と違って、学術(研究)では成果とは何かが曖昧になりがちで、
これを定義しないと、仕事をせずに給料をもらう抜け道がいくつも出来てしまう。
だから、きちんと一つの成果として共通フォーマットを作成し、専門家同士で進捗と内容を審査しあう
「論文」という形で抜け道をなくし、また仕事の量を数値化するという仕組みが採用されている。
また、抜け道の問題だけではない。物づくりを成果のうちに許可してしまえば、
会社で必要なプログラムを税金をもらいながら大学で作るやつが出てしまう。
(会社の仕事の一部を、研究者の仕事として堂々と税金で作れてしまう)
良いプログラムを書くのは産業界の仕事で、学術界の仕事であってはならない。
この一線は税金の会社への不正流用を防ぐためにも絶対に切り分けるべきだ。
また、「論文」はコンピュータの分野に限らずほぼ全ての学術分野で共通の世界基準だ。
コンピュータ関連の学会だけがコードが全てという基準に移っていったとすれば、
論文を書く文化が育たず Nature のように論文形式でしか受け付けない雑誌に
コンピュータの研究者は参加できなくもなる(論文執筆も訓練が必要な技術の一つです)。
結局分野間交流が減り、ガラパゴス化していくだけではないか。

百歩譲って GitHub での公開を成果に認めるとして、何をもって論文1本と同じ重みにするのか?
審査もないプログラムを適当に公開したら、それが論文1本として認められてしまうのか?
いいプログラムを作ったらいいとしたら、誰がそれを評価するのか?
これまで通り研究者同士で評価するなら、コードよりもレポート形式の論文の方が遥かに都合が良い。
また、学術では「新規性」といって、既にあるものは成果として認められない仕組みがある。
新規性の評価が無いと、既にあるものを適当に作り直して仕事をしたことになってしまうからだ。
論文では審査時に提出年月日でどちらが先かが判断される仕組みになっているが、
GitHub の場合は何をもって「これは新しい成果だ」といつ誰がどう認めるのか?
さらに、論文のような学術の資料は原則公式記録として保管されるが
リポジトリが消えた時に成果が本当に存在した証明は誰がするのか?
またコードは環境によって動く動かないがあるし、全てが個人のパソコンで動くわけでもない。
例えば研究室が自作した特殊なハードが必要で誰も動かせないようなケースは
基本的に審査員も審査しようがないが、動くかもわからないコードを公開されて
開発者以外誰も動作できないものを成果として認めてよいのだろうか?
個人のパソコンで誰でも動かないといけないという制限を付ければ、
今度は最先端の試作デバイスを使った研究は全て不可になってしまう。
そもそも一企業の GitHub という会社と政府が癒着していることにならないだろうか?

Anonymous said...

>どういう慣習にすべきなのか(何が最も合理的か)、という視点で考えてください。

こうやって色々考えると、結局うまい仕組みを作るのは難しいし、
「専門家同士の審査付きの論文誌」という方法がベストであることが見えてくる。
こういう視点を持たずに、何でも自分の都合の悪いことがあると
「残念すぎる現状」と言ってのけてしまうのは、正直幼稚この上ないと思う。
「論文」という形は延々続く研究会の中で議論され洗練され続けて至った形式であって、
産業界や個人にだけ都合よく慣習を変えていくことが
果たして社会全体にとって最も合理的であるとは個人的には思えません。

誤解無きよう言っておくが、いい方式があるならどんどん移っていってほしいとは思う。
論文という単位は変わらないものの、時代の流れと共に
電子化が進み、形を変えてきてるのは事実ですが、
「論文」という慣習に関しては、これを覆してなお全世界が受け入れる基準を作り、
世界を巻き込んで運用していくのは現実問題難しいでしょうね。

Anonymous said...

すみませんが3コメントのうち一番重要な2番目の投稿に失敗してしまって
意味不明になってしまっていたようなので2番目だけ再投稿します。申し訳ないです。
--

>単にPDF論文をやめろ、GitHubに書け、オープンソースにしろ
>その慣習を変えるべきだ、というのが彼の主張でしょ。

言いたいことは十分に理解できるし、初めは俺もそう思ってたが、現実には無理だわ。
金が儲かれば正しい産業界と違って、学術(研究)では成果とは何かが曖昧になりがちで、
これを定義しないと、仕事をせずに給料をもらう抜け道がいくつも出来てしまう。
だから、きちんと一つの成果として共通フォーマットを作成し、専門家同士で進捗と内容を審査しあう
「論文」という形で抜け道をなくし、また仕事の量を数値化するという仕組みが採用されている。
また、抜け道の問題だけではない。物づくりを成果のうちに許可してしまえば、
会社で必要なプログラムを税金をもらいながら大学で作るやつが出てしまう。
(会社の仕事の一部を、研究者の仕事として堂々と税金で作れてしまう)
良いプログラムを書くのは産業界の仕事で、学術界の仕事であってはならない。
この一線は税金の会社への不正流用を防ぐためにも絶対に切り分けるべきだ。
また、「論文」はコンピュータの分野に限らずほぼ全ての学術分野で共通の世界基準だ。
コンピュータ関連の学会だけがコードが全てという基準に移っていったとすれば、
論文を書く文化が育たず Nature のように論文形式でしか受け付けない雑誌に
コンピュータの研究者は参加できなくもなる(論文執筆も訓練が必要な技術の一つです)。
結局分野間交流が減り、ガラパゴス化していくだけではないか。

百歩譲って GitHub での公開を成果に認めるとして、何をもって論文1本と同じ重みにするのか?
審査もないプログラムを適当に公開したら、それが論文1本として認められてしまうのか?
いいプログラムを作ったらいいとしたら、誰がそれを評価するのか?
これまで通り研究者同士で評価するなら、コードよりもレポート形式の論文の方が遥かに都合が良い。
また、学術では「新規性」といって、既にあるものは成果として認められない仕組みがある。
新規性の評価が無いと、既にあるものを適当に作り直して仕事をしたことになってしまうからだ。
論文では審査時に提出年月日でどちらが先かが判断される仕組みになっているが、
GitHub の場合は何をもって「これは新しい成果だ」といつ誰がどう認めるのか?
さらに、論文のような学術の資料は原則公式記録として保管されるが
リポジトリが消えた時に成果が本当に存在した証明は誰がするのか?
またコードは環境によって動く動かないがあるし、全てが個人のパソコンで動くわけでもない。
例えば研究室が自作した特殊なハードが必要で誰も動かせないようなケースは
基本的に審査員も審査しようがないが、動くかもわからないコードを公開されて
開発者以外誰も動作できないものを成果として認めてよいのだろうか?
個人のパソコンで誰でも動かないといけないという制限を付ければ、
今度は最先端の試作デバイスを使った研究は全て不可になってしまう。
そもそも一企業の GitHub という会社と政府が癒着していることにならないだろうか?

Anonymous said...

そもそも研究者は研究を通じて社会に貢献するために研究してるのではなかったのか。
そのために最も効率の良い方法を考えて欲しい。また代わりに考えてくれている人の声に耳を傾けて欲しい。
それができないのならあなたは職業倫理を持たない堕落した研究者です。私はあなたを非難します。

また大前提として税金を使っているのだから公の利益に貢献するべきです。
税金を払う人たちが税金でメシを食ってる人たちを我々の社会に貢献させられるような仕組みを考えるのは当然の権利です。

>いいプログラムを作ったらいいとしたら、誰がそれを評価するのか?
歴史が評価するのです。

Anonymous said...

張り付き長文荒らしみたいになってますが、
もう少しお付き合いを。

>そもそも研究者は研究を通じて社会に貢献するために研究してるのではなかったのか。
>また大前提として税金を使っているのだから公の利益に貢献するべきです。
>そのために最も効率の良い方法を考えて欲しい。
その通りです。その貢献の仕方として、
税金利用の抜け道をなくし、産業界や学問に対する中立性を担保し、
人類の共有財産として誰もが読める形にして残す、
全体の最大効率を求めた結果が「論文」だっただけです。
それ以外のものは大体様々な社会問題を引き起こします。
具体的な問題について詳しくは上で書いた通りです。

>税金を払う人たちが税金でメシを食ってる人たちを
>我々の社会に貢献させられるような仕組みを考えるのは当然の権利です。
言っておきますが、論文という形式に縛られるようになったのは特に最近で
国民が研究界に不正防止や効率化を求める一環で一人一人の成果を可視化し、
全研究分野で仕事量が分かりやすい指標として論文という基準が重視されるようになったからです。
研究者の評価とか、研究不正とか、効率とか、税金の無駄遣いとかを気にしないのであれば、
別に論文という統一形式は不要なんです。
実際バブルの頃は永久雇用制で論文は書かなくても首にならなかったので
仕事をせずに給料をもらってた人もそれなりにいて、それが見直されてるんですね。
その仕組みが変わり、自分よりも詳しい専門家に自分がした研究を論文を通じて審査され、
そこで認められたものを持って次の仕事先に応募するような世界になり、
論文主義が徹底されたことで一人一人が手がぬけなくなってるんです。
つまり、あなたのいう「当然の権利」を行使した結果こうなったんです。
あなた(や Mozilla)にとってこれは都合は悪いかもしれませんが、
きちんと研究界は社会に対して効率化された結果で、
この不正がしにくい論文という枠組みを通じて社会貢献していますから安心して下さい。
まぁ、論文主義が行き過ぎた結果、悪い面が出ている部分があると思いますが、
現実的にはそれが全体最適でそれよりマシな方法が見つかっていない感じだと思います。

Anonymous said...

>>いいプログラムを作ったらいいとしたら、誰がそれを評価するのか?
>歴史が評価するのです。
「歴史による評価」と聞けば格好良く聞こえますが
マジレスすると研究界にとっては最悪の評価基準です。
研究は100個やっても実用化されるのは1個に満たないような世界です。
ではその他の99個の研究は無駄なのかというと決してそうではなくて、
99個のアイデアや取り組み、失敗があって、それが共有され議論され洗練されて
やっと成功に至る1個が生まれるような世界だからです。
「歴史に評価されなかった」99個が評価されないシステムでは研究界は成立しません。
イチローのような一流選手が日本から誕生したのは何故でしょうか。
日本の野球人口が多いため野球全体のレベルの高く、
様々な仲間や練習方法、戦術などの環境が整備され、
朝から晩まで野球で食べられるプロの世界があったからです。
では、イチロー以外の「歴史が評価しない選手」を全員野球界から追放したら
イチローのような一流選手が日本から生まれたでしょうか。
この例えと似ています。

最近で言うと、人工知能やバーチャルリアリティが注目を浴びてますが、
これも数十年間実用化せず、粘り強く予算を配分しては失敗を繰り返しては改善し、
やっと最近花開いたわけですが、あなたのいう歴史が評価する世界線では
何十年もこれらの技術は「歴史は評価しなかった」とかいって無くなってたでしょうね。

ついでに、歴史は常に一番良いものを評価するわけでないって問題もありますわね。
何十年の中で本当に人類に必要で役に立つものよりも、面白いものだけが評価されて流行るとか、
目先の道具として使い勝手がいいものだけが評価されるだけになるでしょう。
それはそれで注目を浴びるだけの無意味な活動で税金の無駄遣いが横行して、
技術革新の最大効率を目標とする今の論文システムよりも非効率になるだけでしょうね。
(そもそもこれは「開発」であって研究者が取り組む「研究」ではない)

さて、コードを評価する際のたくさんの問題の指摘された中で、
たった一つ「評価の方法」についてだけ「歴史の評価」という
現実には研究会を潰したいのかとも思ってしまう非現実的な提案をいただいたわけですが、
その他の大量の問題点の解決法についてはどうお考えですかね。
結局、こう考えると、やっぱり論文主義にして、
専門家で仕事に対する成果レポート(論文)を審査しあって推敲し、
研究者や研究業績を評価するしかないと思いません?

Anonymous said...

>職業倫理を持たない堕落した研究者です。
その上で、これに反論したい。
もしあなたの個人的な理想論が実現されていないことを「倫理観の欠如」といっているなら
それはちょっと仕組みや現実に対する勉強が足りないかなと思ってしまいます。
倫理観をもって全体最適を考えた結果「論文」という結論になっているのに、
あなたのいう非常に効率が悪く抜け道だらけにする仕組みを導入することが
果たして高い倫理と言えるのでしょうか。

Anonymous said...

戻ってきてコメントを読み直して追記があったのでもう一つだけ。
# コメント先を先ほど間違え、失礼しました。

>そのために最も効率の良い方法を考えて欲しい。
>また代わりに考えてくれている人の声に耳を傾けて欲しい。

耳は傾けてますからね?
いきなり「それは嫌ですやりません」と言ってるのではなく
実際に頂いた意見の通りに仕組みを変えたら研究界にとってどういう問題があるのか、
なぜその方法がうまくいかないか、本気でその方法を議論して長文になってるわけですからね?

むしろ、こっちが指摘する問題点について耳を傾けてないのはそっちじゃないですかね。
何度も何度もソース公開とか論文以外の方法は色々問題だらけでうまくいかないと説明してるのに
そういう問題点をガン無視して、自分の我儘が通らないことを感情だけで「非難します」とか言われても…。

実際、こっちが言う問題点に耳を傾けてもらって論文以上の方法を示していただかない限り
現状最善の「論文」から何も改善できることが出てこないんですが、、

Anonymous said...

アカデミックのことは知らないから、現状最善の論文システムとやらは分からないが、
なぜそれがソースコードを公開してはならない、という結論に繋がるのだろうか?

論文が最善なら、いままで通り論文を公開すればいい。
そのうえで、ソースコードも公開すればいい。

いままで通り論文で評価して、しかし、ソースコードも公開すればいいだけの話ではないだろうか?

ソースコードを公開するのが、本当に大変な作業ならともかく、既にソースコードを作って、その研究成果を論文にしたのなら、既に出来たコードに、必要な実行環境などの情報を付記して、どこかのサーバーにアップロードすれば終わりだろう。

既にあるソースコードに、必要な実行環境と何のオープンソースライセンスに準じるか書くだけだ。著者の情報などはもう論文の方に乗っているのだろうから、書く必要はない。

そんなの作業量にして数分だろう。少なくとも、丸一日二日かかるものでもない。それに対して、コードを公開しなかったときに、新たに書き直す手間暇はいったいどれだけだろうか?現状最善とやらの慣れない論文を読みときながら書き下さねばならない。

kmizushima said...

論文公開したらソースコードも公開してはならないなんてことは全くないですし誰も言ってないと思いますよ。著名な国際会議に論文出して、同時に自分のWebページにオープンソースライセンスで再現用のコードも置くなんてのはざらにあります。

ただ、再現性のためにはソースコードと実行環境を書くだけでは全く十分でないというのは指摘しておきたいと思います。たとえば、CPUの世代やメモリ容量、ストレージの性能など数年でかなり変わりますから、論文執筆時と全く同じ実行環境というのは数年経つと既に入手不可能になっています。OSSにすればいいという程度の問題ではないということは指摘しておきたいです。


なお、論文につけたソースコードも評価対象になる(というと語弊がありますが)Artifact Evaluation http://www.artifact-eval.org/guidelines.html

という仕組みが既にあります(実際にどの程度やってるのか詳細は知らないですが、パッケージングのひとつとして、VMの中に必用なソフトウェア一式を組み込んで再現性を保証するというのがあるようです)。

> それに対して、コードを公開しなかったときに、新たに書き直す手間暇はいったいどれだけだろうか?現状最善とやらの慣れない論文を読みときながら書き下さねばならない。

これはただのクレクレ君であるとしかいいようがないでしょう。あなたが論文の成果を使いたいのなら、論文の手法に従って自分で実装すればいいのでは?ソースコードはあくまで実験の再現性を上げるために「あった方が良い」ものであって、あなたがコードの成果をタダで欲しいから「よこせ」というのは身勝手に過ぎるのでは?

kmizushima said...

> そんなの作業量にして数分だろう。少なくとも、丸一日二日かかるものでもない。
> それに対して、コードを公開しなかったときに、新たに書き直す手間暇はいったいどれだけだろうか?
> 現状最善とやらの慣れない論文を読みときながら書き下さねばならない。

あと、論文公開とあわせて公開されるコードは、あくまで論文を評価するために必要な最低限の実装であることもあるので、実装の手間を省きたいから論文と同時に公開されるコードに頼りたいという戦略はそれほどうまく行かないのではと思っています。ソフトウェア論文みたいなカテゴリは別として。

# そのままプロダクションレベルで使える実装が論文の参照実装として公開されていることはありますが、これはそうなっていればもうけものという話で、最初からそれを期待するのは違うのではないかと思います。

Anonymous said...

別の研究者の方に色々と補足をいただいているようで、ありがとうございます。
こちら側の要点を書いておきます。

>論文が最善なら、いままで通り論文を公開すればいい。
>そのうえで、ソースコードも公開すればいい。

補足いただいているように、論文に使ったソース公開がダメという話ではなくて
1) 良いソースや成果物を作ることを研究者の評価基準にすると様々な問題が発生する
2) 論文公開時にソース公開を強制すると委縮して効率が落ちる
ということですので誤解無く。

>そんなの作業量にして数分だろう。

何度も書いてますが、公開できないケースというのは権利絡みの問題か
高額な専用機がないと結局ソースが動かせないケースとかが大半で
数分の作業で公開すりゃいいとかそういう単純な問題ではないです。
うちも共同研究者からデータを預かって解析して論文を書くことがあるんですが
「データとソース公開必須」って共同研究者に言ったら研究は打ち切りになるでしょう。
結局科学技術の発展効率が悪くなるってことですわ。

Anonymous said...

>慣れない論文を読みときながら書き下さねばならない。
>コードを公開しなかったときに、新たに書き直す手間暇はいったいどれだけだろうか?

再実装にも「研究の追試」という研究上の重要な役割があるのでその手間暇は無駄ではありません。
あと、論文はそもそも慣れない人が読むものではなく、
科学技術発展の最大効率のために研究者同士で情報共有をして科学技術を発展させるためのものです。
非専門家や企業にコードや技術を持たせることは(悪い言い方ですが)研究者の仕事ではありません。
何の危険があるかも明らかになっていないコードを誰にでも動かせる形で公開する社会の方が遥かに危険です。
論文に慣れないレベルなのであれば、研究のコードを中身を理解せずに安易に動かさないで下さい。

ちなみに、研究者は論文の本数に加えて論文が参照された回数も大きな成果になるため
ソース公開した上で利用した場合に引用をお願いすることで引用数が稼げることもあります。
そういった理由で研究者にもメリットがあり、私の周りでもソースが公開されている場合も多いですよ。
その場合でも、研究での利用に限られている場合が多いってことも付け加えておきます。
(金儲けとか個人用途で使うなら再実装しろってことです)

そんな私も今まさに研究で使うためにソースが無い論文から再実装中です。
ソースが公開されてたら中も読まずに使って時間が短縮されてた可能性もありますが、
再実装を通じて論文への理解も深まりますし、追試という重要な仕事にもなります。
あと色々な発見や勉強にもなるので、決して無駄とは思ってないですよ。
もしろこれも研究者の仕事のうちでしょうからね。

Anonymous said...

もはやだれも読んでいないかもしれませんがコメント。
情報科学系の研究論文ならだれでもきっと論文からコードを作れるのでソースコードは入れなくても良いと思いますが、より自然科学寄り(例えば化学とか)の論文であればソースコードをSIとして添付するのが良いと思っています。
再現性の問題等もありますし。
むしろ使い勝手の良いコードを添付していかないとその分野は広がっていかないように思えます。

Anonymous said...

研究者の立場で返信したのが懐かしいですがこんなに時間が経ってたんですね。
色々と書類を整理してたら、ちょうどこの件と類似するメモが出てきたので、
消す前にここにコメントできる形に直して貼っておきます。

新しいコメントいただいておりますが、自然科学寄りの研究では同意ですし、
また情報科学系でもAI等で複雑になりすぎていて、ソースが無いと論文の再現性が取れない時があるので
少しソースコードの重要性が高まっているのかなとは思っております。

ただ、論文発表と同時にソースコードの公開を「強制する」というのは今でも研究分野に限らず反対です。
「使い勝手の良いコードを添付していかないとその分野は広がっていかない」
というのはその通りだと思いますが、それは社会から強制されるべきものではなく、
メリットデメリットや危険性を天秤にかけて、研究者や学会に決定権がゆだねられるべきだと思います。
(安心して下さい、本当に社会的に必要な場合はきちんと学会も公開しましょうってなっていきますから)

以下がメモの内容です(情報科学系限定の話です)。
---

ソースコードが欲しい人の属性ごとに返信させてください。

・あなたは研究者か、研究者を志す学生ですか?
だったら、ソースよりも技術を実現する方法に興味を持つべきです。
もちろんソースがあれば論文に書いてあることを理解するのに役立つとは思いますが
別にソースに技術の要点やアイデア、どこが新しいなどがまとめられているわけでもないので、
ソースを読んだり動かしたりしたところでプラスアルファぐらいのメリットしかないでしょう。
どうしても正当な学術研究目的でソースが必要な時は、著者にソースがもらえないか交渉して下さい。
科学の発展に寄与すると思ってもらえたらほぼソースは貰えると思います。
自分の研究に興味を持ってもらえているということは、引用数も稼げそうなので悪い話ではありません。
よって、ソースコードの一般公開を強制する必要はありません。

・あなたはMozzilaのように、同じ研究分野の民間企業ですか?
だったら、論文の根拠になったソースが欲しいという気持ちはわかりますが、
利益相反や癒着を防ぐためにも、産学の判断は独立しているべきで、研究会の意思を尊重すべきです。
そもそも、学術論文の検証は企業の責任で企業内で行うべきことです。
(ほとんどすべての企業は研究者に頼らず自社内で論文の検証を行っています)
学術研究には税金が入っていますから、特定の企業にだけ利するようなソースコードを
一般公開するのは不正競争防止の観点からも良くないです。
どうしても学術の手を借りたいなら、きちんと学術に共同研究費なりを支払って
公式な手順で共同研究を申し込んでください。
よって、ソースコードの一般公開を強制する必要はありません。

・あなたは研究結果を自社の製品やサービスに組み込むことを考えているエンジニアですか?
だったら、中身もきちんと理解せず製品やサービスに論文の技術を組みこもうとするのはダメでしょう。
そのサービスで何かあった時に責任を取るのはあなたですよ?さすがに倫理観が低すぎます。
中身をきちんと理解して、世の中に悪い影響を与えないか精査しましょう。
それだけの技術が無いなら、学術指導制度でも共同研究でもなんでもいいので、
きちんとした研究者にお金を払って手伝ってもらいましょう。
また、もし論文のソースコードを使ってバグがあった時に責任を取るのはあなたですし、
学術系のソースコードには商用不可のコードを利用しているケースも多いですから
何も考えず組み込むとライセンス違反の責任を取らされる可能性もあります。
そもそも研究のコードはプログラミング経験の浅い学生が個人で書いているような場合も多いので
論文のソースコードは質などを求めるようなものではありません。
いずれにせよ、商用化するなら論文のソースコードには頼らず、自分の責任で一から作り直しましょう。
よって、ソースコードの一般公開を強制する必要はありません。

・あなたはただ研究結果の技術を楽しみたいだけのエンジニアか一般市民ですか?
だったら、申し訳ないですがこの人たちにソースを渡すメリットがほぼ感じられません。
中身を理解しない人に技術を渡したところで、科学技術の発展に寄与することはまずないでしょう。
強いて言うなら、学術が開発した技術の広告効果ぐらいはあるのかもしれませんが、
研究者の意図しない形で使われて意図していない悪評がつくこともありますからね(私の周りの先生の実話です)。
せいぜい、社会にどのような影響を与えるかも精査しないまま
身元もわからない訳の分からない人が、訳の分からないサービスを立ち上げて
アフィリエイトなどでビジネスされるだけです。
そんな(誰も精査していない)潜在的な危険性があるサービスが流行ったりでもした日にはもう地獄です。
いずれにしても、社会的にメリットよりリスクが上回るように思います。
こういった危険性を排除するためにも「研究者がソースを公開するか決める」というルールを順守すべきです。
もちろん、近年は(危険がなさそうな技術は)ソースが公開される流れですので、
遊びたいのであればその範囲で楽しんでください。
よって、ソースコードの一般公開を強制する必要はありません。