0:00:17.422,0:00:19.239 こんにちは [br]クリスチャン・ラダーです 0:00:19.239,0:00:21.465 私たちが始めた[br]OkCupidは 0:00:21.465,0:00:24.502 現在アメリカで[br]最大手の出会いサイトです 0:00:24.502,0:00:25.949 他のスタッフの[br]多くと同様 0:00:25.949,0:00:27.296 私も数学専攻で 0:00:27.296,0:00:28.524 私たちは恋愛への 0:00:28.524,0:00:29.887 分析的アプローチで[br]知られています 0:00:29.887,0:00:32.037 私たちは マッチング・アルゴリズムと[br]呼んでいますが 0:00:32.037,0:00:33.588 これは 2人の人が 0:00:33.588,0:00:36.481 デートすべきかの判断を[br]助けるものです 0:00:36.481,0:00:38.765 これが私たちの事業の[br]中心にあるものです 0:00:38.765,0:00:40.572 アルゴリズムというと[br]何かかっこよくて 0:00:40.572,0:00:43.047 みんな何かすごいもののように[br]口にしますが 0:00:43.047,0:00:44.758 実際のところは 0:00:44.758,0:00:47.817 段階を追って問題を[br]機械で解く手順ということで 0:00:47.817,0:00:49.949 別にすごいものとは[br]限りません 0:00:49.949,0:00:51.802 このビデオでは 0:00:51.802,0:00:53.657 私たちのアルゴリズムが 0:00:53.657,0:00:55.660 どのようにできているのかを[br]説明します 0:00:55.660,0:00:57.386 アルゴリズムは[br]なぜ重要なのか? 0:00:57.386,0:00:59.255 そもそもこのビデオは[br]なぜ存在するのか? 0:00:59.255,0:01:01.867 注意して欲しいのは[br]私が 0:01:01.867,0:01:05.029 「段階を追って解く」[br]と言ったことです 0:01:05.029,0:01:07.061 コンピュータが[br]段階を追った処理に向いているのは 0:01:07.061,0:01:08.470 知っていると思います 0:01:08.470,0:01:09.808 アルゴリズムがなければ 0:01:09.808,0:01:12.603 コンピュータは高価な[br]漬け物石に過ぎません 0:01:12.603,0:01:15.210 コンピュータは[br]身の回りの至る所にあり 0:01:15.210,0:01:17.523 それはすなわちアルゴリズムが[br]どこにでもあるということです 0:01:18.515,0:01:20.267 OKCupidの[br]背後にある数学は 0:01:20.267,0:01:21.811 ごく簡単なものです 0:01:21.811,0:01:22.629 足し算 0:01:22.629,0:01:23.687 掛け算 0:01:23.687,0:01:25.340 それにルートを[br]少し使うくらいです 0:01:25.340,0:01:27.611 このアルゴリズムの設計で[br]難しいのは 0:01:27.611,0:01:29.715 人が惹かれ合うという 0:01:29.715,0:01:31.212 不可解な現象を 0:01:31.212,0:01:33.810 要素に分解し 機械で[br]扱えるようにすることです 0:01:33.810,0:01:36.360 人のマッチングをする上で[br]まず必要なのは 0:01:36.360,0:01:38.382 アルゴリズムが使うための[br]データです 0:01:38.382,0:01:40.412 人からデータを手早く得る[br]最良の方法は 0:01:40.412,0:01:41.747 単に聞いてみることです 0:01:41.747,0:01:44.166 それで OkCupidでは[br]ユーザーに質問することにしました 0:01:44.166,0:01:46.834 「いつか子供が欲しいですか?」 0:01:46.834,0:01:48.754 「歯磨きを日に何度しますか?」 0:01:48.754,0:01:50.227 「怖い映画は好きですか?」 0:01:50.227,0:01:53.514 それに「神を信じますか」のような[br]大きな質問もあります 0:01:53.514,0:01:54.608 多くの質問は 0:01:54.608,0:01:56.951 2人が同じような[br]答えをする時 0:01:56.951,0:01:59.052 相性が良いと[br]考えられます 0:01:59.052,0:02:01.051 例えば 2人がどちらも[br]怖い映画が好きな場合 0:02:01.051,0:02:02.684 1人は好きで[br]もう1人は嫌い 0:02:02.684,0:02:03.843 という場合よりも 0:02:03.843,0:02:05.115 おそらく相性が[br]良いでしょう 0:02:05.115,0:02:06.110 しかし もし質問が 0:02:06.110,0:02:08.489 「場の中心になるのが好きですか?」[br]ならどうでしょう? 0:02:08.489,0:02:10.949 付き合っている2人が[br]どちらも中心にいたいタイプだと 0:02:10.949,0:02:13.068 大きな問題がありそうです 0:02:13.068,0:02:14.367 それで私たちは 0:02:14.367,0:02:15.684 それぞれの質問に対して 0:02:15.684,0:02:17.581 もう少しデータを[br]取ることにしました 0:02:17.581,0:02:20.332 自分自身についての[br]答えだけでなく 0:02:20.332,0:02:23.038 相手に望む答えも[br]聞くことにしたんです 0:02:23.038,0:02:24.207 これはうまくいきましたが 0:02:24.207,0:02:26.291 さらにもう1つの要素が[br]必要でした 0:02:26.291,0:02:28.835 ある種の質問は 他の質問よりも[br]多くのことを教えてくれるからです 0:02:28.835,0:02:30.695 たとえば政治的な質問である 0:02:30.695,0:02:34.589 「本を燃やすのと国旗を燃やすのとでは[br]どちらがより悪いか?」のような質問は 0:02:34.589,0:02:37.207 映画の好みなどより[br]重要な意味を持つかもしれません 0:02:37.207,0:02:39.387 あらゆる質問を[br]同様に扱うのは問題があるので 0:02:39.387,0:02:41.605 もう1つデータを[br]付け加えました 0:02:41.605,0:02:43.440 OkCupidが聞く質問ではすべて 0:02:43.440,0:02:44.642 自分にとっての重要性を 0:02:44.642,0:02:47.163 「どちらでもよい」から「必須」まで 0:02:47.163,0:02:49.089 指定することができます 0:02:49.089,0:02:50.564 これで各質問について 0:02:50.564,0:02:52.692 アルゴリズムに使えるものが[br]3つあることになります 0:02:52.692,0:02:54.068 1 自分の答え 0:02:54.068,0:02:56.362 2 付き合う相手に望む答え 0:02:56.362,0:02:57.196 2 付き合う相手に望む答え 0:02:57.196,0:02:58.781 2 付き合う相手に望む答え 0:02:58.781,0:03:02.327 3 その質問の重要度です 0:03:02.327,0:03:03.702 これらの情報を元に 0:03:03.702,0:03:07.128 OKCupidは2人の[br]相性の良さを判断でき 0:03:07.128,0:03:09.458 アルゴリズムが[br]データから答えを算出します 0:03:09.458,0:03:10.912 具体的な例で 0:03:10.912,0:03:13.472 あなたと 別の誰かBさんの[br]相性が良いかを 0:03:13.472,0:03:15.581 どのように判断するのか[br]見てみましょう 0:03:15.581,0:03:16.819 相性度は 0:03:16.819,0:03:19.214 2人とも答えた[br]質問を元に求めます 0:03:19.214,0:03:22.388 この共通の質問の集まりを[br]Sと呼ぶことにしましょう 0:03:22.388,0:03:24.072 話を簡単にするため 0:03:24.072,0:03:26.434 Sはたった2つの[br]質問からなることにして 0:03:26.434,0:03:28.310 それを元に相性度を[br]計算してみます 0:03:28.310,0:03:30.144 その2つの質問の[br]1つは 0:03:30.144,0:03:32.349 たとえば「散らかし屋さんですか?」で 0:03:32.349,0:03:34.399 答えの選択肢は 0:03:34.399,0:03:35.618 「散らかし屋」 0:03:35.618,0:03:36.398 「ふつう」 0:03:36.398,0:03:38.172 「きれい好き」[br]だったとします 0:03:38.172,0:03:39.875 あなたは「きれい好き」で 0:03:39.875,0:03:42.581 相手にも「きれい好き」[br]であることを望み 0:03:42.581,0:03:45.202 この問題はとても重要[br]だったとしましょう 0:03:45.202,0:03:46.498 あなたは超きれい好きで 0:03:46.498,0:03:47.292 自分だけでなく 0:03:47.292,0:03:48.406 相手にも[br]きれい好きなことを 0:03:48.406,0:03:49.248 強く求めています 0:03:49.248,0:03:51.015 Bさんは少し違います 0:03:51.015,0:03:53.539 彼自身は「きれい好き」ですが 0:03:53.539,0:03:55.171 相手は「ふつう」でかまわず 0:03:55.171,0:03:56.430 相手は「ふつう」でかまわず 0:03:56.430,0:03:58.748 彼にとって この問題は[br]あまり重要ではありません 0:03:58.748,0:04:00.308 2番目の質問に[br]移りましょう 0:04:00.308,0:04:01.896 前に質問例として挙げた 0:04:01.896,0:04:03.653 「場の中心になるのが好きですか?」で 0:04:03.653,0:04:05.231 選択肢は「はい」か「いいえ」です 0:04:05.231,0:04:06.407 あなたの答えは「いいえ」で 0:04:06.407,0:04:08.235 相手にも「いいえ」であることを望み 0:04:08.235,0:04:10.862 この問題はあまり[br]重要でなかったとします 0:04:10.862,0:04:12.419 Bさんの方は [br]自分が「はい」で 0:04:12.419,0:04:14.087 相手には「いいえ」を望み — 0:04:14.087,0:04:16.492 なにしろ自分が中心でいたいので — 0:04:16.492,0:04:19.334 そして この問題は彼にとって[br]まあまあ重要だったとします 0:04:19.334,0:04:21.716 それでは計算してみましょう 0:04:21.716,0:04:22.855 まずはじめに 0:04:22.855,0:04:24.376 コンピュータを使うので 0:04:24.376,0:04:26.892 「まあまあ重要」とか[br]「とても重要」のような概念に 0:04:26.892,0:04:29.041 数値を割り当てる[br]必要があります 0:04:29.041,0:04:31.335 コンピュータはすべて[br]数字で計算するからです 0:04:31.335,0:04:33.743 OkCupidではこんな重み付けを[br]することにしました 0:04:33.743,0:04:35.858 「どうでもよい」は 0点 0:04:35.858,0:04:38.307 「あまり重要でない」は 1点 0:04:38.307,0:04:40.393 「まあまあ重要」は 10点 0:04:40.393,0:04:42.426 「とても重要」は 50点 0:04:42.426,0:04:46.353 「必須」は 250点です 0:04:46.353,0:04:48.852 つぎにアルゴリズムは[br]簡単な計算を2つします 0:04:48.852,0:04:52.161 1つはBさんが あなたにとって[br]どれくらい満足のいく人かで 0:04:52.161,0:04:56.238 これはBさんが取り得る点数のうちの[br]何点を取ったかということです 0:04:56.238,0:04:57.948 最初の質問 0:04:57.948,0:04:59.947 散らかし屋かどうかは 0:04:59.947,0:05:01.578 あなたにとって[br]とても重要で 0:05:01.578,0:05:04.041 Bさんは正しく答えたので[br]50点になります 0:05:04.041,0:05:06.217 2番目の質問は[br]あまり重要でなかったので 0:05:06.217,0:05:07.558 1点分の価値しかなく 0:05:07.558,0:05:09.176 Bさんは間違った[br]答えをしました 0:05:09.176,0:05:12.392 だからBさんの点数は[br]50/51となり 0:05:12.392,0:05:14.023 98%の満足度です 0:05:14.023,0:05:15.220 これはかなり良い点数です 0:05:15.220,0:05:16.832 次にアルゴリズムが見るのは 0:05:16.832,0:05:18.918 あなたが どれくらいBさんを[br]満足させるかということです 0:05:18.918,0:05:20.768 Bさんは散らかし屋の[br]質問には1点 0:05:20.768,0:05:22.353 Bさんは散らかし屋の[br]質問には1点 0:05:22.353,0:05:24.745 場の中心の質問には[br]10点を設定しました 0:05:24.745,0:05:27.156 満点は 1 + 10 = 11 点で 0:05:27.156,0:05:29.264 あなたは2番目の質問で[br]希望に合っていたので 0:05:29.264,0:05:30.617 10点を取りました 0:05:30.617,0:05:32.611 あなたの点数は10/11で 0:05:32.611,0:05:35.240 Bさんにとっての[br]満足度は91%です 0:05:35.240,0:05:36.117 悪くありません 0:05:36.117,0:05:38.286 最後のステップとして [br]この2つのパーセントの数字から 0:05:38.286,0:05:40.454 2人の相性度を計算します 0:05:40.454,0:05:42.747 アルゴリズムは[br]2つの値を掛け合わせて 0:05:42.747,0:05:44.500 n 乗根を求めます 0:05:44.500,0:05:46.792 ここで n は質問の個数です 0:05:46.792,0:05:49.401 今の場合 質問の数は 0:05:49.401,0:05:51.507 2つだけだったので 0:05:51.507,0:05:54.093 相性度は 98% × 91% の 2 乗根で — 0:05:54.093,0:05:58.154 相性度は 98% × 91% の 2 乗根で — 0:05:58.154,0:06:00.304 94% となります 0:06:00.304,0:06:03.194 94% があなたと[br]Bさんの相性度です 0:06:03.194,0:06:04.921 あなた方が付き合った時に 0:06:04.921,0:06:06.305 予想される幸福度を 0:06:06.305,0:06:08.259 得られているデータを元に[br]数学的に求めた値です 0:06:08.259,0:06:09.981 なぜこのアルゴリズムでは 0:06:09.981,0:06:12.284 2つの点数の平均を取らずに 0:06:12.284,0:06:14.530 掛け算して累乗根を[br]求めているのか? 0:06:14.530,0:06:16.689 一般にこのような式は[br]幾何平均と呼ばれ 0:06:16.689,0:06:17.791 広い幅のある 0:06:17.791,0:06:19.486 異なる性質の値を[br]組み合わせる 0:06:19.486,0:06:20.861 優れた方法なんです 0:06:20.861,0:06:23.164 つまり恋愛の相性には[br]ぴったりということです 0:06:23.164,0:06:24.248 広い範囲の 0:06:24.248,0:06:26.206 たくさんの異なる[br]データがあります 0:06:26.206,0:06:27.156 映画だとか 0:06:27.156,0:06:28.006 政治 0:06:28.006,0:06:29.201 宗教 0:06:29.201,0:06:30.395 その他あらゆることです 0:06:30.395,0:06:32.336 直感的にも これは[br]意味のあることです 0:06:32.336,0:06:34.918 互いに50%の満足度の2人は 0:06:34.918,0:06:36.332 0%と100%の2人よりも 0:06:36.332,0:06:39.180 相性が良いと言えるでしょう 0:06:39.180,0:06:40.927 恋愛は相互的である[br]必要があるからです 0:06:40.927,0:06:43.687 誤差に対応するために[br]若干の補正をすれば完了です 0:06:43.687,0:06:45.410 たとえば今の場合だと 0:06:45.410,0:06:47.234 質問の数が少なすぎる 0:06:47.234,0:06:48.811 という問題がありました 0:06:48.811,0:06:50.371 OkCupidが[br]2人を引き合わせる場合 0:06:50.371,0:06:52.234 今説明したような[br]手順を辿ります 0:06:52.234,0:06:54.484 まずみんなの答えを[br]データとして集め 0:06:54.484,0:06:56.929 本人の選択と[br]相手への希望を 0:06:56.929,0:06:59.740 単純な数学的方法で[br]付き合わせていくんです 0:06:59.740,0:07:02.453 この 現実の世界の現象を 0:07:02.453,0:07:04.947 マイクロチップが理解できる形に[br]変える能力は 0:07:04.947,0:07:05.942 今の時代 0:07:05.942,0:07:08.565 最も重要なスキルだと思います 0:07:08.565,0:07:10.919 人に対して文章を使って[br]物語るように 0:07:10.919,0:07:13.665 コンピュータに対しては[br]アルゴリズムを使って物語るのです 0:07:13.665,0:07:14.921 言語を学べば 0:07:14.921,0:07:16.381 物語を語れるようになります 0:07:16.381,0:07:18.768 このビデオが[br]その役に立てば幸いです