0:00:17.602,0:00:19.239 안녕하세요, 제 이름은 [br]크리스티안 러더 (Christian Rudder) 입니다. 0:00:19.239,0:00:21.875 저는 오케이 큐피드 (OK Cupid) 의 [br]설립자 중 한사람이며, 0:00:21.875,0:00:24.502 오케이 큐피드는 현재 미국에서 [br]가장 큰 만남 주선 회사 중 하나입니다. 0:00:24.502,0:00:25.749 사이트 내의 거의 모든 사람들이 그러하듯, 0:00:25.749,0:00:27.296 저는 수학 전공을 전공했고, 여러분이 기대하듯, 0:00:27.296,0:00:28.644 우리는 사랑을 찾는 데에 대한 0:00:28.644,0:00:29.887 분석적인 접근으로 잘 알려져 있습니다. 0:00:29.887,0:00:31.717 우리는 그것을 매칭 알고리즘이라고 부릅니다. 0:00:31.717,0:00:33.428 기본적으로 오케이 큐피드의 매칭 알고리즘은 0:00:33.428,0:00:36.481 두 사람이 데이트를 해야 할 것인지[br]결정하도록 도와줍니다. 0:00:36.481,0:00:38.765 저희의 모든 사업은 [br]이 알고리즘을 기초로 만들어졌습니다. 0:00:38.765,0:00:40.572 알고리즘은 뭔가 특별한 단어이고, 0:00:40.572,0:00:43.047 사람들은 대단한 것인양 [br]대화에 즐겨 사용합니다. 0:00:43.047,0:00:45.148 하지만 실제로 알고리즘은 [br]단지 문제를 해결하는 0:00:45.148,0:00:47.817 체계적이고 단계적인 방법일 뿐입니다. 0:00:47.817,0:00:49.949 따라서 그것은 결코 화려할 필요가 없어요. 0:00:49.949,0:00:51.802 이번 강의에게 우리가 어떻게 [br]우리만의 알고리즘에 0:00:51.802,0:00:53.657 도달하게 되었는지 알려 드리겠습니다. 0:00:53.657,0:00:55.660 그러면 어떻게 구축된 것인지 [br]이해하실 거에요. 0:00:55.660,0:00:57.576 이제 알고리즘이 [br]왜 그렇게 중요한지 아시겠어요? 0:00:57.576,0:00:59.045 왜 이런 강연이 있을까요? 0:00:59.045,0:01:02.457 글쎄요, 제가 앞서 썼던 표현 중 [br]중요한 문구를 잘 생각해 보세요. 0:01:02.457,0:01:05.029 알고리즘은 문제를 단계적으로 해결하는 방식입니다. 0:01:05.029,0:01:05.841 그리고 여러분이 아마도 알고 계시듯이, 0:01:05.841,0:01:08.470 컴퓨터는 단계별 과정에 뛰어납니다. 0:01:08.470,0:01:09.588 알고리즘없는 컴퓨터는 0:01:09.588,0:01:12.933 기본족으로 값비싼 타자기에 불과합니다. 0:01:12.933,0:01:15.430 컴퓨터가 일생 생활의 모든 영역에 [br]스며들었기 때문에, 0:01:15.430,0:01:17.223 알고리즘은 어디에나 있습니다. 0:01:18.515,0:01:20.267 오케이 큐피드의 매칭 알고리즘의 [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 제곱근을 사용합니다. 0:01:25.340,0:01:27.611 그러나 알고리즘을 구성하는 데 어려운 부분은 0:01:27.611,0:01:30.235 신비스러운 부분인 사람 간의 끌림을 0:01:30.235,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 사람들로부터 자료를 수집하는 최고의 방법은 0:01:40.412,0:01:41.747 그들에게 물어보는 것이었어요. 0:01:41.747,0:01:44.166 그래서 우리는 오케이 큐피트 [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:55.308 굉장히 많은 질문들이 0:01:55.308,0:01:56.381 선호 사항과 선호 사항 사이를 [br]연결시켜주는 데 유용합니다. 0:01:56.381,0:01:59.052 그리고 바로 그 때가 [br]사람들이 동일한 방식으로 대답을 할 때죠. 0:01:59.052,0:02:01.471 예를 들어, 공포 영화를 좋아하는 두 사람이 0:02:01.471,0:02:02.684 아마 공포 영화를 좋아하는 한 사람과 0:02:02.684,0:02:03.843 그렇지 않은 다른 한 사람 보다 0:02:03.843,0:02:05.115 더 잘 어울릴 거에요. 0:02:05.115,0:02:06.480 그러면 다음과 같은 질문에는[br]어떻게 답하는지 볼까요. 0:02:06.480,0:02:08.189 "당신은 관심의 중심이 되고 싶은가요?" 0:02:08.189,0:02:10.729 만약 연인관계에 있는 두 사람 모두[br]이 질문에 "네" 라고 대답한다면, 0:02:10.729,0:02:13.068 두 사람은 곧 큰 문제에 직면하게 될 거에요. 0:02:13.068,0:02:14.447 우리는 이것을 일찍 알았고, 0:02:14.447,0:02:15.614 각각의 질문에 대해 정보가 더 필요하고 0:02:15.614,0:02:17.581 이를 모아야겠다고 생각했습니다. 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 그러나 우리는 한 가지 [br]다른 차원이 필요했어요. 0:02:26.291,0:02:28.835 어떤 질문들은 다른 것들보다 [br]한 사람에 대해 훨씬 더 많은 것을 알려줍니다. 0:02:28.835,0:02:31.795 예를 들어, "책을 태우는 것과 깃발을 태우는 것 가운데[br]어느 것이 더 나쁜가요?" 와 같은 0:02:31.795,0:02:34.589 정치적 질문은 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 그래서 우리는 마지막으로 [br]한 가지의 정보가 더 필요했습니다. 0:02:41.605,0:02:43.440 오케이 큐피드가 묻는 [br]모든 것들에 대해 0:02:43.440,0:02:44.642 사람들은 각자의 삶에서 그런 질문들이 0:02:44.642,0:02:46.223 어떤 역할을 하는지 [br]말할 기회를 갖게 됩니다. 0:02:46.223,0:02:49.089 이것은 무의미한 것부터 [br]필수적인 것까지 다양합니다. 0:02:49.089,0:02:50.564 그래서 지금 우리는 각 질문을 통해 0:02:50.564,0:02:52.692 우리의 알고리즘에 관한 [br]세 가지 사실을 파악하고 있습니다: 0:02:52.692,0:02:54.068 첫째, 여러분의 대답. 0:02:54.068,0:02:56.362 둘째, 여러분이 다른 누군가 0:02:56.362,0:02:57.196 즉, 여러분의 잠재적 상대가 0:02:57.196,0:02:58.781 어떻게 대답하길 원하는지. 0:02:58.781,0:03:02.327 셋째, 그 질문이 여러분에게 [br]얼마나 중요한지 하는 것이에요. 0:03:02.327,0:03:03.702 이런 정보들로, 0:03:03.702,0:03:07.128 오케이 큐피드는 두 사람이 [br]얼마나 잘 어울리는지 알아냅니다. 0:03:07.128,0:03:09.458 알고리즘은 수치들을 분석하여 [br]결과를 알려줍니다. 0:03:09.458,0:03:11.262 실제적인 예로, 0:03:11.262,0:03:13.712 우리가 어떻게 여러분을 [br]연결시켜 드리는지 살펴보겠습니다. 0:03:13.712,0:03:15.581 상대를 "B" 라고 하겠습니다. 0:03:15.581,0:03:17.479 B 와 여러분의 연결 확률은 질문들에 대한 0:03:17.479,0:03:19.424 두사람의 대답에 달려 있습니다. 0:03:19.424,0:03:21.978 공통 질문 세트를 "S" 라고 부르겠습니다. 0:03:21.978,0:03:24.932 매우 간단한 예로, 우리는 [br]공통으로 단 두개의 질문만 있는 0:03:24.932,0:03:26.434 작은 세트 질문 "S"를 사용합니다. 0:03:26.434,0:03:28.310 그리고 그것들로 연결을 계산합니다. 0:03:28.310,0:03:30.144 두 가지 예를 말씀 드릴께요. 0:03:30.144,0:03:32.349 예를 들어, 첫 질문은[br]"여러분은 얼마나 지저분한가요?" 입니다. 0:03:32.349,0:03:34.669 그리고 가능한 대답은 0:03:34.669,0:03:35.618 매우 지저분한, 0:03:35.618,0:03:36.398 보통, 0:03:36.398,0:03:38.172 매우 정리된 입니다. 0:03:38.172,0:03:39.755 여러분이 "매우 정리된"이라고 [br]대답했다고 생각해 보세요. 0:03:39.755,0:03:42.581 그러면 여러분은 짝이 될 사람도 [br]"매우 정리된" 이라고 대답하길 기대할 거에요. 0:03:42.581,0:03:45.202 이 질문은 사람들에게 매우 중요합니다. 0:03:45.202,0:03:46.498 기본적으로 사람들에게는 [br]정리벽이 있거든요. 0:03:46.498,0:03:47.212 사람들은 단정하고, 0:03:47.212,0:03:48.296 다른 사람도 단정하길 바랍니다, 0:03:48.296,0:03:49.248 그것 뿐입니다. 0:03:49.248,0:03:51.015 B 는 다소 다르다고 생각해봅시다. 0:03:51.015,0:03:53.539 B는 자신에 대해 매우 [br]정리된 사람이라 대답하지만, 0:03:53.539,0:03:55.171 그는 보통이라고 말하는 사람과도 0:03:55.171,0:03:56.740 사이가 좋습니다. 0:03:56.740,0:03:58.748 그런 질문은 그에게 [br]그리 중요하지 않습니다. 0:03:58.748,0:04:00.308 두 번째 질문을 보겠습니다. 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는 "네" 라고 대답했고, 0:04:12.419,0:04:14.087 그는 자신이 주목받길 원하기 때문에 0:04:14.087,0:04:16.332 상대방이 "아니오"라고 [br]대답하길 원한다고 생각해봐요. 0:04:16.332,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.162 "다소 중요" 나 "매우 중요"와 같은 0:04:26.162,0:04:29.041 생각들에 절대값을 부여해야 합니다. 0:04:29.041,0:04:31.335 왜냐하면 컴퓨터는 모든 것을[br]수치로 필요로 하기 때문이죠. 0:04:31.335,0:04:33.523 오케이 큐피드는 [br]다음과 같은 척도를 사용합니다. 0:04:33.523,0:04:35.858 '무의미한'은 0 0:04:35.858,0:04:38.307 '조금 중요한'은 1 0:04:38.307,0:04:40.302 '다소 중요한'은 10 0:04:40.302,0:04:42.426 '매우 중요한'은 50 0:04:42.426,0:04:46.353 그리고 '절대적으로 필수적인'은 250 입니다. 0:04:46.353,0:04:48.852 다음으로 알고리즘은 [br]두 가지 간단한 계산을 합니다. 0:04:48.852,0:04:51.941 첫번째는 B의 대답들이 [br]얼마나 여러분을 만족시키는지, 0:04:51.941,0:04:55.568 즉, 여러분의 척도에서 [br]얼마나 많은 점수를 획득하느냐 입니다. 0:04:55.568,0:04:58.138 여러분은 지저분함에 관한 질문에 대한 0:04:58.138,0:04:59.947 B의 대답이 0:04:59.947,0:05:01.448 매우 중요하다고 암시했습니다. 0:05:01.448,0:05:04.041 그것은 50점이고 B는 그 점수를 획득했어요. 0:05:04.041,0:05:05.947 두번째 질문은 단지 1점입니다. 0:05:05.947,0:05:07.558 왜냐하면 여러분이 그것이[br]중요하지 않다고 말했기 때문입니다. 0:05:07.558,0:05:09.036 그리고 B는 점수를 받지 못했습니다. 0:05:09.036,0:05:12.392 그래서 B의 대답은 51점 중 [br]50점을 받았습니다. 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는 지저분함에 관한 0:05:20.768,0:05:22.353 여러분의 대답에 1점을 0:05:22.353,0:05:24.745 두번째 질문에는 10점을 부여했습니다. 0:05:24.745,0:05:27.156 1점과 10점을 합해서 11점 중 0:05:27.156,0:05:28.324 여러분은 10점을 얻었고, 0:05:28.324,0:05:30.617 두 사람은 두번째 질문에서[br]서로를 만족시켰습니다. 0:05:30.617,0:05:32.611 그래서 여러분의 대답은 [br]11점 중 10점을 받았고, 0:05:32.611,0:05:35.240 B에 대해 똑같이 91% 만족하게 됩니다. 0:05:35.240,0:05:36.117 나쁘지 않죠. 0:05:36.117,0:05:38.286 마지막 단계는 이 두 수치를 합하여 0:05:38.286,0:05:40.454 두 사람 모두에 대한 [br]하나의 결과치를 만드는 작업입니다. 0:05:40.454,0:05:42.747 이렇게 하기 위해서는, [br]알고리즘이 여러분의 점수들을 곱해야 합니다. 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 s가 겨우 2였기 때문에, 0:05:51.507,0:05:54.093 우리는 98%와 91%의 곱의 0:05:54.093,0:05:58.154 제곱근을 구합니다. 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.561 이것은 여러분이 서로 얼마나 만족할지 0:06:04.561,0:06:06.405 우리가 알고 있는 정보에 근거하여 0:06:06.405,0:06:07.749 수학적으로 표현한 것입니다. 0:06:07.749,0:06:10.131 그러면, 왜 알고리즘이 0:06:10.131,0:06:12.284 두 매칭 점수의 평균을 구하는 대신 0:06:12.284,0:06:14.530 곱셈을 해서 [br]제곱근을 하는걸까요? 0:06:14.530,0:06:16.479 일반적으로, 이 공식은 [br]기하 평균이라고 불립니다. 0:06:16.479,0:06:17.881 이것은 넓은 범위를 지닌 값들을 0:06:17.881,0:06:19.076 통합하여 0:06:19.076,0:06:20.861 매우 다른 특성들을 나타내는[br]좋은 방법입니다. 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 수 많은 다른 정보 점수를 갖고 있습니다. 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.256 이것은 직관적으로도 의미가 있어요. 0:06:32.256,0:06:34.918 두 사람이 서로를 50% 만족시킨다면 0:06:34.918,0:06:36.052 한 사람이 0% 만족시키고 [br]다른 한 사람이 100% 만족시키는 커플보다 0:06:36.052,0:06:39.180 더욱 괜찮은 매칭입니다. 0:06:39.180,0:06:40.847 왜냐하면 애정은 [br]상호적이어야 하기 때문입니다. 0:06:40.847,0:06:43.147 앞서 예에서 들었던 것처럼 0:06:43.147,0:06:45.770 우리가 매우 적은 수의 [br]질문을 갖고 있는 경우에 0:06:45.770,0:06:47.234 오차를 조금만 수정하고 나면 0:06:47.234,0:06:48.811 계속 진행해도 좋습니다. 0:06:48.811,0:06:50.191 오케이 큐피드가 두 사람을 연결할 때마다 0:06:50.191,0:06:52.234 우리가 방금 간략하게 소개한 [br]과정들을 거치게 됩니다. 0:06:52.234,0:06:54.484 첫째, 사람들의 대답 정보를 모읍니다. 0:06:54.484,0:06:56.619 그리고 간단하고 수학적인 방법으로 [br]그들의 선택과 선호도를 0:06:56.619,0:06:59.740 다른 사람들의 것과 비교합니다. 0:06:59.740,0:07:02.453 저는 현실의 현상을 가지고 [br]마이크로 칩이 0:07:02.453,0:07:05.167 이해할 수 있는 어떤 것을 만들어 내는 능력이 0:07:05.167,0:07:05.742 오늘날 누구든지 0:07:05.742,0:07:08.565 가질 수 있는 [br]가장 중요한 기술이라고 생각합니다. 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]그렇게 하도록 도울 수 있으면 좋겠습니다.