1 00:00:17,422 --> 00:00:19,239 こんにちは クリスチャン・ラダーです 2 00:00:19,239 --> 00:00:21,465 私たちが始めた OkCupidは 3 00:00:21,465 --> 00:00:24,502 現在アメリカで 最大手の出会いサイトです 4 00:00:24,502 --> 00:00:25,949 他のスタッフの 多くと同様 5 00:00:25,949 --> 00:00:27,296 私も数学専攻で 6 00:00:27,296 --> 00:00:28,524 私たちは恋愛への 7 00:00:28,524 --> 00:00:29,887 分析的アプローチで 知られています 8 00:00:29,887 --> 00:00:32,037 私たちは マッチング・アルゴリズムと 呼んでいますが 9 00:00:32,037 --> 00:00:33,588 これは 2人の人が 10 00:00:33,588 --> 00:00:36,481 デートすべきかの判断を 助けるものです 11 00:00:36,481 --> 00:00:38,765 これが私たちの事業の 中心にあるものです 12 00:00:38,765 --> 00:00:40,572 アルゴリズムというと 何かかっこよくて 13 00:00:40,572 --> 00:00:43,047 みんな何かすごいもののように 口にしますが 14 00:00:43,047 --> 00:00:44,758 実際のところは 15 00:00:44,758 --> 00:00:47,817 段階を追って問題を 機械で解く手順ということで 16 00:00:47,817 --> 00:00:49,949 別にすごいものとは 限りません 17 00:00:49,949 --> 00:00:51,802 このビデオでは 18 00:00:51,802 --> 00:00:53,657 私たちのアルゴリズムが 19 00:00:53,657 --> 00:00:55,660 どのようにできているのかを 説明します 20 00:00:55,660 --> 00:00:57,386 アルゴリズムは なぜ重要なのか? 21 00:00:57,386 --> 00:00:59,255 そもそもこのビデオは なぜ存在するのか? 22 00:00:59,255 --> 00:01:01,867 注意して欲しいのは 私が 23 00:01:01,867 --> 00:01:05,029 「段階を追って解く」 と言ったことです 24 00:01:05,029 --> 00:01:07,061 コンピュータが 段階を追った処理に向いているのは 25 00:01:07,061 --> 00:01:08,470 知っていると思います 26 00:01:08,470 --> 00:01:09,808 アルゴリズムがなければ 27 00:01:09,808 --> 00:01:12,603 コンピュータは高価な 漬け物石に過ぎません 28 00:01:12,603 --> 00:01:15,210 コンピュータは 身の回りの至る所にあり 29 00:01:15,210 --> 00:01:17,523 それはすなわちアルゴリズムが どこにでもあるということです 30 00:01:18,515 --> 00:01:20,267 OKCupidの 背後にある数学は 31 00:01:20,267 --> 00:01:21,811 ごく簡単なものです 32 00:01:21,811 --> 00:01:22,629 足し算 33 00:01:22,629 --> 00:01:23,687 掛け算 34 00:01:23,687 --> 00:01:25,340 それにルートを 少し使うくらいです 35 00:01:25,340 --> 00:01:27,611 このアルゴリズムの設計で 難しいのは 36 00:01:27,611 --> 00:01:29,715 人が惹かれ合うという 37 00:01:29,715 --> 00:01:31,212 不可解な現象を 38 00:01:31,212 --> 00:01:33,810 要素に分解し 機械で 扱えるようにすることです 39 00:01:33,810 --> 00:01:36,360 人のマッチングをする上で まず必要なのは 40 00:01:36,360 --> 00:01:38,382 アルゴリズムが使うための データです 41 00:01:38,382 --> 00:01:40,412 人からデータを手早く得る 最良の方法は 42 00:01:40,412 --> 00:01:41,747 単に聞いてみることです 43 00:01:41,747 --> 00:01:44,166 それで OkCupidでは ユーザーに質問することにしました 44 00:01:44,166 --> 00:01:46,834 「いつか子供が欲しいですか?」 45 00:01:46,834 --> 00:01:48,754 「歯磨きを日に何度しますか?」 46 00:01:48,754 --> 00:01:50,227 「怖い映画は好きですか?」 47 00:01:50,227 --> 00:01:53,514 それに「神を信じますか」のような 大きな質問もあります 48 00:01:53,514 --> 00:01:54,608 多くの質問は 49 00:01:54,608 --> 00:01:56,951 2人が同じような 答えをする時 50 00:01:56,951 --> 00:01:59,052 相性が良いと 考えられます 51 00:01:59,052 --> 00:02:01,051 例えば 2人がどちらも 怖い映画が好きな場合 52 00:02:01,051 --> 00:02:02,684 1人は好きで もう1人は嫌い 53 00:02:02,684 --> 00:02:03,843 という場合よりも 54 00:02:03,843 --> 00:02:05,115 おそらく相性が 良いでしょう 55 00:02:05,115 --> 00:02:06,110 しかし もし質問が 56 00:02:06,110 --> 00:02:08,489 「場の中心になるのが好きですか?」 ならどうでしょう? 57 00:02:08,489 --> 00:02:10,949 付き合っている2人が どちらも中心にいたいタイプだと 58 00:02:10,949 --> 00:02:13,068 大きな問題がありそうです 59 00:02:13,068 --> 00:02:14,367 それで私たちは 60 00:02:14,367 --> 00:02:15,684 それぞれの質問に対して 61 00:02:15,684 --> 00:02:17,581 もう少しデータを 取ることにしました 62 00:02:17,581 --> 00:02:20,332 自分自身についての 答えだけでなく 63 00:02:20,332 --> 00:02:23,038 相手に望む答えも 聞くことにしたんです 64 00:02:23,038 --> 00:02:24,207 これはうまくいきましたが 65 00:02:24,207 --> 00:02:26,291 さらにもう1つの要素が 必要でした 66 00:02:26,291 --> 00:02:28,835 ある種の質問は 他の質問よりも 多くのことを教えてくれるからです 67 00:02:28,835 --> 00:02:30,695 たとえば政治的な質問である 68 00:02:30,695 --> 00:02:34,589 「本を燃やすのと国旗を燃やすのとでは どちらがより悪いか?」のような質問は 69 00:02:34,589 --> 00:02:37,207 映画の好みなどより 重要な意味を持つかもしれません 70 00:02:37,207 --> 00:02:39,387 あらゆる質問を 同様に扱うのは問題があるので 71 00:02:39,387 --> 00:02:41,605 もう1つデータを 付け加えました 72 00:02:41,605 --> 00:02:43,440 OkCupidが聞く質問ではすべて 73 00:02:43,440 --> 00:02:44,642 自分にとっての重要性を 74 00:02:44,642 --> 00:02:47,163 「どちらでもよい」から「必須」まで 75 00:02:47,163 --> 00:02:49,089 指定することができます 76 00:02:49,089 --> 00:02:50,564 これで各質問について 77 00:02:50,564 --> 00:02:52,692 アルゴリズムに使えるものが 3つあることになります 78 00:02:52,692 --> 00:02:54,068 1 自分の答え 79 00:02:54,068 --> 00:02:56,362 2 付き合う相手に望む答え 80 00:02:56,362 --> 00:02:57,196 2 付き合う相手に望む答え 81 00:02:57,196 --> 00:02:58,781 2 付き合う相手に望む答え 82 00:02:58,781 --> 00:03:02,327 3 その質問の重要度です 83 00:03:02,327 --> 00:03:03,702 これらの情報を元に 84 00:03:03,702 --> 00:03:07,128 OKCupidは2人の 相性の良さを判断でき 85 00:03:07,128 --> 00:03:09,458 アルゴリズムが データから答えを算出します 86 00:03:09,458 --> 00:03:10,912 具体的な例で 87 00:03:10,912 --> 00:03:13,472 あなたと 別の誰かBさんの 相性が良いかを 88 00:03:13,472 --> 00:03:15,581 どのように判断するのか 見てみましょう 89 00:03:15,581 --> 00:03:16,819 相性度は 90 00:03:16,819 --> 00:03:19,214 2人とも答えた 質問を元に求めます 91 00:03:19,214 --> 00:03:22,388 この共通の質問の集まりを Sと呼ぶことにしましょう 92 00:03:22,388 --> 00:03:24,072 話を簡単にするため 93 00:03:24,072 --> 00:03:26,434 Sはたった2つの 質問からなることにして 94 00:03:26,434 --> 00:03:28,310 それを元に相性度を 計算してみます 95 00:03:28,310 --> 00:03:30,144 その2つの質問の 1つは 96 00:03:30,144 --> 00:03:32,349 たとえば「散らかし屋さんですか?」で 97 00:03:32,349 --> 00:03:34,399 答えの選択肢は 98 00:03:34,399 --> 00:03:35,618 「散らかし屋」 99 00:03:35,618 --> 00:03:36,398 「ふつう」 100 00:03:36,398 --> 00:03:38,172 「きれい好き」 だったとします 101 00:03:38,172 --> 00:03:39,875 あなたは「きれい好き」で 102 00:03:39,875 --> 00:03:42,581 相手にも「きれい好き」 であることを望み 103 00:03:42,581 --> 00:03:45,202 この問題はとても重要 だったとしましょう 104 00:03:45,202 --> 00:03:46,498 あなたは超きれい好きで 105 00:03:46,498 --> 00:03:47,292 自分だけでなく 106 00:03:47,292 --> 00:03:48,406 相手にも きれい好きなことを 107 00:03:48,406 --> 00:03:49,248 強く求めています 108 00:03:49,248 --> 00:03:51,015 Bさんは少し違います 109 00:03:51,015 --> 00:03:53,539 彼自身は「きれい好き」ですが 110 00:03:53,539 --> 00:03:55,171 相手は「ふつう」でかまわず 111 00:03:55,171 --> 00:03:56,430 相手は「ふつう」でかまわず 112 00:03:56,430 --> 00:03:58,748 彼にとって この問題は あまり重要ではありません 113 00:03:58,748 --> 00:04:00,308 2番目の質問に 移りましょう 114 00:04:00,308 --> 00:04:01,896 前に質問例として挙げた 115 00:04:01,896 --> 00:04:03,653 「場の中心になるのが好きですか?」で 116 00:04:03,653 --> 00:04:05,231 選択肢は「はい」か「いいえ」です 117 00:04:05,231 --> 00:04:06,407 あなたの答えは「いいえ」で 118 00:04:06,407 --> 00:04:08,235 相手にも「いいえ」であることを望み 119 00:04:08,235 --> 00:04:10,862 この問題はあまり 重要でなかったとします 120 00:04:10,862 --> 00:04:12,419 Bさんの方は 自分が「はい」で 121 00:04:12,419 --> 00:04:14,087 相手には「いいえ」を望み — 122 00:04:14,087 --> 00:04:16,492 なにしろ自分が中心でいたいので — 123 00:04:16,492 --> 00:04:19,334 そして この問題は彼にとって まあまあ重要だったとします 124 00:04:19,334 --> 00:04:21,716 それでは計算してみましょう 125 00:04:21,716 --> 00:04:22,855 まずはじめに 126 00:04:22,855 --> 00:04:24,376 コンピュータを使うので 127 00:04:24,376 --> 00:04:26,892 「まあまあ重要」とか 「とても重要」のような概念に 128 00:04:26,892 --> 00:04:29,041 数値を割り当てる 必要があります 129 00:04:29,041 --> 00:04:31,335 コンピュータはすべて 数字で計算するからです 130 00:04:31,335 --> 00:04:33,743 OkCupidではこんな重み付けを することにしました 131 00:04:33,743 --> 00:04:35,858 「どうでもよい」は 0点 132 00:04:35,858 --> 00:04:38,307 「あまり重要でない」は 1点 133 00:04:38,307 --> 00:04:40,393 「まあまあ重要」は 10点 134 00:04:40,393 --> 00:04:42,426 「とても重要」は 50点 135 00:04:42,426 --> 00:04:46,353 「必須」は 250点です 136 00:04:46,353 --> 00:04:48,852 つぎにアルゴリズムは 簡単な計算を2つします 137 00:04:48,852 --> 00:04:52,161 1つはBさんが あなたにとって どれくらい満足のいく人かで 138 00:04:52,161 --> 00:04:56,238 これはBさんが取り得る点数のうちの 何点を取ったかということです 139 00:04:56,238 --> 00:04:57,948 最初の質問 140 00:04:57,948 --> 00:04:59,947 散らかし屋かどうかは 141 00:04:59,947 --> 00:05:01,578 あなたにとって とても重要で 142 00:05:01,578 --> 00:05:04,041 Bさんは正しく答えたので 50点になります 143 00:05:04,041 --> 00:05:06,217 2番目の質問は あまり重要でなかったので 144 00:05:06,217 --> 00:05:07,558 1点分の価値しかなく 145 00:05:07,558 --> 00:05:09,176 Bさんは間違った 答えをしました 146 00:05:09,176 --> 00:05:12,392 だからBさんの点数は 50/51となり 147 00:05:12,392 --> 00:05:14,023 98%の満足度です 148 00:05:14,023 --> 00:05:15,220 これはかなり良い点数です 149 00:05:15,220 --> 00:05:16,832 次にアルゴリズムが見るのは 150 00:05:16,832 --> 00:05:18,918 あなたが どれくらいBさんを 満足させるかということです 151 00:05:18,918 --> 00:05:20,768 Bさんは散らかし屋の 質問には1点 152 00:05:20,768 --> 00:05:22,353 Bさんは散らかし屋の 質問には1点 153 00:05:22,353 --> 00:05:24,745 場の中心の質問には 10点を設定しました 154 00:05:24,745 --> 00:05:27,156 満点は 1 + 10 = 11 点で 155 00:05:27,156 --> 00:05:29,264 あなたは2番目の質問で 希望に合っていたので 156 00:05:29,264 --> 00:05:30,617 10点を取りました 157 00:05:30,617 --> 00:05:32,611 あなたの点数は10/11で 158 00:05:32,611 --> 00:05:35,240 Bさんにとっての 満足度は91%です 159 00:05:35,240 --> 00:05:36,117 悪くありません 160 00:05:36,117 --> 00:05:38,286 最後のステップとして この2つのパーセントの数字から 161 00:05:38,286 --> 00:05:40,454 2人の相性度を計算します 162 00:05:40,454 --> 00:05:42,747 アルゴリズムは 2つの値を掛け合わせて 163 00:05:42,747 --> 00:05:44,500 n 乗根を求めます 164 00:05:44,500 --> 00:05:46,792 ここで n は質問の個数です 165 00:05:46,792 --> 00:05:49,401 今の場合 質問の数は 166 00:05:49,401 --> 00:05:51,507 2つだけだったので 167 00:05:51,507 --> 00:05:54,093 相性度は 98% × 91% の 2 乗根で — 168 00:05:54,093 --> 00:05:58,154 相性度は 98% × 91% の 2 乗根で — 169 00:05:58,154 --> 00:06:00,304 94% となります 170 00:06:00,304 --> 00:06:03,194 94% があなたと Bさんの相性度です 171 00:06:03,194 --> 00:06:04,921 あなた方が付き合った時に 172 00:06:04,921 --> 00:06:06,305 予想される幸福度を 173 00:06:06,305 --> 00:06:08,259 得られているデータを元に 数学的に求めた値です 174 00:06:08,259 --> 00:06:09,981 なぜこのアルゴリズムでは 175 00:06:09,981 --> 00:06:12,284 2つの点数の平均を取らずに 176 00:06:12,284 --> 00:06:14,530 掛け算して累乗根を 求めているのか? 177 00:06:14,530 --> 00:06:16,689 一般にこのような式は 幾何平均と呼ばれ 178 00:06:16,689 --> 00:06:17,791 広い幅のある 179 00:06:17,791 --> 00:06:19,486 異なる性質の値を 組み合わせる 180 00:06:19,486 --> 00:06:20,861 優れた方法なんです 181 00:06:20,861 --> 00:06:23,164 つまり恋愛の相性には ぴったりということです 182 00:06:23,164 --> 00:06:24,248 広い範囲の 183 00:06:24,248 --> 00:06:26,206 たくさんの異なる データがあります 184 00:06:26,206 --> 00:06:27,156 映画だとか 185 00:06:27,156 --> 00:06:28,006 政治 186 00:06:28,006 --> 00:06:29,201 宗教 187 00:06:29,201 --> 00:06:30,395 その他あらゆることです 188 00:06:30,395 --> 00:06:32,336 直感的にも これは 意味のあることです 189 00:06:32,336 --> 00:06:34,918 互いに50%の満足度の2人は 190 00:06:34,918 --> 00:06:36,332 0%と100%の2人よりも 191 00:06:36,332 --> 00:06:39,180 相性が良いと言えるでしょう 192 00:06:39,180 --> 00:06:40,927 恋愛は相互的である 必要があるからです 193 00:06:40,927 --> 00:06:43,687 誤差に対応するために 若干の補正をすれば完了です 194 00:06:43,687 --> 00:06:45,410 たとえば今の場合だと 195 00:06:45,410 --> 00:06:47,234 質問の数が少なすぎる 196 00:06:47,234 --> 00:06:48,811 という問題がありました 197 00:06:48,811 --> 00:06:50,371 OkCupidが 2人を引き合わせる場合 198 00:06:50,371 --> 00:06:52,234 今説明したような 手順を辿ります 199 00:06:52,234 --> 00:06:54,484 まずみんなの答えを データとして集め 200 00:06:54,484 --> 00:06:56,929 本人の選択と 相手への希望を 201 00:06:56,929 --> 00:06:59,740 単純な数学的方法で 付き合わせていくんです 202 00:06:59,740 --> 00:07:02,453 この 現実の世界の現象を 203 00:07:02,453 --> 00:07:04,947 マイクロチップが理解できる形に 変える能力は 204 00:07:04,947 --> 00:07:05,942 今の時代 205 00:07:05,942 --> 00:07:08,565 最も重要なスキルだと思います 206 00:07:08,565 --> 00:07:10,919 人に対して文章を使って 物語るように 207 00:07:10,919 --> 00:07:13,665 コンピュータに対しては アルゴリズムを使って物語るのです 208 00:07:13,665 --> 00:07:14,921 言語を学べば 209 00:07:14,921 --> 00:07:16,381 物語を語れるようになります 210 00:07:16,381 --> 00:07:18,768 このビデオが その役に立てば幸いです