4行概要
- 最近社内で機械学習勉強会(ランチ会)をやっている
- 紹介するエントリを毎回頑張って探すのは大変
- spreadsheet上で教師データを作り、機械学習モデルを学習、おすすめエントリをslackに投稿
- 砂場ができて便利!
Google Spreadsheet上でみんなでわいわいアノテーションして、裏側で能動学習が動いて次にアノテーションするべきものを教えてくれるので、簡単に効率よく学習データが作れます。他の似たような分類器を作るのに使えそうです。
社内で機械学習勉強会をやっている
小ネタです。ここ最近、はてなで機械学習の勉強会を開催しています。色々な話を勉強会でしていますが、大きく分けると以下の2種類に分かれます。
- 誰かがテーマを持ってきて話す会
- 能動学習、クラウドソーシング/ヒューマンコンピュテーション、他社の機械学習事例(アルゴリズムやデータ解析の基盤について)の紹介
- いわゆる勉強会的な感じ
- 最近話題になったエントリを中心に雑談するランチ会
- 前回は「すっぴんでも化粧顔に見える テレビ会議システム」やラフスケッチの自動線画化、ディープラーニングによるファッションアイテム検出と検索などが話題に
- こんな事例/手法がある、だけに留まらず、これを元にはてなで面白いサービス/機能を作るには?とか、過去にはこんなことに挑戦したことがあったという感じで話題を広げていきます
特にランチ会はアプリケーションエンジニアだけではなくオペレーションエンジニア、ディレクターなど色々な職種の人が参加しており、盛り上がっています。ランチを食べながら雑談形式というのが盛り上がる一因なのかもしれません。Google Hangoutで東京ともつないでやっています。なお、ランチ会はフロントエンド会という別のグループがあって、そちらでうまくいっていたので真似しました。Podcastも配信中、すごい。
課題: 定期的にネタを探してくる時間を減らしたい
ランチ会、盛り上がっていてよいのですが、毎回のネタをどうやって持ってこようかというのは割と頭を痛くする課題です。前回まではtwitterやはてブからネタを持ってきていましたが、張り付いてチェックするのも面倒です。機械学習勉強会なんだから機械学習で解決するか...、ということで就業後の小ネタプロジェクトとしてやってみました。
色々試す(砂場を作る)
やってることは単純ですが、試したいことがいくつかあったので、以下のことを試してみました。
- ElasticSearchに溜め込んだデータを有効活用する
- ElasticSearchに溜め込んだtwitterのデータがあるので、その中からurlを含むものを持ってくる
- 誰がつぶやいたとかfav/RTの回数とかもあるので、いい感じの特徴量も作れる
- 今年よかった習慣: ライフログ収集および可視化 - yasuhisa's blog
- 教師データを共同編集できる仕組みを作る/最新のデータからモデルが作られるようにする
- 今後のことを考えると、みんなでGoogle Spreadsheetを編集するとモデルも勝手に更新されているというのを作っておきたかったので、spreadsheetの情報を編集/取得できるように
- Reusing Google OAuth2 Access Tokens in Perl · Joshua Jordan
- 能動学習を使ってデータのアノテーション時間をなるべく少なくする
- twitterのデータなので、基本的に機械学習関係ないエントリが多い
- 適当にアノテーションすると時間がかかるので、能動学習を使って効率的にアノテーション
- 実タスクで能動学習を試してみた - yasuhisa's blog
ただただ2値分類器を作るだけだと飽き飽きしてしまうので、ついでに色々新しいことやっていく気持ちです。
結果: Slack botで便利になった
半日に一回、こんな感じでbotが知らせてくれるようになったので、自分でネタ探しに行く回数が減らせそうです。 一覧を見て「これは違う」と思うエントリがあったらGoogle Spreadsheetに反映すれば次からは間違いにくくなるので、段々いいやつを勧めてくれるようになるはず。slackのreactionのボタンを押すとspreadsheetに勝手に反映されるとうれしそうですが、そこはまだやっていない...。
やってることは単純なことばかりですが、機械学習をやる上でワークフローに組み込みたいこと(データ作成、結果の通知から改善するワークフローなど)を試す砂場としてもいい感じになったかなと思います。
- 作者: 橋本泰一
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/12/21
- メディア: 単行本
- この商品を含むブログを見る