SFCに向かう電車の中で気づいた教科書の読み方の変化。

 

今日は近くに用事があったので、

久しぶりに母校である慶応大学SFC(湘南藤沢キャンパス)に行ってきました。

懐かしいような気もしましたが、最後に行ってから2年は経っていないのでそこまで懐かしくない気もして微妙な気持ちになっていました(ただキャンパス周辺を散歩してみたら知らなかった場所を見つけることができてそこはとても良かったです)。笑



今回の本題は、SFCに向かう電車の中で気づいたこと。

SFCに通っていた時にも経済学や数学の本をよく読んでいましたが、最近読み始めた「数理最適化」の本を今日の電車の中で読んでいて、ふと学部の時とは学術書の読み方が変わったことに気づきました。

例えば今回出てきた例として、

自身は会員が5000人いるサイト運営者で(以下では5000ではなくより一般にn人とする)、それぞれの会員について、1:広報メールのみを送る、2:広報メールと1000円のクーポンを送る、3:広報メールと2000円のクーポンを送る、のうちいずれの処理を割り当てるかを決める(ただしメインの目的は効果検証ではなく期待来客数の最大化)みたいなテーマが出てきました。

つまり、いくつか制約と何かしらの目的関数があるときに、各会員について13のどれを割り当てるかどうやって決めるかを考えましょうみたいなかんじです(個人の特徴などについては外生的に与えれているかんじだった)。

これを読んだ時に(この説明を読んだ時点ではまだその章が始まって2ページ程度で具体的な定式化がどう行われるかはまだ分からない)、最初にパッと思いつくこととして、

A=\{1,2,3\}とした上で、"割り当てベクトルとは、(a_1,...,a_n)\in A^nのことであるみたいに定義をして、A^nの中でベストなものを選ぶ話に持っていくんだろうなぁ」と定式化を想像しました。

 

たぶんこのくらいはSFCに通っていたときにも想像していたと思いますが、今回はもう一歩進んで、「たぶんこういう定式化がこのあと導入される気がするけど、他にも何か拡張的なアイディアを考えられないかな」と考えを進めて、以下の3つの案を考えました。

 

案1:\phiを入れる。

最初に思いついた定式化だと「広告メールもクーポンも何も送らない」という処置は外されている。でも、メインの目的ではないとしてもある程度は効果検証もしたいのであれば、何も処置されない会員を作っても良いかもしれない。そうすると、先ほどのA=\{1,2,3\}ではなく、A=\{1,2,3,\phi\}のようにして\phiは何も送らないと解釈する定式化もありかもしれない。

この場合は割り当てベクトルとは、各会員について「何も送らない」「メールのみ」「メールと1000円クーポン」「メールと2000円クーポン」のどれを実施するかを指定するものとして定義されることになります。

案2:確率的な扱いにする。

最初に思いついた定式化では、ある会員についてどの処置を割り当てるかは確定的に決まる。しかし例えば公平性などの観点を重視したい場合には(例えばどの会員についても外生的に与えられた\epsilon以上の確率で3が割り当てられるのがfairであるとしたい場合などには)、B=\{(p_1,p_2,p_3)\in [0,1]^3\ |\ p_1+p_2+p_3=1\}のようにした上で、A^nではなくてB^nを考えるような定式化も考えられる。

この場合は割り当てベクトルとは、各会員について「メールのみ」「メールと1000円クーポン」「メールと2000円クーポン」のどれをどの確率で実施するかを指定するものとして定義されることになります。

案3:個人ごとに可能な処置の集合を変える。

最初の定式化においては各会員について実施しうる処置の集合が共通している(A=\{1,2,3\}で共通している)。これを個人ごとで変わりうるものにする一般化も考えられる。つまり、A\times \cdots \times AではなくてS_1\times \cdots \times S_nを考えるような定式化(各S_iは何かしらの非空かつ有限の集合としておく)。

この場合の割り当てベクトルがどのようなものかはS_iがどうなっているかによりますが、1さんに対してはa,b,c,dのいずれかの処置を指定して、2さんに対してはb,c,d,eのいずれかの処置を指定するみたいなことを許容する定式化になっています。



以上の3つの案について考えてから、「じゃあ定式化を説明しているパートについて読んでいこう」としている自分に気づいて、「あぁこういう風に、教科書に書いてあることを理解しようとする(書いてありそうなことを事前に予測しようとする)のに加えて書いていないことについても案を複数出しながら教科書を読めるようになったのは大学院に入ってからだろうなぁ」と思いました。

 

ちなみに、実際に読み進めてみると最初の予想した定式化ではなく、A=\{(a_1,a_2,a_3)\in \{0,1\}^n\ | \ a_1+a_2+a_3=1\}みたいにしてA^nを考えるような定式化が採用されていました(\{0,1\}になっていることに注意すると確率的な扱いにはなっていません)。*1これは恐らくデータサイエンス的な文脈が関係していて(今回の本は経済学の本ではなくてデータサイエンス寄りの本なので)、データを0,1で扱えると都合がいいからこういう定式化にしているのだと思います。これは勉強になりました。

当時の自分に「こういう教科書の読み方もあるんだよ〜」と教えてあげられたらなぁと思いながら電車に揺られていました。

 

Fin.
 

*1:実際には(x_{11},x_{12},x_{13}, \cdots ,x_{n1},x_{n2},x_{n3})\ \in \{0,1\}^{3n}(ただし\forall i\in \{1,..,n\}\ x_{i1}+x_{i2}+x_{i3}=1)的な表記を採用していました(記事の流れ的に変な表記を採用したが実際に採用されている表記が自然だと思います)。ちなみに今回の本は「Pythonで始める数理最適化」という本です。