0:00:17.602,0:00:19.239 Здравствуйте, я Кристиан Раддер, 0:00:19.239,0:00:21.875 я один из основателей OkCupid. 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:29.904 что мы аналитически подходим к любви. 0:00:29.904,0:00:31.717 Мы называем это алгоритмом совмещения. 0:00:31.717,0:00:33.428 В общем, алгоритм OkCupid 0:00:33.428,0:00:36.481 помогает нам определить,[br]стоит ли паре людей сходить на свидание. 0:00:36.481,0:00:38.765 Мы построили на этом весь наш бизнес. 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 пошаговая инструкция[br]для решения проблемы. 0:00:47.817,0:00:49.949 Ей вовсе не нужно быть сложной. 0:00:49.949,0:00:51.802 В этом уроке я объясню, 0:00:51.802,0:00:53.657 как мы пришли к такому алгоритму, 0:00:53.657,0:00:55.660 и вы увидите, как всё работает. 0:00:55.660,0:00:57.576 А почему вообще важны алгоритмы? 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 пошаговые инструкции[br]для решения проблем, 0:01:05.031,0:01:08.470 и, как известно,[br]компьютеры прекрасно с этим справляются. 0:01:08.470,0:01:10.068 Компьютер без алгоритма — 0:01:10.068,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:21.847 Математика алгоритма OkCupid[br]удивительно проста. 0:01:21.847,0:01:25.339 Немного сложения, умножения[br]и чуть-чуть квадратных корней. 0:01:25.340,0:01:27.611 Хотя при его разработке была сложность 0:01:27.611,0:01:30.235 в понимании того,[br]как взять нечто загадочное — 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 что-то, с чем мог бы работать алгоритм. 0:01:38.382,0:01:41.752 Лучший способ быстро их получить —[br]просто попросить. 0:01:41.752,0:01:44.396 И мы решили, что OkCupid[br]будет задавать вопросы вроде: 0:01:44.396,0:01:46.834 «Хотите ли вы когда-нибудь[br]завести детей?», 0:01:46.834,0:01:48.754 «Как часто вы чистите зубы?», 0:01:48.754,0:01:50.407 «Нравятся ли вам фильмы ужасов?» 0:01:50.407,0:01:53.514 А также важные вещи вроде:[br]«Верите ли вы в Бога?» 0:01:53.514,0:01:56.388 Многие вопросы хороши[br]для поиска совпадений, 0:01:56.388,0:01:59.052 то есть когда оба человека[br]отвечают одинаково. 0:01:59.052,0:02:01.471 Например, два человека,[br]которым нравятся ужастики, 0:02:01.471,0:02:05.124 наверняка более совместимы,[br]чем те, у кого вкусы различаются. 0:02:05.124,0:02:06.480 Но как насчёт вопроса вроде: 0:02:06.480,0:02:08.189 «Любите ли вы быть в центре внимания?» 0:02:08.189,0:02:10.729 Если оба партнёра отвечают «да», 0:02:10.729,0:02:13.068 у них будут огромные проблемы. 0:02:13.068,0:02:15.617 Мы сразу поняли это[br]и решили, что нам нужно 0:02:15.617,0:02:17.332 больше информации в каждом вопросе. 0:02:17.332,0:02:20.332 Нужно просить людей[br]не только выбрать свой ответ, 0:02:20.332,0:02:23.038 но и ответ, который они бы хотели[br]получить от партнёра. 0:02:23.038,0:02:26.307 Это сработало отлично,[br]но нам нужно было ещё одно измерение. 0:02:26.307,0:02:28.835 Одни ответы говорят[br]о человеке больше, чем другие. 0:02:28.835,0:02:31.795 Например, вопрос о политике: 0:02:31.795,0:02:34.589 «Что хуже: сжечь книгу или флаг?», 0:02:34.589,0:02:37.207 мог бы сказать больше,[br]чем предпочтения в фильмах. 0:02:37.207,0:02:39.547 И неверно придавать вопросам[br]одинаковый вес, 0:02:39.547,0:02:41.605 поэтому мы добавили заключительный пункт. 0:02:41.605,0:02:43.440 В каждом вопросе, задаваемом OkCupid, 0:02:43.440,0:02:46.352 можно отметить, насколько важен[br]для вас тот или иной аспект, — 0:02:46.352,0:02:49.089 в диапазоне от безразличия[br]до обязательности. 0:02:49.089,0:02:52.704 Теперь для каждого вопроса[br]у нас есть три вещи в алгоритме: 0:02:52.704,0:02:54.068 первое — ваш ответ; 0:02:54.068,0:02:58.792 второе — предпочтительный ответ[br]потенциального партнёра 0:02:58.792,0:03:02.327 и третье — важность этого вопроса для вас. 0:03:02.327,0:03:03.702 С помощью этой информации 0:03:03.702,0:03:07.128 OkCupid может понять, как сложатся[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:19.429 Процент совместимости с «B» основывается[br]на вопросах, на которые вы оба ответили. 0:03:19.429,0:03:21.978 Назовём набор общих вопросов «S». 0:03:21.978,0:03:24.932 Для простоты мы возьмём[br]маленький набор «S», 0:03:24.932,0:03:26.434 всего из двух общих вопросов, 0:03:26.434,0:03:28.310 и вычислим совместимость на их основе. 0:03:28.310,0:03:30.144 Вот наши два вопроса. 0:03:30.144,0:03:32.349 Первый, допустим: «Насколько вы грязнуля?» 0:03:32.349,0:03:34.669 Возможные ответы: 0:03:34.669,0:03:38.168 «грязнуля», «средне» и «очень аккуратный». 0:03:38.172,0:03:39.755 Пусть вы «очень аккуратный» 0:03:39.755,0:03:42.581 и хотели бы, чтобы партнёр ответил так же, 0:03:42.581,0:03:45.202 а вопрос для вас очень важен. 0:03:45.202,0:03:46.498 В общем, вы аккуратист. 0:03:46.498,0:03:49.402 Вы чистюля и хотите,[br]чтобы партнёр тоже был чистюлей. 0:03:49.402,0:03:51.015 Допустим, «В» немного другой. 0:03:51.015,0:03:53.399 Он ответил, что сам он «очень аккуратный», 0:03:53.399,0:03:56.911 но «средняя» аккуратность его устроит[br]в качестве ответа от партнёра, 0:03:56.911,0:03:58.748 а сам вопрос для него не очень важен. 0:03:58.748,0:04:01.968 Посмотрим на второй вопрос,[br]мы его уже упоминали: 0:04:01.968,0:04:03.653 «Вам нравится быть в центре внимания?» 0:04:03.653,0:04:05.231 Ответы только «да» и «нет». 0:04:05.231,0:04:07.875 Вы ответили «нет»,[br]хотите, чтобы партнёр ответил «нет», 0:04:07.875,0:04:10.679 а вопрос не очень важен. 0:04:10.679,0:04:12.419 Теперь «В»: он ответил «да», 0:04:12.419,0:04:14.087 хочет, чтобы партнёр ответил «нет», 0:04:14.087,0:04:16.332 потому что хочет быть в центре внимания, 0:04:16.332,0:04:19.335 а вопрос для него достаточно важен. 0:04:19.335,0:04:21.716 Давайте это всё вычислим. 0:04:21.716,0:04:24.395 Первый шаг, поскольку мы используем[br]компьютеры, — 0:04:24.395,0:04:26.162 присвоить числовые значения 0:04:26.162,0:04:29.041 понятиям вроде «достаточно важно»[br]и «очень важно», 0:04:29.041,0:04:31.335 так как компьютеры понимают только числа. 0:04:31.335,0:04:33.523 В OkCupid мы используем такие величины: 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 Теперь алгоритм делает два вычисления. 0:04:48.852,0:04:51.941 Первое: насколько ответы «B»[br]удовлетворяют вас, 0:04:51.941,0:04:55.568 то есть сколько из возможных баллов[br]«B» получил по вашим меркам? 0:04:55.568,0:04:58.138 Итак, вы обозначили, что ответ «В» 0:04:58.138,0:04:59.947 на первый вопрос про чистоплотность 0:04:59.947,0:05:01.448 был очень важен для вас. 0:05:01.448,0:05:04.041 Он стоит 50 баллов, и «В» ответил верно. 0:05:04.041,0:05:05.857 Второй вопрос стоит всего 1 балл, 0:05:05.857,0:05:07.748 потому что вы сказали,[br]что он не очень важен, 0:05:07.748,0:05:09.036 а ответ «В» не подошёл. 0:05:09.036,0:05:12.392 Ответы «В» набрали[br]50 из 51 возможных баллов. 0:05:12.392,0:05:15.213 Это на 98% удовлетворительно.[br]Довольно хорошо. 0:05:15.223,0:05:18.932 Второй пункт в алгоритме выясняет,[br]насколько вы подходите «В». 0:05:18.932,0:05:22.358 «В» дал 1 балл вашему ответу[br]про чистоплотность 0:05:22.358,0:05:24.745 и 10 ответу на второй вопрос. 0:05:24.745,0:05:28.326 Из этих 11 баллов, поскольку 1 плюс 10,[br]вы заработали 10, 0:05:28.326,0:05:30.617 вы удовлетворили друг друга[br]во втором вопросе. 0:05:30.617,0:05:35.251 Ваши ответы составляют 10 из 11,[br]что на 91% подходит «В». 0:05:35.251,0:05:36.117 Это неплохо. 0:05:36.117,0:05:38.286 Последний шаг:[br]взять проценты совместимостей 0:05:38.286,0:05:40.454 и получить одно число для вас обоих. 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 Поскольку «S», число вопросов, 0:05:49.401,0:05:51.507 всего 2, 0:05:51.507,0:05:54.093 процент совместимости равняется[br] 0:05:54.093,0:05:58.154 квадратному корню от 98%,[br]умноженному на 91%. 0:05:58.154,0:06:00.304 Это 94%. 0:06:00.304,0:06:03.184 94% — ваша совместимость с «В». 0:06:03.184,0:06:06.431 Это математическое выражение[br]вашей возможности счастья друг с другом, 0:06:06.431,0:06:07.959 основанное на том, что мы знаем. 0:06:07.959,0:06:10.601 Почему алгоритм умножает[br]вместо того чтобы, например, 0:06:10.601,0:06:12.284 выводить среднее между баллами 0:06:12.284,0:06:14.530 и заниматься извлечением корней? 0:06:14.530,0:06:16.479 Эта формула — среднее геометрическое, 0:06:16.479,0:06:19.311 это отличный способ сочетать значения[br]из больших диапазонов 0:06:19.311,0:06:20.861 и с очень разными свойствами. 0:06:20.861,0:06:23.164 То есть она идеальна[br]для романтических соответствий. 0:06:23.164,0:06:25.948 Есть широкие диапазоны[br]и кучи разных данных — 0:06:25.948,0:06:30.406 о кино, политике, религии — обо всём. 0:06:30.406,0:06:32.256 Это имеет смысл на уровне интуиции. 0:06:32.256,0:06:34.918 Два человека,[br]удовлетворяющих друг друга на 50%, 0:06:34.918,0:06:38.832 более совместимы, чем два других,[br]чей результат — 0 и 100, 0:06:38.832,0:06:40.847 потому что симпатия должна быть взаимной. 0:06:40.847,0:06:43.327 После небольшой корректировки[br]предела погрешности, 0:06:43.327,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 Когда OkCupid находит пары, 0:06:50.191,0:06:52.234 он проходит через описанные выше шаги. 0:06:52.234,0:06:54.484 Сначала он собирает данные[br]о ваших ответах, 0:06:54.484,0:06:56.849 потом совмещает ваши варианты[br]и предпочтения 0:06:56.849,0:06:59.740 простыми, математическими способами. 0:06:59.740,0:07:02.453 Возможность брать явления реального мира 0:07:02.453,0:07:05.757 и делать их понятными микрочипу — 0:07:05.757,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:16.391 Если вы выучите язык,[br]вы можете рассказывать ваши истории. 0:07:16.391,0:07:18.768 Я надеюсь, это окажется вам полезным.