Azure MLで機械学習してみた 〜『もの、ごと。』事例紹介と初心者が進める上での注意点〜
2017年 12月 21日
※この記事は エキサイト Advent Calendar 2017 21日目の記事です※
ごあいさつ
こんにちは。
12月12日にリリースされた産まれたてのサービス『もの、ごと。』の
担当エンジニアの竹下です。(@takobayashi さんの代打で参戦させて頂きます)

『もの、ごと。』は、家事系ブログを自動分類し、リアルに役立つ暮らしのノウハウをお届けするブログメディアです。
フロント側はNuxt.js(Vue.js)を用いた、SPA+SSR+PWAなアプリケーションになっています。
今回は、こちら『もの、ごと。 』で使われている機械学習について、ざっくりとご紹介したいと思います。
トピックスは「どこに機械学習を使ったか」「Azure ML概要」「初心者が進める上での注意点」の3本立てで行きたいと思います。
どこに機械学習?
『もの、ごと。 』では、色々なブロガーさんのブログ記事をスクレイピングして取り込んで、
カテゴリーとテーマという2つの方法でキュレーションをしています。
分類 | 概要 | 方法(ざっくり) |
カテゴリ | ブログ記事を「家事」「料理」「整理収納」「インテリア」に分類。 | 機械学習 |
テーマ | ブログ記事を設定したキーワード条件に伴って自動分類 例) 「\どうしてる?/クリスマス」 | キーワード条件手動設定 → その後は記事を自動登録 |
「カテゴリ」の方に機械学習を使ってます!
https://monogoto.me/blogs/59

どうやって機械学習?
処理の全体像
ブログ本文を取り込み(スクレイピング)して名詞を抽出、それを機械学習したモデルに流し込んでカテゴリのIDをゲットしてます。
今回は「もの、ごと。」のオリジナルモデルを使りました。
ディレクション側(弊社ではプロデューサーという役職)が思い描くクラス分類を行うためには、家事分野などに特化したオリジナルのモデルが必要になったためです。
オリジナルのモデル作りに当っては、プロデューサーの方々に協力して頂きつつ学習データとテストデータを集めました。
このデータの精度によって、モデルの出来不出来が変わってきてしまいますし、最終的な分類のされ方にも大きく関わってきます。
記事をどう分類したいかはプロデューサーの頭の中にあるので、今回前向きに協力して頂き本当に助かりました。
機械学習部分(Azure ML)
最近は、「コードを書かなくても機械学習が出来てしまう」みたいなサービスが増えています。
特徴を紹介していくと、
今回は色々試した結果、Two-Class Neural Network + One-vs-All を使いました。
▼ボタン一発で簡単にWeb API化

https://azure.microsoft.com/ja-jp/pricing/details/machine-learning-studio/

大量に裁かなきゃいけないものには向いてません。
そういうのは自前でサーバーを作るか、他のサービス使ったほうが良いかもしれません。
初心者が機械学習の企画を進める上での注意点
右も左も解らない状態から始める際に、「ハマりそうだな」「大切だな」と思った所をまとめたいと思います。
「人間ができないことは機械にもできない」という認識を企画担当者に持ってもらう
- 「本文だけを見て書かれた年月を予想」など
→ 本文中に日付の表記がない限り、たぶん人間が見ても解りにくい… - 記事の前半に「インテリア」最後に今日作った「料理」が載っているようなもの
→ どっちのカテゴリーか解らない
→ 判別時に合わせて出てくる分類確率が95%を下回った場合は、切り捨ててます
全ての記事が分類できるようにモデルを作る
よくよく考えてみれば、全てのブログ記事がその4つのカテゴリーに分類出来るわけでは無いという事に気が付きました。
Azure MLでは日本語の取扱に注意する必要あり
日本語を入力した際に意識すべき所が何点かあるようです。
根本的な所を見直す
根本的な所から間違っている可能性が高いです。(経験談
Azure MLでは一つ一つの処理の出力結果が簡単に確認できるので、順に間違っていないかを確認したほうが良いです。
ある程度は諦める
自分のような初心者は、そもそも機械学習に依存しすぎないサービスから手を付けると良いと思います。あくまでもサブの機能としての機械学習。
勉強会を開く
エキサイトでは、機械学習部分を実装方法については、サービスの状況に合わせてそれぞれの担当者が判断しています。
Azure MLの他にもPythonのライブラリを使ったりC++を使ったり…
ただ、他のサービスと関わり合いが無いかというとそんなことは全くありません。
各部署のノウハウを共有したり、詰まった所を相談したり、機械学習の基本的な部分を勉強したりできる勉強会が定期的に開かれています!
初心者の自分にとってはかなり有難い存在でした。
機械学習を選考していた学生さんとかは社内にも案外多いと思いますので、
開発時には勉強会のような交流できる場があると詰まりにくいかと思います。
エキサイト Advent Calendar 2017 はまだまだ続きます.
ぜひ今後も投稿をウォッチしてください!