Microsoftの「Technote」で機械学習がMicrosoftでどのように使われているかを示すブログが公開されました。この中には、機械学習を検索へどのように生かしているかも書かれていますので、見てみることにしましょう。
本題へ入る前に機械学習のことを簡単に触れておきましょう。プリンストン大学の「Theoretical Machine Learning」で使われているテキスト(※PDF)に、分かりやすい一文があります。
学習は、常に過去に観測された例(最も一般的なケースとして)、直接経験や指令に基づき、データを並べ替えることで行われています。よって一般的に機械学習は、過去に学んだことを積み重ねていくことで良い知見を得られるのです。
機械学習の重要な点は、自動的に学習を行うということです。言い換えると、最終的な目標は、人間が介入することなく、自動的に学習できるアルゴリズムを作り出すことにあります。
つまり、根本的な部分は人間が行う『学ぶ』という行為をコンピュータでも出来るようにするということです。人間は学んだことを『知識』として活用しますが、機械学習の場合はそれを『アルゴリズム』として構築し、そのアルゴリズムに基いて(あるいは新たな)知見を得ます。
このテキストには機械学習の入門的な内容が書いてあるので、興味がある方はぜひ読んで見てください。こちらから、専門的な内容に入ったものも読めますので、深く知りたい方も必見です。
機械学習はどのように検索へ生かされているか?
最初に機械学習が持っている役割について解説がなされました。
1. データマイニング:
データマイニングは、大規模なデータ群の中から一定の法則やルールを見つけ出すことです。
2. 統計工学:
機械学習は現在あるアルゴリズムから、データ群の中にある法則を見出すものなので、『使えなかったデータ』を統計学的に『使えるデータ』にし、意思決定の材料にできます。
3. 人工知能:
人工知能に必要な“人の心”をエミュレーションする際に、重要な役割を果たします。
こうした役割のもと、検索上では、主に2つのことへ使われています。
マルウェアの駆除
Microsoft Malware Protection Center(以下、MMPC)と連携し、マルウェアを排除するのに機械学習を用いています。詳しい内容については別途ブログに書かれています。このブログによれば、MMPCは3000万以上のサンプルを機械学習で分析し、そこで得たものを既存のファイル・ウェブサイト・使用パターンと相関させて、いち早くマルウェアを見つけ出しています。
検索エンジン
最近の検索エンジンにおいて、自然言語処理というキーワードの重要性は日に日に増しています。例えば「現在地から目的地までの行き方」のような話し言葉で検索を行ったときに、コンピュータが検索者の意図を正しく解釈し、意図に応じた検索結果を返す、というようなことです。音声入力が導入されたこと、検索結果の質を向上させることなどを目的に技術の進化が進められています。
MicrosoftのBingは検索エンジンとして、Google、Yahoo!、Yandexに次ぐ第4位のトラフィックを持っています。このトラフィック量の検索結果を向上させるために、機械学習を用いて自動化し、さらにそのアルゴリズムを向上させています。
最後に
BingであれGoogleであれ(恐らく他の検索エンジンであれ)、検索アルゴリズムは結果の質向上へ進んでいます。それを効果的に、そして人間の言葉を理解した結果を返すために、機械学習や人工知能、深層学習などが用いられていることがわかります。この点は、Facebookのニュースフィードも同様です。だから各社はこぞってこれらの関連技術スタートアップを買収したり、力を入れて開発に取り組み始めています。今後、検索エンジンはより賢く、人の言葉を理解していくことになるでしょう。
さて、検索とはずれてしまいますが、このブログ内にはもうひとつ、Microsoftの認識技術について解説されています。Microsoftの認識技術で著名な製品にKinectがありますが、これには音声認識とモーション認識技術が使われています。後者のモーション認識技術は、最近、コンピュータビジョンと呼ばれて、人工知能研究の分野でも最も熱いもののひとつなので、こちらの技術も要注目ですね。
こうした最新技術の側面から検索技術を見ていくのも興味深いものです。あまり注目されませんが、Microsoftのブログにはこうした話題が頻繁に出てくるので、興味のある方はRSS等でぜひチェックしてみてください!