株式会社ホクソエムのブログ

R, Python, データ分析, 機械学習

機械学習とビジネスを橋渡しするものこそ評価指標であり, ”全てのビジネスは条件付期待値の最大化問題として書ける”仮説についての一考察

はじめに

株式会社ホクソエム常務取締役のタカヤナギ=サンです、データサイエンスや意思決定のプロ・経営をしています。

掲題の件、現在、某社さんと”機械学習における評価指標とビジネスの関係、および宇宙の全て”というタイトルの書籍を書いているのですが、 本記事のタイトルにあるような考え方については、論文・書籍などを数多く調査しても未だお目にかかることができず、これをいきなり書籍にしてAmazonレビューなどでフルボッコに叩かれて炎上して枕を涙で濡らすよりも、ある程度小出しにして様々な人々の意見を聞いた方が良いのではないかと思い独断で筆を取った次第です。

筋が良さそうなら論文にするのも良いと思っている。

「いや、そんなもん会社のBLOGに書くんじゃねーよ💢」という話があるかもしれないですが、ここは私の保有する会社なので何の問題もない、don't you?

こういうビジネスを考えてみよう

「この人、家賃を滞納しそう?」AIが予測 入居審査を45分→16分に - ITmedia NEWS

という話を見かけたので、これに似た題材にしてみようと思う。

問題を簡単にするため、

  • 貴方は家賃保証会社の経営者としてN人の入居希望者に対し、家賃保証審査を行う
  • 貴方にできることは各入居希望者と家賃保証契約を「する・しない(結ぶ・結ばない)」を選ぶことだけ
  • 家賃保証契約をする場合(入居希望者に実際に入居して貰う場合)
    • ある期間(1年とか3年とか)において一度も滞納することなく家賃を払い続けてくれたら、入居者からS 円/人の保証料を手に入れる(これが売上)
    • ある人が1回でも家賃を滞納したら、その人からもらったS円の保証料全額と保証会社としてD円の金額を上乗せして家のオーナーにお渡しする(これが家賃保証会社として見たときの損失)
  • 家賃保証契約をしない場合
    • その入居希望者からは何のお金ももらえない(家賃保証契約してないので当たり前)

という設定で考えてみよう。

人件費や家賃などなどのコストは一切考えないことにし、この「家賃保証料 - 滞納への保証金」がこの家賃保証会社の利益です。

そのビジネス、こういう条件付期待値でかけまっせ

このビジネスの利益(ビジネス施策によって条件つけられた条件付き期待利益)をPと書くと、これは以下のように書ける。 ここは所謂「ビジネスの数理モデリング」で、各社・ビジネスによって異なる部分です。 最近はここをどれだけうまく書き下せるかが焦点だと考えています。


    P =
    \sum_{i=1}^N
    \mathbb{E}
    \left[
        \left(
            S \mathbf{1}_{\left\{F^i\right\}}
            - 
            D(1 - \mathbf{1}_{\left\{F^i\right\}}) 
        \right)
        \mathbf{1}_{\left\{ a_i = \text{Guarantee} \right\}}
        \mid 
        a_i
    \right]

S、Dは先程説明したとおりの保証料としての儲けとうっかり滞納された場合の損失で 、

\mathbf{1}_{\left\{\dots\right\}}

{} の中がTRUEなら1, そうでなければ0になるような指示関数であり、  F^ i は「ユーザ i が家賃を滞納しない優良な入居者ならTRUE、そうじゃない(家賃を滞納すれば!)ならFALSE」となるような論理変数です。 同様に a_i = \text{Guarantee} は「ビジネス施策として家賃保証する(Guarantee)場合にはTRUEで、そうでなければFALSE」となるような論理変数です。 ようするにユーザiに対するビジネス施策(ここでは家賃保証契約をするかしないかということ)のこと。

重要なポイントは

  • 機械学習によるビジネス成果(ここでは利益向上)は、この  a_i を通じてしか影響しえない
  •  a_iは別に機械学習で決めなくてもよく、人間が赤ペンをなめて適当に決めても良い

という点です。 「機械学習は所詮ビジネスにとってのおまけ、あってもなくても良い」としばしば言われる所以はここにあるのです。

しかし、Nがとても大きい場合には、各々の入居希望者iに対して適切なビジネス施策(ここでは家賃保証契約をするかしないか)を提供することは、 人間がやるには大変な手間とコストがかかるため敬遠される作業であり、機械学習やデータサイエンスを極めている我々の出番になるわけです。

家賃を保証するかしないか、まさに2値クラス分類であり、プロのデータサイエンティストには朝飯前。

サクッとやろうぜ、と。

従って、以下の議論では  a_i は何らかの2値クラス分類モデルで決定するとします。 ここでは"家賃を滞納しない入居者”をPositiveなケースとします。 従って、"家賃を滞納してしまう入居者"のケースがNegativeなケースです。

評価指標 〜機械学習とビジネスを橋渡しするもの〜

ここまでの話と機械学習や評価指標がどうつながっているのか、まだ皆さんその気配を感じれてないと思います。 ですので、ここで、少し先ほどの数式を変形してみましょう。


    P =
    \sum_{i=1}^N
    \left\{
        \left(
            S + D
        \right)
        \mathbb{E}
        \left[
            \mathbf{1}_{\left\{F^i\right\}} 
            \mathbf{1}_{\left\{ a_i = \text{Guarantee} \right\}}
            \mid 
            a_i
        \right]
        -
        D
        \mathbb{E}
        \left[
            \mathbf{1}_{\left\{ a_i = \text{Guarantee} \right\}}
            \mid 
            a_i
        \right]
    \right\}

この第一項目の期待値の中身の部分をグッと睨んで見て欲しい。 この期待値の中身が1となるのは「実際に入居者が家賃を滞納しなかった、かつ、機械学習モデルの予測結果として"家賃保証契約をする"となっているケース」であり、これは機械学習の評価指標の文脈で言う True Positive (TP) の場合と近そうじゃないか?

また同様に第二項目の中身の部分をグッと睨んで欲しい。 こっちは「機械学習モデルにおいて「家賃保証契約締結するぞ!」と予測した場合 1 」になるものであり、 これは(True Positive + False Positive)の個数になりそうではなかろうか?

実際、この期待値計算をサンプルサイズ1(つまり、1個人から1データをもらう)としてみたものこそが、我々の手元にあるデータなのであり、我々が唯一手元でいじくり回して機械を学習させるために使えるデータなのである。

実際に計算してみると以下のようになる。


    P =
    \left(
        S + D
    \right)
    \times
    TP
    -
    D
    \times
    (TP + FP)

さらに、もう少し評価指標を全面に押し出した形式で書くと、


    P =
    \left\{
        \left(
            S + D
        \right)
        \times
        \text{Precision}
        -
        D
    \right\}
    (TP + FP)

となる。できた!!!

この数式は美しい形式になっており「家賃保証契約をすると機械学習モデルで決定した人数(TP + FP)に、機械学習モデルの評価指標であるPrecisionを適当な重みをかけて、計算したもの」という形式になっている。

しばしば私が受ける質問として「2値クラス分類の予測確率のしきい値をどのように決めたら良いでしょうか?」というものがあるが、ここで紹介している問題については今それを答えることができます。 実際に皆さんが機械学習を活用して、このビジネスモデル(利益形式)の商売をしている場合、 家賃保証をする・しない2値分類問題の予測確率のしきい値は、この利益が最大になるようなしきい値を使ってやればよいということになる。 すなわち、ここではPrecision(とTP+FP)という評価指標が機械学習とビジネスを橋渡ししており、家賃保証する・しないを決める予測確率の閾値を制御することで条件付期待値の最大化問題を解き、利益を最大化することができるのだ!やった!

ポイントとしては、 ビジネスモデル(利益計算)がデータサイエンスの教科書どおりのAUCやF値、PrecisionやRecallとはちょっとずれてくる点です。 ここが非常に重要で、この”ズレ”こそが機械学習をビジネスに適用した際に「あ、あれ?なんかうまく儲かってなくね?」となる一要因だとタカヤナギ=サンは考えています。 そして、厄介なことに「この利益計算こそがビジネスの根幹であり、ある程度の分類はできるだろうが、それは会社ごとに異なるので一般論を打ち立て得ない」という点です。 少なくともビジネスモデル(SaaSモデルなのか売り切りモデルなのかなどなど)ごとには考える必要があるのです。

「君が機械学習において何を大事にしたいか?それは各社の皆さんのビジネスモデル次第、や!頑張って考えようぜ!」ということなのです。

まとめ

ここでは家賃保証会社のビジネスを通じて、そのビジネスの利益を条件付期待値として書き下し、それを最大化するための方法が実は機械学習の評価指標と密接にリンクしていることを紹介した。

最近考えていることとして、この考え方はビジネス全般において普遍的に成り立つものであり、全てのビジネス(売上、利益などのKPI計算)はこの形式出かけるだろうという仮説を個人的に持っている。

この考え方に明らかなミスや間違いを見つけた方は是非 Shinichi Takayanagi (@_stakaya) | Twitter まで連絡してほしい(そして一緒に本を書いて欲しい)。

今回はPrecisionだけが顔を出してRecallが一切顔を出してこなかった点にも注目して欲しい。 これは「家賃保証契約をしない」場合において、一切の損失が発生しないと見做しているからであり、そこを何がしかの形で取り込むと彼(Recall)も顔を出してくることになる。 この辺はちゃんと書籍にまとめようと思うので期待して欲しい(私が書くとは言ってない&共著者に書かせる!)