1 00:00:17,602 --> 00:00:19,239 안녕하세요, 제 이름은 크리스티안 러더 (Christian Rudder) 입니다. 2 00:00:19,239 --> 00:00:21,875 저는 오케이 큐피드 (OK Cupid) 의 설립자 중 한사람이며, 3 00:00:21,875 --> 00:00:24,502 오케이 큐피드는 현재 미국에서 가장 큰 만남 주선 회사 중 하나입니다. 4 00:00:24,502 --> 00:00:25,749 사이트 내의 거의 모든 사람들이 그러하듯, 5 00:00:25,749 --> 00:00:27,296 저는 수학 전공을 전공했고, 여러분이 기대하듯, 6 00:00:27,296 --> 00:00:28,644 우리는 사랑을 찾는 데에 대한 7 00:00:28,644 --> 00:00:29,887 분석적인 접근으로 잘 알려져 있습니다. 8 00:00:29,887 --> 00:00:31,717 우리는 그것을 매칭 알고리즘이라고 부릅니다. 9 00:00:31,717 --> 00:00:33,428 기본적으로 오케이 큐피드의 매칭 알고리즘은 10 00:00:33,428 --> 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:45,148 하지만 실제로 알고리즘은 단지 문제를 해결하는 15 00:00:45,148 --> 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,576 이제 알고리즘이 왜 그렇게 중요한지 아시겠어요? 21 00:00:57,576 --> 00:00:59,045 왜 이런 강연이 있을까요? 22 00:00:59,045 --> 00:01:02,457 글쎄요, 제가 앞서 썼던 표현 중 중요한 문구를 잘 생각해 보세요. 23 00:01:02,457 --> 00:01:05,029 알고리즘은 문제를 단계적으로 해결하는 방식입니다. 24 00:01:05,029 --> 00:01:05,841 그리고 여러분이 아마도 알고 계시듯이, 25 00:01:05,841 --> 00:01:08,470 컴퓨터는 단계별 과정에 뛰어납니다. 26 00:01:08,470 --> 00:01:09,588 알고리즘없는 컴퓨터는 27 00:01:09,588 --> 00:01:12,933 기본족으로 값비싼 타자기에 불과합니다. 28 00:01:12,933 --> 00:01:15,430 컴퓨터가 일생 생활의 모든 영역에 스며들었기 때문에, 29 00:01:15,430 --> 00:01:17,223 알고리즘은 어디에나 있습니다. 30 00:01:18,515 --> 00:01:20,267 오케이 큐피드의 매칭 알고리즘의 배경이 되는 수학은 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:30,235 신비스러운 부분인 사람 간의 끌림을 37 00:01:30,235 --> 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 그래서 우리는 오케이 큐피트 사용자들에게 질문을 하기로 했죠. 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:55,308 굉장히 많은 질문들이 49 00:01:55,308 --> 00:01:56,381 선호 사항과 선호 사항 사이를 연결시켜주는 데 유용합니다. 50 00:01:56,381 --> 00:01:59,052 그리고 바로 그 때가 사람들이 동일한 방식으로 대답을 할 때죠. 51 00:01:59,052 --> 00:02:01,471 예를 들어, 공포 영화를 좋아하는 두 사람이 52 00:02:01,471 --> 00:02:02,684 아마 공포 영화를 좋아하는 한 사람과 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,480 그러면 다음과 같은 질문에는 어떻게 답하는지 볼까요. 56 00:02:06,480 --> 00:02:08,189 "당신은 관심의 중심이 되고 싶은가요?" 57 00:02:08,189 --> 00:02:10,729 만약 연인관계에 있는 두 사람 모두 이 질문에 "네" 라고 대답한다면, 58 00:02:10,729 --> 00:02:13,068 두 사람은 곧 큰 문제에 직면하게 될 거에요. 59 00:02:13,068 --> 00:02:14,447 우리는 이것을 일찍 알았고, 60 00:02:14,447 --> 00:02:15,614 각각의 질문에 대해 정보가 더 필요하고 61 00:02:15,614 --> 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 그러나 우리는 한 가지 다른 차원이 필요했어요. 66 00:02:26,291 --> 00:02:28,835 어떤 질문들은 다른 것들보다 한 사람에 대해 훨씬 더 많은 것을 알려줍니다. 67 00:02:28,835 --> 00:02:31,795 예를 들어, "책을 태우는 것과 깃발을 태우는 것 가운데 어느 것이 더 나쁜가요?" 와 같은 68 00:02:31,795 --> 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 그래서 우리는 마지막으로 한 가지의 정보가 더 필요했습니다. 72 00:02:41,605 --> 00:02:43,440 오케이 큐피드가 묻는 모든 것들에 대해 73 00:02:43,440 --> 00:02:44,642 사람들은 각자의 삶에서 그런 질문들이 74 00:02:44,642 --> 00:02:46,223 어떤 역할을 하는지 말할 기회를 갖게 됩니다. 75 00:02:46,223 --> 00:02:49,089 이것은 무의미한 것부터 필수적인 것까지 다양합니다. 76 00:02:49,089 --> 00:02:50,564 그래서 지금 우리는 각 질문을 통해 77 00:02:50,564 --> 00:02:52,692 우리의 알고리즘에 관한 세 가지 사실을 파악하고 있습니다: 78 00:02:52,692 --> 00:02:54,068 첫째, 여러분의 대답. 79 00:02:54,068 --> 00:02:56,362 둘째, 여러분이 다른 누군가 80 00:02:56,362 --> 00:02:57,196 즉, 여러분의 잠재적 상대가 81 00:02:57,196 --> 00:02:58,781 어떻게 대답하길 원하는지. 82 00:02:58,781 --> 00:03:02,327 셋째, 그 질문이 여러분에게 얼마나 중요한지 하는 것이에요. 83 00:03:02,327 --> 00:03:03,702 이런 정보들로, 84 00:03:03,702 --> 00:03:07,128 오케이 큐피드는 두 사람이 얼마나 잘 어울리는지 알아냅니다. 85 00:03:07,128 --> 00:03:09,458 알고리즘은 수치들을 분석하여 결과를 알려줍니다. 86 00:03:09,458 --> 00:03:11,262 실제적인 예로, 87 00:03:11,262 --> 00:03:13,712 우리가 어떻게 여러분을 연결시켜 드리는지 살펴보겠습니다. 88 00:03:13,712 --> 00:03:15,581 상대를 "B" 라고 하겠습니다. 89 00:03:15,581 --> 00:03:17,479 B 와 여러분의 연결 확률은 질문들에 대한 90 00:03:17,479 --> 00:03:19,424 두사람의 대답에 달려 있습니다. 91 00:03:19,424 --> 00:03:21,978 공통 질문 세트를 "S" 라고 부르겠습니다. 92 00:03:21,978 --> 00:03:24,932 매우 간단한 예로, 우리는 공통으로 단 두개의 질문만 있는 93 00:03:24,932 --> 00:03:26,434 작은 세트 질문 "S"를 사용합니다. 94 00:03:26,434 --> 00:03:28,310 그리고 그것들로 연결을 계산합니다. 95 00:03:28,310 --> 00:03:30,144 두 가지 예를 말씀 드릴께요. 96 00:03:30,144 --> 00:03:32,349 예를 들어, 첫 질문은 "여러분은 얼마나 지저분한가요?" 입니다. 97 00:03:32,349 --> 00:03:34,669 그리고 가능한 대답은 98 00:03:34,669 --> 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,755 여러분이 "매우 정리된"이라고 대답했다고 생각해 보세요. 102 00:03:39,755 --> 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,212 사람들은 단정하고, 106 00:03:47,212 --> 00:03:48,296 다른 사람도 단정하길 바랍니다, 107 00:03:48,296 --> 00:03:49,248 그것 뿐입니다. 108 00:03:49,248 --> 00:03:51,015 B 는 다소 다르다고 생각해봅시다. 109 00:03:51,015 --> 00:03:53,539 B는 자신에 대해 매우 정리된 사람이라 대답하지만, 110 00:03:53,539 --> 00:03:55,171 그는 보통이라고 말하는 사람과도 111 00:03:55,171 --> 00:03:56,740 사이가 좋습니다. 112 00:03:56,740 --> 00:03:58,748 그런 질문은 그에게 그리 중요하지 않습니다. 113 00:03:58,748 --> 00:04:00,308 두 번째 질문을 보겠습니다. 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,332 상대방이 "아니오"라고 대답하길 원한다고 생각해봐요. 123 00:04:16,332 --> 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,162 "다소 중요" 나 "매우 중요"와 같은 128 00:04:26,162 --> 00:04:29,041 생각들에 절대값을 부여해야 합니다. 129 00:04:29,041 --> 00:04:31,335 왜냐하면 컴퓨터는 모든 것을 수치로 필요로 하기 때문이죠. 130 00:04:31,335 --> 00:04:33,523 오케이 큐피드는 다음과 같은 척도를 사용합니다. 131 00:04:33,523 --> 00:04:35,858 '무의미한'은 0 132 00:04:35,858 --> 00:04:38,307 '조금 중요한'은 1 133 00:04:38,307 --> 00:04:40,302 '다소 중요한'은 10 134 00:04:40,302 --> 00:04:42,426 '매우 중요한'은 50 135 00:04:42,426 --> 00:04:46,353 그리고 '절대적으로 필수적인'은 250 입니다. 136 00:04:46,353 --> 00:04:48,852 다음으로 알고리즘은 두 가지 간단한 계산을 합니다. 137 00:04:48,852 --> 00:04:51,941 첫번째는 B의 대답들이 얼마나 여러분을 만족시키는지, 138 00:04:51,941 --> 00:04:55,568 즉, 여러분의 척도에서 얼마나 많은 점수를 획득하느냐 입니다. 139 00:04:55,568 --> 00:04:58,138 여러분은 지저분함에 관한 질문에 대한 140 00:04:58,138 --> 00:04:59,947 B의 대답이 141 00:04:59,947 --> 00:05:01,448 매우 중요하다고 암시했습니다. 142 00:05:01,448 --> 00:05:04,041 그것은 50점이고 B는 그 점수를 획득했어요. 143 00:05:04,041 --> 00:05:05,947 두번째 질문은 단지 1점입니다. 144 00:05:05,947 --> 00:05:07,558 왜냐하면 여러분이 그것이 중요하지 않다고 말했기 때문입니다. 145 00:05:07,558 --> 00:05:09,036 그리고 B는 점수를 받지 못했습니다. 146 00:05:09,036 --> 00:05:12,392 그래서 B의 대답은 51점 중 50점을 받았습니다. 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는 지저분함에 관한 152 00:05:20,768 --> 00:05:22,353 여러분의 대답에 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:28,324 여러분은 10점을 얻었고, 156 00:05:28,324 --> 00:05:30,617 두 사람은 두번째 질문에서 서로를 만족시켰습니다. 157 00:05:30,617 --> 00:05:32,611 그래서 여러분의 대답은 11점 중 10점을 받았고, 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 마지막 단계는 이 두 수치를 합하여 161 00:05:38,286 --> 00:05:40,454 두 사람 모두에 대한 하나의 결과치를 만드는 작업입니다. 162 00:05:40,454 --> 00:05:42,747 이렇게 하기 위해서는, 알고리즘이 여러분의 점수들을 곱해야 합니다. 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 s가 겨우 2였기 때문에, 167 00:05:51,507 --> 00:05:54,093 우리는 98%와 91%의 곱의 168 00:05:54,093 --> 00:05:58,154 제곱근을 구합니다. 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,561 이것은 여러분이 서로 얼마나 만족할지 172 00:06:04,561 --> 00:06:06,405 우리가 알고 있는 정보에 근거하여 173 00:06:06,405 --> 00:06:07,749 수학적으로 표현한 것입니다. 174 00:06:07,749 --> 00:06:10,131 그러면, 왜 알고리즘이 175 00:06:10,131 --> 00:06:12,284 두 매칭 점수의 평균을 구하는 대신 176 00:06:12,284 --> 00:06:14,530 곱셈을 해서 제곱근을 하는걸까요? 177 00:06:14,530 --> 00:06:16,479 일반적으로, 이 공식은 기하 평균이라고 불립니다. 178 00:06:16,479 --> 00:06:17,881 이것은 넓은 범위를 지닌 값들을 179 00:06:17,881 --> 00:06:19,076 통합하여 180 00:06:19,076 --> 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,256 이것은 직관적으로도 의미가 있어요. 189 00:06:32,256 --> 00:06:34,918 두 사람이 서로를 50% 만족시킨다면 190 00:06:34,918 --> 00:06:36,052 한 사람이 0% 만족시키고 다른 한 사람이 100% 만족시키는 커플보다 191 00:06:36,052 --> 00:06:39,180 더욱 괜찮은 매칭입니다. 192 00:06:39,180 --> 00:06:40,847 왜냐하면 애정은 상호적이어야 하기 때문입니다. 193 00:06:40,847 --> 00:06:43,147 앞서 예에서 들었던 것처럼 194 00:06:43,147 --> 00:06:45,770 우리가 매우 적은 수의 질문을 갖고 있는 경우에 195 00:06:45,770 --> 00:06:47,234 오차를 조금만 수정하고 나면 196 00:06:47,234 --> 00:06:48,811 계속 진행해도 좋습니다. 197 00:06:48,811 --> 00:06:50,191 오케이 큐피드가 두 사람을 연결할 때마다 198 00:06:50,191 --> 00:06:52,234 우리가 방금 간략하게 소개한 과정들을 거치게 됩니다. 199 00:06:52,234 --> 00:06:54,484 첫째, 사람들의 대답 정보를 모읍니다. 200 00:06:54,484 --> 00:06:56,619 그리고 간단하고 수학적인 방법으로 그들의 선택과 선호도를 201 00:06:56,619 --> 00:06:59,740 다른 사람들의 것과 비교합니다. 202 00:06:59,740 --> 00:07:02,453 저는 현실의 현상을 가지고 마이크로 칩이 203 00:07:02,453 --> 00:07:05,167 이해할 수 있는 어떤 것을 만들어 내는 능력이 204 00:07:05,167 --> 00:07:05,742 오늘날 누구든지 205 00:07:05,742 --> 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 저는 이 이야기가 어려분이 그렇게 하도록 도울 수 있으면 좋겠습니다.