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