Aidemy Tech Blog

機械学習・ディープラーニング関連技術の活用事例や実装方法をまとめる、株式会社アイデミーの技術ブログです。

チャット内容を「見ずに」スパム判定するWhatsAppの機械学習アルゴリズムは「決定木」か?

f:id:tarisaa:20170601212505p:plain

Facebookの開発者向けカンファレンス"F8"で紹介されたスパム判定技術

 "F8"は2007年より毎年4月にFacebook社で行われている開発者向けカンファレンスである。10回目となる今年のカンファレンスは2017/4/18-19で行われた。今回の注目発表としては、「ARプラットフォーム」「VRプラットフォーム」「考えるだけで電子デバイスに文字を入力できる研究開発中の技術(!)」などが挙げられるだろう。

 全てのセッションはFacebook Developer上で約30-40個の動画になって誰でも閲覧できる。今回はその中から、同社のAIを用いた取り組みの一部を紹介しよう。今回は"How WhatsApp Reduced Spam for Over 1 Billion People"を取り上げる。同社のメッセージングアプリの「スパム対策」の取り組みに関して紹介した、20分程度の動画である。

developers.facebook.com

何故新しいスパム判定技術が必要なのか?

 スパム判定技術といえば、Gmailの「迷惑メール」機能が真っ先に思い浮かぶだろう。同機能はベイズ統計学を活用した事例としてあまりに有名である。*1しかし、Whatsappの場合、「End to end encryption」と呼ばれる暗号化方式が使われている。同技術では、メール本文が完全に暗号化されるため、ベイズ統計学を用いた推定が難しいのである。

f:id:tarisaa:20170602015800p:plain

 Whatsappでは「End-to-end encryption(エンドツーエンド暗号化)」が用いられている。これは、メッセージの内容は暗号化されており、発信者と受信者しか本文を解読できないというセキュアな仕組みである。

 以上の理由より、スパム判定を行う場合も、本文を見ずにスパムかどうか判定する必要があるのである。E2E暗号化は2016年からfacebookで実用化が始まった比較的新しい技術であり、今までと同様のベイズ統計によるアルゴリズムで迷惑メールを推定するのは難しい。そのため、スパム判定に関しても新しいテクノロジーが必要としていたのである。

学習するためのトレーニングデータと実績は?

 機械学習を行うためには、大量の学習するためのトレーニングデータが必要となる。同社では、以下のように用意したと述べられていた。

今回使用したデータとして、大きく分けて「ユーザーの特徴」と「送信の特徴」と「正解(スパムかどうか)」がある。「ユーザーの特徴」とは、会員登録日、メッセージの送信頻度など。「送信の特徴」とは、「アプリによる送信」か「スクリプトによる送信」など。「正解(スパムかどうか)」はユーザーからの報告によって得られるものである。

 以上の情報から、スパムデータを以下のようなアルゴリズムで学習したと述べられている。

1. トレーニングデータとして、「ユーザーの特徴」と「送信の特徴」と「スパム報告」を使用

3. トレーニングデータを機械学習させ、スパム判定システムを構築

3. 以上のシステムを用いてスパム推定を運用

 実際のトレーニングデータをイメージするには、以下の図を参照するのが分かりやすいだろう。

f:id:tarisaa:20170602020153p:plain

 以上のような機械学習を用いた結果、「3ヶ月で、スパムの報告数が徐々に現象しており、結果約75%の減少に成功した。」と述べられていた。かなり大きな成果が得られたといえるだろう。

どんなアルゴリズムで分類しているか、予想してみた

 以上のセッションの動画では、「機械学習で分類した」とまで述べられていたが、どのような機械学習アルゴリズムを使用したのかは動画内では触れられていなかった。そのため、今回の分類問題を整理した上で、推定してみよう。

 今回のような振り分け問題は、機械学習手法のなかでも「教師あり」「分類(2種類)」問題とみなされる。「教師あり」とは「正解が与えられている」ことを示す。今回であれば、「スパム」か「スパムでない」かを、事前にユーザーからの報告によってデータを得ていることを示している。その対義には「教師なし」がある。

 「分類」とは「最終的にグループ分けをする」ことを示す。今回であれば、「スパム」か「スパムでない」かの2種類に分ければ良いのである。なお、その対義には「連続値」の出力がある。

 そうした「教師あり」「分類(2種類)」の機械学習は最もシンプルな領域であるため、様々なアルゴリズムが提案されている。回帰系だとロジスティック回帰、サポートベクターマシン、決定木系だと決定木やランダムフォレスト、ニューラルネットワークなど様々ある。

 実際、アルゴリズム選定の際は、すべての手法を試し、精度の高い手法を取り入れることが多い。しかし、今回の機械学習アルゴリズムでは、「決定木」を利用しているものと推察している。決定木のアルゴリズムイメージは、以下のようなものである。

f:id:tarisaa:20170602024023p:plain*2

 「決定木」アルゴリズムの強みは、「分類されたのか理由」を、以上のような図で説明できることにあり、直感的に内容を理解できることにある。一方、ニューラルネットワークを始めとする手法の多くはブラックボックス化されているため、「何故分類されたのか」説明するのは難しい。

 Whatsappで一番避けたいことは「本当はユーザー間のコミュニケーションチャットなのにスパムと認定されて友達にメッセージが届かない事態」だと考えられる(統計学では「第1種の誤り」と言われる。)こうしたことを極力避けるために、今回の場合、人の目からも直感的に内容が分かり、チューニングが可能であるアルゴリズムを採用した可能性が高いと考えている。

 Whatsapp、そしてfacebookのAI・機械学習の取り組みを、引き続き注目していきたい。