機械学習エンジニア・データサイエンティストのmuraokazです。VISITS Advent Calendar 2019の19日目の記事となります。9日目の記事では可視化の定量評価というややニッチな技術について書きましたが、今回は違った切り口からデータサイエンスについて書いてみたいと思います。
最近、仕事中に接した学生さんから「(企業でやっていくときの)データサイエンスで大切なことって何ですか?」と聞かれました。データサイエンス領域が注目を集めていることもあり、研究室やゼミでデータ分析をしている、あるいはKaggleなどに興味を持ってチャレンジしてみたという学生さんも増えてきていて、就活や卒業を前に、より”実践的”な場面でどんなスキルを身につければ良いのか気にする方が少なくないようです。
Facebookの事例
私は普段データサイエンスの中でも機械学習領域を扱っており、その役割のひとつについて話すときによく紹介する例として、2018年1月にザッカーバーグが発表したFacebook投稿の表示順序(アルゴリズム)の変更があります。これは、企業やブランドのFacebookページの投稿より友人による投稿を優先して表示する変更で、発表当時大きな反響がありました。
https://www.itmedia.co.jp/news/articles/1801/12/news059.html
詳しくない方のために補足すると、Facebookの「ホーム」フィード(=ページを開いたときに最初に目にする主要なタイムライン)には友人の投稿のほか、自分が「いいね」をしたFacebookページの投稿などが並びますが、その並び順はデフォルトでは新着順とはなっておらず、Facebookのアルゴリズムが持つ計算式によって算出されたスコアによってその並び順が決まっています(ユーザーは「最新」↔「ハイライト」で並び順を変更できます)。そして上記の発表は、変更前に企業やブランドのFacebookページで高くなっていたスコアを今回調整した(する)、という内容でした。
なぜ、企業やブランドのFacebookページのほうが友人の投稿よりもスコアが高くなっていたのでしょうか。以前、似た(数千万人規模でデータを機械学習するような)フィードアルゴリズムを設計・開発していた経験から推察すると、変更前のスコアは、ユーザーが興味を持つようなコンテンツを上位に持ってくるように最適化されていたのではないかと思われます。
Facebookに限らず、最近の多くのWebページやアプリでは、ユーザーがサービス上でどれくらいの時間を過ごしていたか(あるいはどれくらいのコンテンツを閲覧したか)を計測しています。そして、いくつかのサービスでは機械学習アルゴリズムを利用してその数値を最大化するようにコンテンツを選んだり配置する仕組みを採用しています。ユーザーがサービスにより多くの時間滞在することで、掲載されている広告等から多くの収入を得られるようになります。企業やブランドのFacebookページのスコアが高くなっていたのは、端的に言うとこれらの発信した投稿が(友人の投稿と比べて)ユーザーの興味を多く引いていたためであると考えられるのです。
サービスが何を目指すのか、数値化の難しさ
従って、ザッカーバーグの発表は、短期的にはユーザーの興味のあるコンテンツの優先順位を下げ、Facebookの収益も下げる施策であると考えられたため、驚きを持って迎えられました。上記記事にもありますが、ザッカーバーグは「この変更で、ユーザーがFacebookで過ごす時間が短くなり、エンゲージメントも下がるかもしれない。だが、ユーザーがFacebookで過ごす時間は今より価値のあるものになり、もしこのやり方が正しければ、長い目で見ればコミュニティだけでなく、われわれの事業にとってもメリットになると信じている」と述べています。
最初の質問に戻ると、機械学習エンジニア(・データサイエンティスト)のもとには、「〇〇のサービスがもっとXXとなるように改善したいんですが」というような相談が多くやってきます。そして、僕たちが取り組む最初の、そしてもっとも大切だとも言える仕事は、まだこのように抽象的なサービスの目指していく目的地を、機械(コンピュータ)でもわかる数値目標にブレークダウンすることです。コンペティション形式のデータ分析は、既にこの問題設計が完了したところからのスタートですが、現実にはそのスタート以前のところにも大きな仕事が存在しています。
目的を数値化する難しさの根源は、普段人間が無意識にしか考えていない常識を再認識しなければならないところにあります。
人間の思考は様々な前提条件に縛られています。例えば、我々が「お金持ちになりたい」と言ったとき、それは通常、銀行からめいいっぱい借金をして一時的にお金を持っている状態は指していません。
機械にはこうした常識は通用せず、もし検索ページにおいて「クリックを最大化すること」を目標にアルゴリズムを改良していったとすれば、「ユーザーの検索意図ではないが、つい興味を持ってしまいそうなもの」が検索結果のページに紛れ込んできてしまうでしょう。宿題をしようとしていたのに視界に漫画がちらちら入ってきたら勉強がぜんぜん進まなさそうです。ユーザーは、最初はそうした検索サービスを面白がって利用していたとしても、次第に時間を無駄にしていることに気付いて離れていってしまうかもしれません。現実の検索エンジンがそうなっていないのはシステム設計者のおかげですが、深層学習(ディープラーニング)などの発展によりアルゴリズムのブラックボックス化が進むと、思いがけずこうした状態に嵌ってしまうサービスが増えてきても不思議ではありません。
データやアルゴリズムを扱う人に求められること
ビッグデータに機械学習を用いると非常に強力なアルゴリズムを作れますが、その目的変数(文字通りの意味での)を適切に定めないと思いもよらない挙動を示してしまうこともあります。Facebookの事例は、ユーザーのエンゲージメントを目的変数としていたところ、アルゴリズムがサービスのありたい姿を超えて最適化された(それにザッカーバーグが気付いて軌道修正した)という見方ができると思います。サービス開発者は「XXのようになってほしい」といった目指す場所を描いていますが、データとアルゴリズムについてもっとも触れている機械学習エンジニア(・データサイエンティスト)にはその目標を正しく翻訳することが期待されているでしょう。
冒頭の学生さんに限らず、機械学習アルゴリズムやデータに興味を持っている方は、その延長線上にある実際の世界との繋がり(コンペティションの外側)にも目を向けていると思います。その二つを擦り合わせるため、またデータサイエンスに対する理解を少しでも深めるために、このエントリーが少しでも役立てば幸いです。