Qiitaで見る機械学習のトレンド<2018年夏>
『Machine Learning (機械学習)』をテーマに開催された「Qiita × Microsoft 共催 MeetUp」。
当記事ではその際に発表された「Qiitaと機械学習」の内容をまとめてご紹介します。
なお、MeetUpでは、クックパッドの染谷氏による機械学習のサービス開発について、日本マイクロソフトの畠山氏の Microsoft AI Platform についてのプレゼンもありました。
その内容についてはこちらの記事でご紹介していますので、あわせてご覧ください。
発表者:東峰裕之
IncrementsにてQiitaやQiita Teamのデザイナー兼コミュニティマネージャとして、コミュニティの活性化に従事。
Qiitaのタグから見る機械学習のトレンド
Qiitaにはタグという機能があります。
ユーザーの皆さんに記事にタグをつけて投稿してもらうことで、タグページを通してどんな記事が投稿されているのか横串で見ることができます。
例えば「Javascript」タグには現在2万件ほどの記事が投稿されていますね。
機械学習関連では、Machine Learningのタグが一番大きく、3000以上の記事が投稿されています。
関連したタグとしてはDeepLearningやTensorFlowも投稿数が増えています。
プログラミング言語だと、機械学習系で利用されることも多いためか、Pythonが最近は顕著に増加していますね。
Azure Machine Learningは、それらと比べてちょっと少ないんですが、これはQiitaのユーザー層によるところがありそうです。
というのも、Qiitaのユーザー層はいわゆるオープンソース界隈の技術が中心で、例えばエンタープライズ寄りの技術、大規模なサービスで利用する技術、ハードウエア系などに関してはまだまだ利用者が少ない、という状況が背景にあると思われます。
今後もっともっと投稿していただけるようにして行きたいですね。
こちらは投稿数でプロットしたグラフです。
青い太いバーが機械学習タグで、2013年あたりから記事は出ているんですが、とくに増えてきたのは2015年です。
2015年はTensorFlowがオープンソース化された年で、その2日後ぐらいにはもう記事が出ています。
この記事が1300いいねぐらいされていて、そこからどんどん投稿が増えています。
Keras、Chainer、Neural Networkといったワードも2015年ごろから増えています。
Neural Networkは個人的に面白いと思うんですが、まだQiitaでは投稿が少ない方なので、勉強されてる方、追いかけている方がいましたら、ぜひいろいろ記事を書いてみてください。
また、Qiitaのタグにおける全体のランキングを見ると、Pythonへの注目が高まっているというのも分かります。
全期間で見ると1位がJavaScript、2位がPythonなのですが、期間を週間や月間に縮めてで見ると、最近はほぼPythonが1位を取る光景が続いています。
これは僕が適当にいくつか選んだプログラミング言語のタグなのですが、2016年にPythonがJavaScriptを抜いているのが分かると思います。
伸び初めを見ると、やはりこちらも2015年ですね。
入門記事が人気。いいね数ランキング
機械学習のタグでここ3カ月のいいね数のランキングを見てみました。
例えば「アルゴリズムとは何か!? ~ 文系理系問わず楽しめる精選 6 問 ~」
「【保存版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法」
「58歳の文系エンジニアがCourseraのMachine Learningを苦労して完走した話」
「コピペから脱却して自由に Deep Learning するための TensorFlow 再入門」など、入門系の話題が人気を博していますね。
※スライド内の画像はQrankさんから引用させていただきました(http://qrank.wbsrv.net/)
どの記事もほんとに良くまとめてくださっていて、入門の人でも読みやすい記事がたくさんあります。
こういう記事を参考にしながら、学習してもらっているのというのが見て取れます。
また、Courseraにあるスタンフォード大学が提供しているMachine Learningのプログラムの人気も高く、日本語字幕でも受講が可能でなので受講されている方も多いようです。
受講後に学習内容をまとめた記事をQiitaに書いている方も結構いらっしゃいます。
機械学習をQiitaでどう活用する?
Qiita自体の開発において、私たちが機械学習をどのように考えているのか、という所です。
現在、Qiitaでは機械学習を使った機能開発は行っていませんが、以下のような事例では使えるかも、と考えています。
1つ目はスパムファイティングです。ここ最近顕著に増加していて、毎日数十件、削除対応してるんですがこれが今手動なんですね。
ユーザーさんから報告受けて、僕らが対応するみたいなことをやっていて結構な負担になっているので、対応した記事の内容などを学習して、ある程度自動で推測できるような仕組みを作れるといいなと考えています。
2つ目は情報の分類です。投稿数が膨大になってきたことで、過去の情報も含めてうまく再発見するにはどうしたらいいのか、という課題があります。
タグだけじゃなくて、機械学習のタグをフォローしている人にとっては、このタグやこの記事もお勧めなんじゃないかといった、適切な情報推薦ができるようにしていきたいです。
3つ目はユーザーの嗜好の推定・可視化です。
この人をフォローするといいよとか、この記事お勧めだよとか、このタグをフォローしておくとあなたにメリットありますよ、といったことができるといいなと考えています。
そうしたことを掘り起こすことで、「自分がどんなエンジニアか」というのが表現しやすくなるのではないか、と考えています。
Qiitaでアウトプットのススメ
先に紹介したように、Qiitaで機械学習について発信される方が増えています。
最後に、Qiitaに書くと何がいいのかお話ししようと思います。
Qiitaを活用するポイントは「記事を書く」、「それに対していいねやコメントをもらう」、「そうするといろいろあるよ(プラスα)」という3点に集約されます。
まず記事を書くきっかけとしては、「自分の知識を整理しておくために書く」のが最初のステップになる人が多いようです。
例えば「機械学習をゼロから1ヶ月間勉強し続けた結果」の記事では、下にたくさんのリンクが並んでいます。
こうやって学んだことを残しておけるので、自分であとから見返したり、他の方が再利用して学習することができます。
そうして記事を書くと、コメントが付くことがあります。記事に対してフィードバックがもらえるということですね。
例えば「この部分ってもしかしてこうじゃないですか」とか、「こういうやり方のほうがいいんじゃないですか」といった形でコメントもらえます。
そうすると書いた方も学びが得られて、記事を編集することで知識のアップデートができます。
編集という意味では、コメント以外にも編集リクエストという機能があって、「記事中のここをこのように直してみました」といった、GitHubのプルリクエストのようなやり取りもできます。
自分の書いた記事にコメントや編集リクエストで付加価値を得られるわけですが、場合によってはもっと大きな広がりを見せることもあります。
例えば、「数学を避けてきた社会人プログラマが機械学習の勉強を始める際の最短経路」という記事です。
これは4600いいねされていてて、Qiita史上でもかなりいいね数が多い記事です。
コメント見ると「この記事を韓国語に翻訳したいです」とあって、記事がこれだけ伸びて評価されると、海外のエンジニアからピックアップされるようになるんですね。
実際に韓国語のサイトに載っているみたいです。
それから機械学習系の話題ではありませんが、『エンジニアリング組織論への招待』(※)という書籍が少し前に出版されました。
著者は広木さんというエンジニアの方で、Qiitaにチームビルディングの話題などを書かれていて、そうした知見をまとめ、書籍を出版されています。
※編集部注:広木さんはQiitaにて「エンジニアリング組織論への招待:リファレンスガイド第1章/第2章」という記事を書かれています。
例えばQiita上で機械学習の話を書いていくことで、機械学習に知見のあるエンジニアとして認知されて、何かしらのメリットを得られることもあり得ると考えています。
記事を書いてコメントもらうという繰り返しによって、記事を書いた方にいろいろな広がりがもたらされているというのが、今Qiitaで起きている出来事です。
Qiitaでは、これからもいろいろなエンジニアの方たちが、エンジニアらしく振舞えるようなコミュニティにしていきたいと思ってます。ありがとうございました。
(編集部より)東峰が発表したスライド資料はこちらに公開されています。
Incrementsでは、一緒にQiitaとQiita Teamを改善したいエンジニアを募集しています!
まずは気軽に、一緒にランチを食べませんか。
興味のある方は こちら 💁
Increments
Incrementsは、「エンジニアを最高に幸せにする」をミッションにしているスタートアップです。エンジニアの方々が幸せに開発できるために、エンジニアの方々が嬉しいと思ってくれるために、私たちはソフトウェアの開発に取り組んでいきます。
Qiita
Qiitaは、知見を共有しスキルを高めることができる、プログラミングに特化したオープンな情報共有コミュニティです。
Qiita Team
Qiita Teamは、チームの生産性を高めるために開発された社内向け情報共有ツールです。チームメンバーが簡単、気軽に情報を書き込んで、それが適切なメンバーと共有され、共有された内容について活発にコミュニケーションを取ることができるサービスです。
Qiita Jobs
Qiita Jobsは、エンジニアに特化した転職支援サービスです。会社ではなくチームを探す。採用担当ではなくチームメンバーと話す。人事ではなく自分が配属チームを決める。Qiita Jobsはあなたに最適なチームで最高の仕事をするきっかけを提供します。