画像解析で車のメーカー名や車種名を当てる

石川信行氏(以下、石川):まず1つ目は、画像解析の事例です。これは先ほどのスキームでいうと、一般の方がこの車を見て「これはこういう車種だな」と判別するロジックを機械で置き換えていくことです。

気になる車を写真撮影して、その車種を教えてもらって、カーセンサーというサイトに連結していくアプリを作っています。なんでこういうものが始まったかというと、ぜんぜん当てずっぽうじゃないんですね。

街角で見かけたこういう車が気になるとか、きちんとカスタマーのみなさんからヒアリングを行いました。あとは車種がわからないんですね。プリウスというのはどこのメーカーさんの車なのかわからないと。そういった方が多くいることがわかったので、この機能を作りました。

精度なんですけれども、カーセンサーにはたくさんの中古車の画像があります。これを使ってモデルを作って、人気のある上位500車種で約95パーセントの正答率を出している状況です。

さらにユーザーのみなさんからフィードバックを得る機能をつけています。なので、間違ったときに正解を教えてくださいねと。カーセンサーというサイトはマニアックなみなさんがいっぱいいらっしゃるので、このフィードバックで精度をどんどん上げていってるわけです。

結果どうなったかというと、実はこれ、車に詳しくない初心者のみなさん向けのサイト、アプリケーションだったんですけれども、ちょっと思っていない方向に行きました。

「#カーセンサーチャレンジ」というハッシュタグをつけていただいて、人の顔を撮ったり猫を撮ったりみたいなことをやるわけですね。バズってまとめられるということです。

例えばこういう雪で埋まった写真を撮ったりするわけですね。これは本来の目的とはまったく違うんですけれども、こういったことをやってしまうわけです。

いいんです。いいんです。別に。なにがよかったか? ダウンロード数が増えたんです。周知徹底やPRになったということです。トレンド検索でポケモンと並ぶところに違和感ありありでカーセンサーが入ってくる、と。まぁ結果オーライです。

イメージ検索や自動校閲の機能を展開

この施策、今いろいろやっていますけど、3年前に一度検討して失敗しています。精度がぜんぜん出てなかったんです。これは実は、3年間精度を磨き続けて、やっと日の目を見たアプリケーションです。

なぜかというと、技術は進歩するんですね。新しいロジックが出てきますし、これを適用することもやってますし、内部できちんと技術検証してきた結果ということです。実はこういった事例って、リクルートの中では珍しくて。長期で成功にこぎつけたのは、リクルートとしてもよい事例だったなと思っています。

画像の持つ情報量の多さを利用して、いろんな機能を展開しています。「ゼクシィ」ではこういうふうに、感覚(的に検索できる機能を作っています)。

みなさん、検索キーワードに文字を入れるときって一瞬悩んだりしませんか? そういったことを解決するために、画像を入力して「これと近い挙式ができる式場はないか?」とか、「そこから連想されるテキストはこれなので、これを打ち込んで見たらどうですか?」とか。そういった感覚でものを探せないか? ということも、今チャレンジしています。

次にいってみます。次はこの「ArGON」というプロダクトです。名前はもうどうでもいいです。これは簡単にいうと、原稿を校閲するロジックです。

この自動校閲の機能は、実はハイブリッドというところがミソです。ルールベースを使って、さらに機械学習のロジックも使っていると。なぜかというと、ルールベースのほうが校閲って得意な項目があるんですね。

例えば日付の間違えとか、電話番号の桁数が違うとか、NGワードだけ引きたいとか。こういったものって、ルールベースでやったほうが精度が高いんです。なので、きちんとルールに任せましょうと。

そのほかは(ルールベースでは)取れないような、間違えそうなところ。例えば、誤字脱字とか原稿内の不一致。あとでご説明しますが、そういったところに機械学習を使って、総合的に自動校閲をしましょうということです。

まずは簡単に、みなさんがちくちく画面上でルールを登録できるインターフェースを用意しています。これはリクルート全部で共通したインターフェースなので、(登録したルールを社内で)共有できます。

さらに、機械学習の部分を2つご説明します。1つは、「原稿内不一致」と我々が呼んでいるものです。例えばよくこういう文章の中で、一番上のほうでは「2〜160人収容できますよ」と言ったにもかかわらず、その3つ下で「300名までOKです」みたいなことがあったりしますね。これは間違いなので、ここをきちっと検出してあげましょうと。

こういったところで、実はword2vecもそうですし、レーベンシュタイン距離みたいなところを組み合わせて、ここ(原稿内不一致)を検出できるように実装しています。

7~8割のリクルートのサイトが自動校閲機能を利用

こちらは誤字脱字です。これはよくご経験あると思いますね。例えば「研修があるので自身のない方も安心」。こう書いたときに、漢字が間違ってますね。これって実は、ルールでは取れないんです。

「自身」という漢字はOKなんです。存在自体はOKなんですけど、人間が見ると前後の単語で「この漢字は絶対こないな」と感覚的に判断してるわけですね。それを機械で再現しましょうよということです。

これはBidirectional LSTM(LSTM=Long short-term memory)というモデルを使って、簡単に正しい文章の並び順の確率を記憶させているんです。これで助詞の間違いなども検出できます。じゃあどうなのかというところを、ちょっとデモで簡単にお見せしようかなと思っています。

ある文章に誤字脱字があったときに、その箇所を検出できると。さらに正しい文章を覚えさせることで、「こういう漢字なんじゃないの?」とか「この助詞じゃない?」というのをサジェストしてくれます。こういったこともできるようになっています。

実はこういった機能をふんだんに利用して、実績が出ています。ほぼ7〜8割ぐらいのリクルートのサイトで利用が進んでいる状況です。

実際、効果も出ています。このグラフはちょっと見づらいんですけれども、一番左がなにもしない場合の不備率ですね。縦が不備率のデータです。横がいろんなチェック観点。日付とかカラムとかっていう観点です。

真ん中の水色のものが、我々のロジック、機能を入れたものです。これは「ボタンを押すと校閲する」という機能です。なので、一番右は、入れているんだけれども、そのボタンを押さなかったというグラフです。

簡単にいうと、一番左と真ん中を比べてもらえばわかるんですけれども、我々の機能を入れると、どの観点でも不備率が下がるんです。一番右は、意地でも人でやってやろうってがんばった結果です。みんな押してくれればいいんですけどね、ということです。

実はこれも簡単ではなかったんですね。気づきとしては、学習データがなかったというと語弊がありますが、簡単にいうときれいな文章しかなかった。校閲後のデータしか蓄積されていなかったんです。

本当は、校閲する前のデータも欲しかったんですね。なので、ここをしっかり集めましょうよということをまずオペレーションとしました。我々はフィジビリティと呼んでいますけど、そういったことをしました。

さらにはクラウドソーシングの活用を行い、正しい文章からわざと間違えた文章を作っていただいて、これを学習した経緯もあります。なかなか一筋縄ではいかないなということです。

掲載NGのクチコミかどうかを自動で審査する

次は、テキスト分類のプロダクトを利用した事例です。これは、クチコミの審査を自動化したフレームです。

我々リクルートのサイト、とくにライフスタイル領域のサイトでは、クチコミって重要なウェイトを占めています。年々クチコミは増加していて、みなさんが宿や美容室を選ぶ基準にもなってきているので、大切な情報データということです。

ただですね、実はこれ、審査をしなければならないんです。あるクチコミがあったときに、このクチコミのNG理由が相当難しくて。僕は最初「別にいいんじゃないか」と思っちゃったりするんですけれども、きちんとNGな理由があります。

例えば、「みなさんに均一に提供されていないので書いちゃダメですよ」という文章だったり。あとわかりやすいのは、たぶん個人情報が入っているとかですね。こういったものは載せちゃいけませんよと、しっかり審査をしています。これを機械で置き換えられないかという話です。今でいうと、人がこのクチコミを全部見て、3人体制とかで審査をしているところを機械で代替しましょう、といった構成です。

実は最初、テキスト分類、テキストの特徴量を採るためにLSTMとかリカレントニューラルネットを使ってロジックを作ったんですが、精度が出なかったのと、ブレイクと精度の学習時間がちょっと遅いんですね。

せっかく画像解析の技術を持っているので、それを転用しました。すなわち、テキストを画像の並び、小さいピクセルの並びだと仮定して、ConvolutionNetを使いました。技術としては、先ほどの内容とほとんど一緒です。これでだいたい、93パーセントぐらいの精度まで検出することができました。

実際、ここも重要な観点ですが、ただ作って、分類しました、実装しました、だけだとぜんぜんダメなんですね。なぜかというと、新しい審査項目はどんどん増えていきます。さらに精度も100パーセントには絶対にならないんですね。うまく継続的に精度を保つ仕組みを作ってあげないと、劣化していきます。負の遺産になってしまうということです。

なので、画面に「間違ったところをフィードバックしてください」という機能をつけるんですね。レベルの高い審査員の方がそこを訂正してあげて覚えさせるわけです。