あなたはデータに対する「正しい技術」選択できますか?数理モデリングによる現象理解に向き合うときの気持ち

はじめまして。株式会社博報堂の熊谷です。

筆者は広告会社の黒子として広告やマーケティング、メディアプランニングのためにどのようなデータをどのように収集するべきかを設計したり、収集したデータを用いて機械学習モデルを構築して施策を行ったりと、データ分析や機械学習にまつわる小さな相談から大きな意思決定に至るまでさまざまな業務に携わっています。

このたび『データ活用のための数理モデリング入門』(以降、本書)を共著者として執筆しました。本稿では本書の紹介を兼ねて「数理モデリングとは何か」についての筆者の思いを書きます。いわば、収録されなかった「前書き」です。

数理モデリングとは何か

そもそもタイトルにある「数理モデリング」とは一体何でしょうか。本書の1章では

現象を理解するために立てる数理的な仮説を数理モデル、また数理モデルを立てることを数理モデリングと言います

と定義しています。では、数理的な仮説とは一体どのようなものでしょうか。

筆者は「現象、ひいては世界をどう捉えるか」ということだと考えています。

たとえば、筆者における「グラノーラにヨーグルトをかけたものを朝食にする」という現象を考えてみましょう。

なぜ筆者はグラノーラを食べているのでしょうか。理由は栄養素でしょうか、手軽さでしょうか、それとも最寄りのスーパーマーケットで安売りされていたからでしょうか。テレビCMやインターネット広告を見たからでしょうか。YouTuberのモーニングルーティン動画に影響されたのでしょうか。春になり朝の気温が上がったからでしょうか。

なぜパンや白米ではなくグラノーラを選んだのでしょうか。一緒に食べるのがなぜ牛乳ではなくヨーグルトなのでしょうか。筆者の朝食にもう一品提案するとしたら何が良いでしょうか。チーズ、野菜、それともソーセージでしょうか。

筆者はこれから何日間グラノーラを食べ続けるのでしょうか。1週間でしょうか。1ヵ月でしょうか。半年でしょうか。生涯グラノーラを食べ続けるかもしれません。いつになったら飽きるのでしょうか。飽きるきっかけがあるのでしょうか。飽きたら次は何を食べるのでしょうか。

このように、朝食ひとつについても、さまざまな要因や観点が存在しています。これらの観点が「数理的な仮説」であり、仮説に基づいて数式を作り、データに当てはめることが「数理モデリング」である、と筆者は考えています。

モデリングにまつわる2つのエピソード

「数理モデリングとは何か」を考えるたびに、筆者はいつも2つの話を思い出します。

1つ目はとある分野の第一線で活躍する先輩研究者が披露していた 「モデリングとは『風神雷神図屏風』だ」 という話です。

風神雷神図屏風
※)
この画像は、クリエイティブ・コモンズ・表示・継承ライセンス3.0のもとで公表されたウィキペディアの項目風神雷神図 - Wikipediaを素材として二次利用しています。

彼の主張は、

  • 昔の日本人は天候の変化を「雨や風は風神の風袋によって引き起こされる」⁠雷は雷神の太鼓によって引き起こされる」だと信じていた
  • これは彼らなりに気象現象を「風神」「雷神」という、直接観測できない要因(これを専門用語で潜在変数latent variableと呼びます)2つを用いてモデリングしていたのである
  • とはいえ現代の我々は風神も雷神も存在せず、雨風や雷が彼らによるものではないことを知っている
  • その代わり、さまざまなセンサーによって計測されるデータに基づいて「どのように気象現象が発生するか」をモデリングしている
  • これは気象だけでなく、自然言語やマーケティング、金融といった他の領域にも言えることだ
  • まとめると「どのような要因や構造によってその現象が発生しているのか」を考えることがモデリングであり、研究である

というものです。

筆者のモデリングに対する考え方は、この先輩に強い影響を受けています。また、これまで出会った偉大な先輩、同僚、後輩の全員がこのような視点を備えていたように思います。

しかし、このような視点は一朝一夕で身につけられるものではありません。筆者自身もそうです。

新卒で配属された職場では、読んだばかりの論文を適当に拡張したモデル(その実、余分なパラメータや機構を追加しただけなのですが)を提案するたびに「数式のその項は一体何を表しているのか」⁠なぜそのような構造が実世界に存在し、データに現れると考えているのか」⁠その項が必要だと納得できるようなわかりやすい例を挙げて」といった点を上司や同僚、果ては後輩から詰められ続けることで少しずつ身についたように思います。とはいえ、今も完璧に体得したとは到底思えません。

2つ目は夏目漱石の小説「夢十夜」「第六夜」です。

数々の国宝や重要文化財を残した鎌倉時代の仏師である運慶。彼が仏像を彫る姿を見ていた主人公と見物人が以下のやりとりを行います。

若い男は、すかさず、⁠あの鑿と槌の使い方を見たまえ。大自在の妙境に達している」と云った。

運慶は今太い眉を一寸の高さに横へ彫り抜いて、鑿の歯を竪に返すや否や斜に、上から槌を打ち下おろした。堅い木を一ひと刻みに削けずって、厚い木屑が槌の声に応じて飛んだと思ったら、小鼻のおっ開いた怒り鼻の側面がたちまち浮き上がって来た。その刀の入れ方がいかにも無遠慮であった。そうして少しも疑念を挾んでおらんように見えた。

「よくああ無造作に鑿を使って、思うような眉や鼻ができるものだな」と自分はあんまり感心したから独言のように言った。するとさっきの若い男が、 ⁠なに、あれは眉や鼻を鑿で作るんじゃない。あの通りの眉や鼻が木の中に埋っているのを、鑿と槌の力で掘り出すまでだ。まるで土の中から石を掘り出すようなものだからけっして間違うはずはない」と云った。

自分はこの時始めて彫刻とはそんなものかと思い出した。はたしてそうなら誰にでもできる事だと思い出した。

※)
青空文庫『夢十夜』より引用。底本:『夏目漱石全集10巻』ちくま文庫、筑摩書房、1988(昭和63)年7月26日第1刷発行、1996(平成8)年7月15日第5刷発行。底本の親本:『筑摩全集類聚版夏目漱石全集』筑摩書房、1971(昭和46)年4月~1972(昭和47)年1月

筆者はデータに基づく数理モデリングの多くはこのような作業ではないと考えています。これは先ほどの話とは矛盾するように聞こえるかもしれません。

多くの人々(もしかするとこれを読んでいるみなさんも⁠⁠ は、運慶が鑿(のみ)と槌(つち)で木の中に埋まっている仏像を掘り出すように、モデリングによって何らかの方程式や関数をデータに当てはめることで「データの背後に存在する真の構造が明らかになる」と考えがちです。

しかし多くの場合、特に本書の著者たちが日々取り組んでいる実サービスから得られるデータにおいて「真の構造」は神のみぞ知るものであり、我々分析者は知りえません。また、ある現象にまつわるすべてのデータを入手するのは稀であり、一部の観測できるデータにのみ基づいてモデリングを行わねばなりません。

そのため、モデリングによって明らかになるのは「手元にある限られたデータに対してある構造Xを仮定したとき、構造Xを仮定していないときと比べてどの程度ましなモデルが得られたか」であり、その結果に基づいて「構造Xを仮定したモデルが世界の真理である」とは主張できないことを十分自覚しなければならない、と筆者は考えます(収集の過程が注意深く設計されていたり、収集後に十分にバイアスが取り除かれたデータであれば、そのデータから得られるモデルは信頼に足るものでしょう⁠⁠。ちなみに多くの場合、⁠どちらのモデルが優れているか」は学習時に用いていないデータ(テストデータ)に対する当てはまりの良さを比較して検証します。

では、どのような現象がどのようにモデリングされるのでしょうか。ここから、みなさんにとって比較的馴染みが深そうな現象とそのモデリングについて3つの事例を紹介します。

SNSにおけるつながりの関係から交際相手を推定する

人々はSNSにおいて幼馴染や同僚、家族などとつながっています。これを友人関係と呼びましょう。さて、人々のSNSにおける友人関係を用いてある人物の交際相手が誰なのかを推定できるでしょうか?

たとえば、ここに筆者のFacebookにおける友人関係のデータがあったと想像してみましょう(ちなみに筆者はFacebookのアカウントを持っていません⁠⁠。筆者の友人リストには筆者の同僚、親類、高校時代の同級生、インターネット上での知り合いなどさまざま人々が存在しているとします。友人関係のグラフ構造をもう一歩深く観察すると、筆者の同僚たちは同じく同僚たちと、親類は親族と、高校時代の友人は友人同士で強くつながり、それぞれでコミュニティを形成していることが想像できるでしょう。

さて、仮に筆者にパートナーがいたとしましょう。古い旧友を紹介したり、同僚を家に呼んだり、法事や年末の帰省などを通じて筆者はパートナーに自身の友人を紹介するでしょう。その結果、「パートナーはコミュニティの垣根を超えて筆者の友人とつながる」という現象が発生します。逆に言えば、ある人物Xの友人に存在する複数のコミュニティを横断してつながりがある人物YがXのパートナーである、というわけです。

「そんな簡単なモデルで予測できるのだろうか」とお考えかもしれません。Facebookの実際のデータ(筆頭著者は2020年4月現在、同社のVice President of Engineeringです)を使った実験の結果、⁠最も同じ写真に写っている人物をパートナーと予測する」⁠90日間で最もプロフィールを閲覧した人物をパートナーと予測する」といった手法に比べて、予測精度が優れていることが論文において示されています。特に、結婚関係の予測において6割という高い精度を発揮しています。

Lars Backstrom and Jon Kleinberg, "Romantic partnerships and the dispersion of social ties: A network analysis of relationship status on facebook", Proceedings of the ACM Conference on Computer Supported Cooperative Work, CSCW, 2014

駐車の難易度を予測する

あなたが自動車を運転して出かけることが多いならば、空いている駐車場をすぐに見つけられるときと、なかなか見つけられないときがあるでしょう。駐車のしやすさは目的地や時間帯、曜日によって異なります。これは数理モデリングによって予測可能でしょうか? そのためにはどのようなデータ、どのような特徴量、どのようなモデルが必要でしょうか?

Googleの研究者は、駐車の難しさをモデル化する上で「⁠⁠駐車が簡単だったか、または難しかったか』の正解データをどのように集めるか」「どのような特徴量を使うか」「どのような予測モデルを用いるか」の3つの課題があったと報告しています。

教師データの収集はクラウドソーシングを用いました。しかし、⁠駐車場を見つけるのは簡単でしたか?」といった主観的な質問ではユーザごとに回答が異なり、一貫性がありませんでした。そこで「駐車場を見つけるまでどれぐらい時間がかかりましたか?」という客観的な質問に変えることで回答の信頼性が上がり、高品質な教師データが集まりました。

特徴量については、位置情報をそのまま用いたのでは私有地に駐車するユーザや、バスやタクシーの利用者が含まれているために誤認識してしまいます。そのため、まずは時間帯や曜日、その地域における駐車場の散らばり具合を採用しました。また、「駐車が困難であるほどユーザは何度も同じエリアを往復して時間がかかるだろう」という観察に基づき、「駐車場にまっすぐに向かった場合の所要時間と、実際にユーザが駐車場にたどり着くまでの所要時間の差」も特徴量として採用しました。その結果、20個の特徴量を構築しました。

最後に予測モデルですが、ニューラルネットワークや勾配ブースティングといった複雑で高精度なモデルではなく、ロジスティック回帰を採用しました。これは、⁠ユーザからの回答』というノイズが入りやすいデータに対して頑健であること」⁠モデルの出力をそのまま『駐車の難しさの確率』としてユーザに提示できること」⁠どの変数が予測に影響を与えるかが理解でき、モデルの振る舞いが検証しやすいこと」という3つの理由に基づいています。

結論だけを見れば、⁠20個の特徴量を用いたロジスティック回帰」という非常にシンプルな構成ですが、それに至るまでの過程は非常に納得がいくのではないでしょうか。

Google AI Blog: Using Machine Learning to Predict Parking Difficulty

遅れて発生するフィードバックを考慮する

これはインターネット広告の分析から生まれたモデルです。インターネット広告の目的はユーザに「購入」「申し込み」といったなんらかのアクション(これをコンバージョンと呼びます)を引き起こすことです。インターネット広告事業者は、よりコンバージョンしやすいユーザに広告を配信するために、⁠ある期間において広告に接触したユーザの情報」を用いて「そのユーザがコンバージョンしたか否か」を学習・推定しています。このタスクがコンバージョン予測です。

たとえば本書の購入をコンバージョンと定義し、本記事の読者の中でどのような人物が書籍を購入しやすいかを学習・推定するコンバージョン予測タスクを考えましょう。

この記事が2020年4月15日に公開されたとします。コンバージョン予測ではある一定の期間(学習期間と呼びます)のログを用いるため、もし、学習期間を2020年4月15日から2020年4月22日と定め、その間に購入した読者(正例)と購入していない読者(負例)を分類する場合、2020年4月22日より後に書籍を購入した読者は実際は正例であるにもかかわらず負例として扱わなければなりません(元論文のデータでは13%のコンバージョンが2週間後に発生しています⁠⁠。

このバイアスは記事を読んだ日付が後ろになればなるほど強く発生するため、学習期間後に発生していたかもしれない遅れて発生するフィードバックを扱うための構造をモデルに組み込む必要があります。レスポンスが遅い友人を遊びに誘うときは返事を気長に待つ、といったような現象は日常生活でもよく発生するでしょう。これは「忙しい友人は返事が遅い」⁠スマートフォンに張り付いている友人は返事が早い」という現象を私達が暗黙のうちにモデリングしているからです。

この論文では「ユーザによって購入のしやすさは異なる」という従来のモデルに「フィードバックの遅れは指数分布に従う」⁠ユーザによって指数分布の形が異なる」という構造を組み込んだモデルを提案し、実際に予測精度が改善することを示しています。

Olivier Chapelle, "Modeling delayed feedback in display advertising", Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2014.

本書の見どころ

長々と数理モデリングについて筆者のお気持ちを語ってしまいました。ここからは本書の紹介に戻りましょう。

本書の目的は、ここまで説明したような「現象の捉え方」をさまざまな分野のさまざまなモデルを用いて身に付ける第一歩になること、特に初めてデータ分析に取り組む人の手助けになることです。

本書は企業でデータ分析に携わる4人が分担して書きました。水上は数理モデリングの基礎と資源の配分、オンライン広告の背後で動いているモデルについて説明しています。髙野はネットワーク構造のデータについて、その構造自体の理解やネットワーク上における情報の振る舞いを記述するモデルを説明しています。藤原は画像認識の深層学習によるモデリングを説明しています。最後に筆者はさまざまな種類の購買予測のモデリングと、ユーザの離脱を医薬の領域で発展してきた生存分析を用いてモデリングする方法を説明しています。

それぞれの章では「なぜこのようにモデル化するのか」を筆者たちなりのやり方で説明しています。人によっては当たり前に思えることを回りくどく説明しているように感じるかもしれません。しかし、一見当たり前に感じる前提や仮定、処理をどれほど自覚しているか、が数理モデリングに取り組む際に重要であると筆者たちは考えました。

本書は Python のサンプルコードやライブラリの使い方分析に用いるデータの収集方法が書かれているわけでもなければ、高精度な予測モデルを構築するためのテクニックが書かれているわけでもありません。

相関関係だけでない、因果関係を知る方法も説明していません。

もし本書を読み終え、数理モデリングについてさらに興味を持っていただけたならば、それぞれの書籍に手を伸ばしていただければと思います。

おすすめ記事

記事・ニュース一覧