Hello, my name is Christian Rudder,
and I was one of the founders of OkCupid.
It's now one of the biggest dating sites in the United States.
Like most everyone at the site, I was a math major,
As you may expect, we're known for the analytic approach we take to love.
We call it our matching algorithm.
Basically, OkCupid's matching algorithm helps us decide
whether two people should go on a date.
We built our entire business around it.
Now, algorithm is a fancy word,
and people like to drop it like it's this big thing.
But really, an algorithm is just a systematic,
step-by-step way to solve a problem.
It doesn't have to be fancy at all.
Here in this lesson,
I'm going to explain how we arrived at our particular algorithm,
so you can see how it's done.
Now, why are algorithms even important?
Why does this lesson even exist?
Well, notice one very significant phrase I used above:
they are a step-by-step way to solve a problem,
and as you probably know, computers excel at step-by-step processes.
A computer without an algorithm
is basically an expensive paperweight.
And since computers are such a pervasive part of everyday life,
algorithms are everywhere.
The math behind OkCupid's matching algorithm is surprisingly simple.
It's just some addition, multiplication, a little bit of square roots.
The tricky part in designing it
was figuring out how to take something mysterious,
human attraction,
and break it into components that a computer can work with.
The first thing we needed to match people up was data,
something for the algorithm to work with.
The best way to get data quickly from people is to just ask for it.
So we decided that OkCupid should ask users questions,
stuff like, "Do you want to have kids one day?"
"How often do you brush your teeth?"
"Do you like scary movies?"
And big stuff like, "Do you believe in God?"
Now, a lot of the questions are good for matching like with like,
that is, when both people answer the same way.
For example, two people who are both into scary movies
are probably a better match than one person who is and one who isn't.
But what about a question like,
"Do you like to be the center of attention?"
If both people in a relationship are saying yes to this,
they're going to have massive problems.
We realized this early on,
and so we decided we needed a bit more data from each question.
We had to ask people to specify not only their own answer,
but the answer they wanted from someone else.
That worked really well.
But we needed one more dimension.
Some questions tell you more about a person than others.
For example, a question about politics, something like,
"Which is worse: book burning or flag burning?"
might reveal more about someone than their taste in movies.
And it doesn't make sense to weigh all things equally,
so we added one final data point.
For everything that OkCupid asks you,
you have a chance to tell us the role it plays in your life.
And this ranges from irrelevant to mandatory.
So now, for every question, we have three things for our algorithm:
first, your answer;
second, how you want someone else -- your potential match -- to answer;
and third, how important the question is to you at all.
With all this information,
OkCupid can figure out how well two people will get along.
The algorithm crunches the numbers and gives us a result.
As a practical example,
let's look at how we'd match you with another person.
Let's call him "B."
Your match percentage with B is based on questions you've both answered.
Let's call that set of common questions "s."
As a very simple example, we use a small set "s"
with just two questions in common,
and compute a match from that.
Here are our two example questions.
The first one, let's say, is, "How messy are you?"
And the answer possibilities are:
very messy, average and very organized.
And let's say you answered "very organized,"
and you'd like someone else to answer "very organized,"
and the question is very important to you.
Basically, you're a neat freak.
You're neat, you want someone else to be neat, and that's it.
And let's say B is a little bit different.
He answered "very organized" for himself,
but "average" is OK with him as an answer from someone else,
and the question is only a little important to him.
Let's look at the second question, from our previous example:
"Do you like to be the center of attention?"
The answers are "yes" and "no."
You've answered "no," you want someone else to answer "no,"
and the question is only a little important to you.
Now B, he's answered "yes."
He wants someone else to answer "no,"
because he wants the spotlight on him,
and the question is somewhat important to him.
So, let's try to compute all of this.
Our first step is, since we use computers to do this,
we need to assign numerical values
to ideas like "somewhat important" and "very important,"
because computers need everything in numbers.
We at OkCupid decided on the following scale:
"Irrelevant" is worth 0.
"A little important" is worth 1.
"Somewhat important" is worth 10.
"Very important" is 50.
And "absolutely mandatory" is 250.
Next, the algorithm makes two simple calculations.
The first is: How much did B's answers satisfy you?
That is, how many possible points did B score on your scale?
Well, you indicated that B's answer to the first question,
about messiness,
was very important to you.
It's worth 50 points and B got that right.
The second question is worth only 1,
because you said it was only a little important.
B got that wrong,
so B's answers were 50 out of 51 possible points.
That's 98% satisfactory. Pretty good.
The second question the algorithm looks at is: How much did you satisfy B?
Well, B placed 1 point on your answer to the messiness question
and 10 on your answer to the second.
Of those 11, that's 1 plus 10, you earned 10 --
you guys satisfied each other on the second question.
So your answers were 10 out of 11 equals 91 percent satisfactory to B.
That's not bad.
The final step is to take these two match percentages
and get one number for the both of you.
To do this, the algorithm multiplies your scores,
then takes the nth root,
where "n" is the number of questions.
Because s, which is the number of questions in this sample,
is only 2,
we have: match percentage equals the square root
of 98 percent times 91 percent.
That equals 94 percent.
That 94 percent is your match percentage with B.
It's a mathematical expression of how happy you'd be with each other,
based on what we know.
Now, why does the algorithm multiply,
as opposed to, say, average the two match scores together,
and do the square-root business?
In general, this formula is called the geometric mean.
It's a great way to combine values that have wide ranges
and represent very different properties.
In other words, it's perfect for romantic matching.
You've got wide ranges and you've got tons of different data points,
like I said, about movies, politics, religion -- everything.
Intuitively, too, this makes sense.
Two people satisfying each other 50 percent
should be a better match than two others who satisfy 0 and 100,
because affection needs to be mutual.
After adding a little correction for margin of error,
in the case where we have a small number of questions,
like we do in this example,
we're good to go.
Any time OkCupid matches two people,
it goes through the steps we just outlined.
First it collects data about your answers,
then it compares your choices and preferences to other people's
in simple, mathematical ways.
This, the ability to take real-world phenomena
and make them something a microchip can understand,
is, I think, the most important skill anyone can have these days.
Like you use sentences to tell a story to a person,
you use algorithms to tell a story to a computer.
If you learn the language, you can go out and tell your stories.
I hope this will help you do that.
مرحبا، اسمي هوكرستيان دادير
أنا أحد مؤسسي "أوك كيوبيد " ( موافق يا ساعي الحب )
و هو واحد من أكبر مواقع " المواعدة " في الولايات المتحدة.
مثل أي شخص تقريبا يعمل في الموقع
تخصصي الأساسي هو الرياضيات و كما تعلمون
نحن - كموقع - معروفون بالنهج التحليلية
حينما يتعلق الامر بالحب
و نطلق على تلك النهج التي نملكها بخوارزمية المطابقة
خوارزمية "أوك كيوبيد" للمطابقة
تساعدنا في أن نقرر ما إذا كان ينبغي على شخصين الخروج بموعد أم لا
كل عمل الموقع مبني على هذا
الخوارزميات هي عالم سحري بحد ذاته
والناس عادة تستخدم هذا التعريف لوصف الامور المعقدة
ولكن حقاً الخوارزميات تتبع اسلوب منهجي فقط لا اكثر
تعمل خطوة خطوة لحل مشكلة ما
و ليست سحرية على الاطلاق
في هذا الدرس سوف أشرح
آلية عمل خوارزمية موقعنا و كيف وصلنا اليها
لكي تعي كيف تعمل و كيف نعمل نحن
بداية لماذا تعتبر الخوارزميات مهمة ؟
و لماذا أنا أقدم هذا الدرس ؟ ما هي أهميته ؟
حسناً تذكروا العبارة التي استخدمت أعلاه
" تعمل خطوة خطوة لحل مشكلة ما "
كما تعلمون
تتفوق أجهزة الكمبيوتر في عمليات التحليل خطوة بخطوة
جهاز كمبيوتر بدون خوارزمية
هو أساسا جهاز مكلف لا قيمة له
ونظرا لأن أجهزة الكمبيوتر جزء هام في حياتنا اليومية
فالخوارزميات إذاً في كل مكان
الرياضيات التي تقف خلف خوارزمية "أوك كيوبيد"
هي خوارزمية بسيطة بصورة عجيبة
انها عبارة عن خليط
من عمليات الضرب
و قليلاً من الجذور التربيعية
يعد تصميم الخوارزميات الجزء الأصعب فيها
خاصة ان كانت تتعلق في معرفة شيء غامض
مثل الانجذاب بين البشر
وتقسيمه -الانجذاب بين البشر- إلى مكونات يمكن لجهاز كمبيوتر أن يتعامل معها
حسنا، البيانات أهم ما نحتاجه لكي ندرس الانجذاب بين البشر
فهي شيء يمكن للخوارزمية التعامل معه
و أفضل طريقة للحصول على البيانات بسرعة
هي أن تطرح الأسئلة
لذا بداية قررنا أن نطرح الأسئلة على مستخدمي "أوك كيوبيد"
أسئلة من مثل "هل تريد أن تنجب الأطفال ذات يوم ؟"
و "ما هو تواتر استخدامك لفرشاة الأسنان ؟"،
"هل تحب أفلام الرعب؟"
واسئلة أعمق من مثل "هل تؤمن بوجود الله؟"
الكثير من هذه الأسئلة جيدة و تفيد
فيما يخص المطابقة بين شخصين متشابههين
عندما يجاوب كلاهما على ذات السؤال بذات الاجابة
فعلى سبيل المثال عندما يهتم شخصان بأفلام الرعب
فهم على الأرجح أكثر تطابقاً و أقوم للمواعدة
من شخص يحب أفلام الرعب
و آخر لا يحبها
ولكن ماذا عن سؤال من مثل
"هل تحب أن تغدو بؤرة الاهتمام لمن هم من حولك ؟"
إن كان فردان في علاقة عاطفية و كلاهما أجاب بنعم
فتلك العلاقة سوف تتأزم حقاً لاحقاً
و نحن في الموقع أدركنا هذا منذ بداية انطلاقنا
و عليه قررنا أنه يتوجب علينا حصد المزيد من البيانات
حول كل سؤال و كل اجابة مما سبق
فبتنا لا نطرح فحسب اسئلة شخصية يجيب عليها المستخدم فحسب
بل كنا نطلب منهم الإجابة عن الشخص الذي يرغبون بمواعدته
و قد عمل هذا بصورة جيدة حقاً
ولكن كنا نحتاج بعداً آخر لاستسقاء المعلومات
فهناك بعض الأسئلة تكشف لك المزيد عن شخص دون غيرها
على سبيل المثال سؤال حول السياسة أو شيء من هذا القبيل
مثلاً سؤال " أيهما أكثر وقعاً عليك حرق كتاب أو حرق علم دولتك ؟ "
قد يكشف لك المزيد من المعلومات حول ذوق شخص ما في الأفلام
ولا يعقل أن تزن كل الاجوبة من منطلق التشابه و المساواة في الاجابات
لذا أضفنا محوراً آخر للبيانات النهائية المستسقاة
لك سؤال يطرحه "أوك كيوبيد"
سيكون لك الخيار في ان تخبرنا
عن اهمية هذا السؤال و اجابته بالنسبة لك
و هذه الاهمية تترواح خياراتها من ( غير مهم / لا يتحتم ان تكون الاجابة مشابهة ) حتى ( فائق الاهمية / يتحتم ان تكون الاجابة مشابهة )
لذا الآن لكل سؤال
لدينا ثلاثة بيانات لنغذي بها الخوارزمية
أولاً : الإجابة الخاصة بم
ثانيا : كيف تريد أن يجيب الشخص الآخر
الذي قد يكون
شريكك المحتمل
و ثالثا : مدى أهمية هذا السؤال بالنسبة لك
مع كل هذه البيانات
يمكن ل "أوك كيوبيد" أن يعي و يدرس كيف سوف يتوافق الشخصان
فالخوارزمية تبعثر الاحتمالات والارقام وتخرج بنتيجة لذلك
دعونا نطرح مثال عملي
دعونا ننظر كيف يمكننا تدبير موعد لك مع شخص
دعونا نطلق عليه مسمى "ب".
نسبة تطابقك مع "ب" تعتمد
على اجاباتكم على الأسئلة ذاتها التي طرحت عليكم
دعونا نطلق على مجموعة الأسئلة الشائعة مسمى "س".
كمثال بسيط جداً سوف نستخدم مجموعة صغيرة من الاسئلة "س"
و التي تتكون من سؤالين مشتركين اثنين فحسب
لكي نحسب على اساسها مدى المطابقة و التوافق
ها هي اسئلتنا
السؤال الاول : " إلى أي مدى تصف نفسك بالفوضوي "
و احتمالات الاجوبة هي
فوضوي للغاية
متوسط الترتيب
منظم جداً
ولنفترض أن إجابتك كانت "منظم جداً"
و تريد من الشخص آخر أن يجيب أيضاً بـ "منظم جداً"
وهذا السؤال مهم جداً بالنسبة لك
فأنت مهووس بالاناقة و الترتيب
أنت أنيق
و حتماً تريد شخصا آخر له نفس الأسلوب في الحياة
وهذا كل شيء
و لنفترض أن "ب" مختلف قليلاً في اجابته
فأجاب أنه منظم جداً
ولكنه لا يمانع ان كانت اجابة الشريك الآخر
" متوسط الترتيب "
و هذا السؤال ليس بذات الاهمية لديه عما هو عليه لديك
دعونا ننظر في السؤال الثاني
هو سؤال ذكرناه مسبقاً
"هل تحب أن تغدو بؤرة الاهتمام لمن هم من حولك ؟"
الاجابة هنا اما ب نعم أو لا
و أنت أجبت بـ "لا"
و تريد الشخص الآخر أن يجيب ب "لا" أيضاً
و السؤال ليس بذات الاهمية لديك
الان "ب" أجاب على ذات السؤال ب "نعم"
و يريد من الشخص الآخر أن يجيب بـ "لا"
لأنه يريد أن يصب تسليط الضوء عليه فحسب
والسؤال مهم إلى حد ما بالنسبة له.
الآن ، دعونا نحاول حساب نسبة التوافق من كل هذا.
خطوتنا الأولى هي
و على اعتبار ان الكمبيوترات يمكنه القيام بعمليات حسابية
فنحن بحاجة إلى تعيين قيم عددية
للأجوبة من مثل "مهم إلى حد ما" و "هام جداً"
لأن أجهزة الكمبيوتر بحاجة إلى أن كل تكون كل البيانات على هيئة أرقام.
فقررنا في "أوك كيوبيد" أن نعطي تصنيفاً عددياً تبعاً للقيم التالية :
عندما تتم الاجابة ب " غير ذي أهمية " تكون القيمة 0
عندما تتم الاجابة ب " قليل الأهمية " تكون القيمة 1
عندما تتم الاجابة ب " مهم إلى حد ما " تكون القيمة 10
عندما تتم الاجابة ب " مهم " تكون القيمة 50
عندما تتم الاجابة ب " محوري و حتمي " تكون القيمة 250
بعد ذلك تقوم الخوارزمية بعمليتين حسابيتين بسيطتين
أولاً : كم عدد الأجوبة التي أجاب عليها " ب " و التي ترضيك
عن طريق معرفة النقاط التي احرزها " ب " على مقياسك الخاص
لندرس الأمر ، لقد أشرت إلى أن جواب الطرف "ب"
للسؤال الأول الذي يخص الفوضى
مهم جداً بالنسبة لك
و عليه قيمته 50 نقطة و "ب" أجاب مثلك و حصل على تلك النقاط
والسؤال الثاني قيمة 1 فقط
لأنك قلت انه " قليل الأهمية "
و "ب" لم يجب بصورة صحيحة
و عليه مجموع "ب" الآن هو 50 نقطة من أصل 51
و نسبة التوافق الآن 98%
و هي نسبة جيدة
والمحور الثاني الذي سوف يغذي الخوارزمية
هو كم عدد الأجوبة التي أجابت عليها و التي سوف ترضي " ب "
حسناً لقد قيم "ب" بنقطة ( 1 )
السؤال الذي يتعلق بمسألة الفوضى
و 10 نقاط للسؤال الثاني
و من مجموع هذه النقاط 1+10 = 11
حصلت على 10 نقاط
فقد كانت اجوبتكم متوافقة في السؤال الثاني
و كما أسلفنا حصلت على 10 من اصل 11 نقطة
فنسبة توافقك ل "ب" هي 91%
و هذا ليس سيئاً
والخطوة الأخيرة هي أن نصل إلى نسبة متوسطة لكلاكما
للحصول على رقم واحد لكلاكما
تقوم الخوارزمية بضرب كلا النسبتين
ثم بأخذ الجذر من رتبة " n "
حيث n هو العدد الأسئلة.
ولان " س " الاسئلة التي طرحت عليكما
في هذه العينة هي فقط
تكون نسبة التوافق بين كلاكما
الجذر التربيعي لحاصل ضرب 98% مع 91%
و التي تعادل 94 %
إن 94% هي نسبة تطابقك و توافقك مع "ب"
و هي تعبير رياضي
عن مقدار السعادة المتوقعة لكلاكما
استناداً إلى ما نعرفه
الآن لماذا تقوم الخوارزمية بعمليات الضرب
للحصول على متوسط نسب التوافق
بعد القيام بعمليات الجذر التربيعي؟
بصفة عامة تسمى هذه الصيغة بالوسط الهندسي
وهي طريقة عظيمة للجمع بين القيم
التي تنطوي تحت نطاقات واسعة
وتمثل خصائص مختلفة جداً.
وبعبارة أخرى هي طريقة مثالية جداً للتوافق الرومانسي
لاننا في هذه الحالة تنتمي الاجوبة نطاقات واسعة
و لديك كم هائل من نقاط البيانات المختلفة
كما قلت هناك نقاط حول الأفلام
حول السياسة
حول الدين
حول كل شيء.
و بصورة منطقية و حدسية هذا صحيح
فشخصان لديهما نسب توافق لكل منهما تصل الى 50%
سيكونان اكثر تطابقاً
من آخرين لدى أولهما 0% و لدى الآخر 100 %
لأن المودة تقوم على الأخذ و العطاء من كل الطرفين
و يذكر أنه بعد إضافة تصحيح ما لهامش الخطأ الذي قد يحدث
في حال كانت الاسئلة التي اجاب عليها الطرفين عددها قليل
كما قمنا في هذا المثال،
تكون الأمور على ما يرام
و هكذا في أي وقت يقوم "أوك كيوبيد" بمطابقة فردين
فإنه يمر بكل الخطوات التي ذكرناها فقط
أولاً يقوم بجمع البيانات حول إجاباتك
ثم يقارن بين اختياراتك و تفضيلاتك
عبر دراسة أجوبة أشخاص آخرين بواسطة طرق بسيطة ورياضية
وهذه القدرة على تحويل ظواهر العالم الحقيقي
وجعلها شيئا يمكن فهمه من قبل شريحة صغيرة جداً
هوعلى ما أعتقد
أهم المهارات التي يمكن أن يملكها أي فرد في هذه الأيام.
مثل حين تستخدام الجمل لكي تروي قصة لشخص ما
فيمكنك استخدام الخوارزميات لكي تحول تلك القصة إلى شيء يعيه جهاز الكمبيوتر.
و ان كنت تتعلم لغة جديدة
يمكنك عبر عمليات مشابهة أن تبدأ بقص قصصك الخاصة
أمل أن يكون هذا الدرس قد ساعدك في فهم آلية القيام بذلك
Прывітанне, я Крысціян Радэр,
я адзін з заснавальнікаў OkCupid.
Зараз гэта адзін з найбуйнейшых сайтаў знаёмстваў у ЗША.
Як і многія на гэтым сайце,
я матэматык, і лагічна,
што мы аналітычна падыходзім да любві.
Мы называем гэта алгарытмам сумяшчэння.
Увогуле, алгарытм OkCupid
дапамагае нам вызначыць, ці варта пары людзей пайсці на спатканне.
Мы пабудавалі на гэтым увесь наш бізнес.
Алгарытм — разумнае слоўца,
і людзі больш любяць кідацца ім як чымсьці складаным,
але насамрэч гэта проста ўпарадкаваная
пакрокавая інструкцыя для вырашэння праблемы.
Ёй зусім не трэба быць складанай.
На гэтым уроку я растлумачу,
як мы прыйшлі да такога алгарытму,
і вы ўбачыце, як усё працуе.
А чаму ўвогуле алгарытмы важныя?
Навошта наогул гэты ўрок?
Звярніце ўвагу на фразу, сказаную мной раней:
пакрокавыя інструкцыі для вырашэння праблем,
і, як вядома, кампутары цудоўна з гэтым спраўляюцца.
Кампутар без алгарытма —
па сутнасці, дарагое прэс-пап'е.
А раз кампутары сустракаюцца на кожным кроку,
алгарытмы таксама паўсюль.
Матэматыка алгарытма OkCupid на здзіўленне простая.
Трошку складання, множання і ледзь-ледзь квадратных каранёў.
Хаця пры яго распрацоўцы была складанасць
у разуменні таго, як узяць нешта загадкавае —
прывабнасць —
і разбіць на часткі, з якімі можа працаваць кампутар.
Спачатку для сумяшчэння людзей спатрэбіліся іх дадзеныя,
нешта, з чым мог бы працаваць алгарытм.
Лепшы спосаб хутка іх атрымаць — проста запытаць.
І мы вырашылі, што OkCupid будзе задаваць пытанні накшталт:
«Ці хочаце вы калі-небудзь завесці дзяцей?»,
«Як часта вы чысціце зубы?»,
«Вам падабаюцца фільмы жахаў?»
А таксама важныя рэчы накшталт: «Ці верыце вы ў Бога?»
Многія пытанні добрыя для пошуку супадзенняў,
інакш кажучы, калі абодва чалавекі адказваюць аднолькава.
Напрыклад, два чалавекі, якія любяць фільмы жахаў,
напэўна, больш сумясцімыя, чым тыя, у каго густы адрозніваюцца.
Але што наконт пытання тыпу:
«Ці любіце вы быць у цэнтры ўвагі?»
Калі абодва партнёры адказваюць «так»,
у іх будуць вялізныя праблемы,
Мы адразу зразумелі гэта і вырашылі, што нам патрэбна
больш інфармацыі ў кожным пытанні.
Трэба прасіць людзей не толькі выбраць свой адказ,
але і адказ, які яны хацелі б атрымаць ад партнёра.
Гэта спрацавала выдатна, але нам патрэбна было яшчэ адно вымярэнне.
Некаторыя адказы кажуць пра чалавека больш, чым іншыя.
Напрыклад, пытанне пра палітыку:
«Што горш: спаліць кнігу ці сцяг?»,
мог бы сказаць больш, чым перавагі ў фільмах.
І няправільна прыдаваць пытанням аднолькавую вагу,
таму мы дадалі заключны пункт.
У кожным пытанні на OkCupid,
можна адзначыць, наколькі важны для вас той ці іншы аспект, —
у дыяпазоне ад абыякавасці да абавязковасці.
Зараз для кожнага пытання у нас ёсць тры рэчы ў алгарытме:
першае — ваш адказ,
другое — пераважны адказ патэнцыйнага партнёра,
і трэцяе — важнасць гэтага пытання для вас.
Пры дапамозе гэтай інфармацыі
OkCupid можа зразумець, як складуцца адносіны паміж людзьмі.
Алгарытм аперыруе лікамі і выдае вынік.
У якасці прыклада
паглядзім на вашу сумясцімасць з іншым чалавекам,
назавём яго «Б».
Працэнт сумясцімасці з «Б» грунтуецца на пытаннях, на якія вы абодва адказалі.
Назавём набор агульных пытанняў «С».
Для простасці мы возьмем маленькі набор «С»,
усяго з двух агульных пытанняў,
і вылічым сумясцімасць на іх аснове.
Вось нашыя два пытанні.
Першае, скажам: «Наколькі вы мурза?»
Магчымыя адказы:
«мурза», «сярэдне» і «вельмі акуратны».
Хай вы «вельмі акуратная»
і хацелі б, каб ваш партнёр адказаў так жа,
а пытанне для вас вельмі важнае.
Увогуле, вы акуратыстка.
Вы чысцёха і хочаце, каб ваш партнёр таксама быў чысцёхай.
Дапусцім, «Б» трошкі іншы.
Ён адказаў, што сам ён «вельмі акуратны»,
але «сярэдняя» акуратнасць яго задаволіць у якасці адказа ад партнёра,
а само пытанне для яго не вельмі важнае.
Паглядзім на другое пытанне, мы яго ўжо згадвалі:
«Вам падабаецца быць у цэнтры ўвагі?»
Адказы толькі «так» і «не».
Вы адказалі «не», хочаце, каб партнёр адказаў «не»,
а пытанне не вельмі важнае.
«Б» адказаў «так»,
і хоча, каб партнёр адказаў «не»,
таму што хоча быць у цэнтры ўвагі,
а пытанне для яго дастаткова важнае.
Давайце ўсё гэта вылічым.
Першы крок, паколькі мы выкарыстоўваем кампутары, —
надаць лікавыя значэнні
паняццям накшталт «даволі важна» і «вельмі важна»,
таму што кампутары разумеюць толькі лікі.
У OkCupid мы выкарыстоўваем такія велічыні:
«абыякава» — гэта 0,
«не вельмі важна» — гэта 1,
«даволі важна» — гэта 10,
«вельмі важна» — 50,
і «абавязкова» — 250.
Зараз алгарытм робіць два простыя вылічэнні.
Першае: наколькі адказы «Б» задавальняюць вас,
гэта значыць колькі з магчымых балаў «Б» атрымаў па вашых мерках?
Такім чынам, вы пазначылі, што адказ «Б»
на першае пытанне пра ахайнасць
быў вельмі важным для вас.
ЁН каштуе 50 балаў, і «Б» адказаў правільна.
Другое пытанне каштуе толькі 1 бал,
бо вы сказалі, што яно не вельмі важнае,
а адказ «Б» не падышоў.
Адказы «Б» набралі 50 з 51 магчымых балаў.
Гэта на 98% здавальняюча. Дастаткова добра.
Другі пункт у алгарытме высвятляе, наколькі вы падыходзіце «Б».
«Б» даў 1 бал вашаму адказу пра ахайнасць
і 10 адказу на другое пытанне.
З гэтых 11 балаў, паколькі 1 плюс 10, вы зарабілі 10,
вы задаволілі адзін аднаго па другім пытанні.
Вашы адказы складаюць 10 з 11, што на 91% падыходзіць «Б».
Гэта нядрэнна.
Апошні крок: узяць працэнты сумясцімасцяў
і атрымаць адзін лік для вас абаіх.
Каб гэта зрабіць, алгарытм перамножвае вашы балы
і здабывае N-ны корань,
дзе N — колькасць пытанняў.
Паколькі «С», колькасць пытанняў,
у прыкладзе толькі 2,
працэнт сумясцімасці раўны
квадратнаму кораню ад 98%, памножанаму на 91%.
гэта 94%.
94% — ваша сумясцімасць з «Б».
Гэта матэматычны выраз вашай імавернасці шчасця разам,
які заснаваны на тым, што мы ведаем.
Чаму алгарытм памнажае замест таго каб, напрыклад,
выводзіць сярэдняе паміж баламі,
і займаецца здабываннем каранёў?
Гэта формула — сярэдняе арыфметычнае,
гэта выдатны спосаб спалучаць значэнні з вялікіх дыяпазонаў
з рознымі ўласцівасцямі.
Гэта значыць яна ідэальная для рамантычных супадзенняў.
Ёсць шырокія дыяпазоны і куча розных дадзеных —
пра кіно, палітыку, рэлігію — пра ўсё.
Гэта мае сэнс на ўзроўні інтуіцыі.
Два чалавекі, якія задавальняюць адзін аднаго на 50%,
больш сумясцімыя, чым два іншыя, чый вынік — 0 і 100,
таму што сімпатыя павінна быць узаемнай.
Пасля невялікай карэкціроўкі хібнасці,
у выпадку, калі колькасць пытанняў невялікая,
як у нашым прыкладзе,
усё гатова.
Калі OkCupid знаходзіць пары,
ён праходзіць праз апісаныя вышэй крокі.
Спачатку ён збірае дадзеныя аб вашых адказах,
потым сумяшчае вашы варыянты і перавагі
простымі, матэматычнымі спосабамі.
Магчымасць браць з'явы рэальнага свету
і рабіць іх зразумелымі мікрачыпу —
самы важны навык у нашы дні.
Вы карыстаецеся сказамі, каб расказаць гісторыю чалавеку,
і алгарытмамі, каб расказаць гісторыю кампутару.
Калі вы вывучыце мову, то зможаце распавесці свае гісторыі.
Я спадзяюся, гэта будзе вам карысна.
Hallo, ich bin Christian Rudder
und ich bin Mitbegründer von OKCupid.
Heute ist es eine der größten Dating-Sites in den USA.
Wie fast jeder dort habe ich
Mathe studiert und erwartungsgemäß
sind wir für unseren analytischen Ansatz
zur Liebe bekannt.
Wir nennen es unseren Treffer-Algorithmus.
OKCupids Treffer-Algorithmus hilft uns
bei der Entscheidung, ob zwei Leute sich verabreden sollten.
Darauf haben wir unser ganzes Geschäft aufgebaut.
"Algorithmus" klingt hochtrabend,
und Leute meinen, es sei eine große Sache,
aber in Wahrheit ist es nur ein Konzept,
wie man Schritt für Schritt ein Problem lösen kann.
Er muss gar nicht hochtrabend sein.
Ich werde jetzt erklären,
wie wir auf unseren speziellen Algorithmus gekommen sind,
damit ihr seht, wie das funktioniert.
Warum sind Algorithmen überhaupt wichtig?
Warum gibt es diese Lektion überhaupt?
Vorhin habe ich einen wichtigen Satz gesagt:
Mit ihnen kann man Schritt für Schritt ein Problem lösen,
und bekanntermaßen
sind Computer dabei einsame Spitze.
Ein Computer ohne Algorithmus
ist im Grunde ein teurer Briefbeschwerer.
Da Computer in unserem Leben allgegenwärtig sind,
sind es auch Algorithmen.
Die Mathematik hinter OKCupids Treffer-Algorithmus
ist überraschend einfach.
Es sind nur ein paar Additionen,
Multiplikationen
und ein paar Quadratwurzeln.
Die Herausforderung dabei war,
herauszufinden, wie man etwas Geheimnisvolles –
menschliche Anziehungskraft –
für einen Computer in "mundgerechte " Stücke aufsplitten kann.
Zunächst brauchten wir Daten, um Menschen zusammen zu bringen.
Etwas, womit der Algorithmus arbeiten kann.
Am schnellsten bekommt man Daten von Menschen,
wenn man einfach darum bittet.
Wir beschlossen, dass OKCupid Anwender einfach fragen sollte,
z. B. "Willst du einmal Kinder haben?"
und "Wie oft putzt du deine Zähne?",
"Magst du unheimliche Filme?"
und große Fragen wie "Glaubst du an Gott?"
Viele dieser Fragen eignen sich gut dafür,
ähnliche Menschen zusammenzuführen,
das heißt, wenn Menschen die gleichen Antworten geben.
Wenn z. B. alle beide unheimliche Filme mögen,
passen sie vielleicht besser zusammen
als zwei Menschen,
von denen sie nur einer mag.
Aber was ist z. B. mit Fragen wie:
"Stehst du gerne im Mittelpunkt?"
Wenn beide Partner dies bejahen,
dann werden sie massive Probleme haben.
Das haben wir schnell bemerkt,
also wollten wir
zu jeder Frage weitere Daten haben.
Wir baten Menschen, nicht nur ihre eigene Antwort zu geben,
sondern auch die Antwort, die sie sich vom anderen wünschen.
Das funktionierte sehr gut,
aber wir benötigten eine weitere Dimension.
Manche Fragen verraten mehr über einen Menschen als andere.
Eine Frage über Politik wie
"Was ist schlimmer: Bücher oder Flaggen zu verbrennen?"
kann mehr über jemanden verraten als sein Filmgeschmack.
Es ist auch sinnlos, alles gleich zu gewichten,
also haben wir noch etwas hinzugefügt.
Bei jeder Frage von OKCupid
kannst du angeben,
welche Rolle sie in deinem Leben spielt,
auf einer Skala von "unwichtig" bis "ein Muss".
Bei jeder Frage
erhalten wir 3 Dinge für unseren Algorithmus:
Erstens, deine Antwort,
zweitens, wie jemand anders –
der potentielle Treffer –
antworten soll;
und drittens, wie wichtig dir die Frage überhaupt ist.
Mit diesen Informationen
kann OKCupid einschätzen, wie gut zwei Menschen zusammenpassen.
Der Algorithmus rechnet und liefert ein Ergebnis.
Ein praktisches Beispiel:
Schauen wir uns an, wie wir für dich
einen Treffer – sagen wir "B" – finden.
Die Trefferquote mit B basiert auf
Fragen, die ihr beide beantwortet habt.
Nennen wir die Gruppe gemeinsamer Fragen "s".
Als einfaches Beispiel verwenden wir ein kleines "s"
bei nur 2 gleichen Fragen
und suchen nach einer Trefferquote.
Hier sind zwei Beispielfragen:
Erstens: "Wie unordentlich bist du?"
und die Antwortmöglichkeiten sind:
sehr unordentlich,
durchschnittlich,
und sehr organisiert.
Angenommen, du sagst: "Sehr organisiert",
und möchtest, dass der andere "sehr organisiert" antwortet
und die Frage ist dir sehr wichtig.
Weil du ein Sauberkeitsfanatiker bist.
Du bist sauber,
der andere soll es auch sein,
fertig.
Sagen wir, B ist ein bisschen anders.
Er antwortet selbst "sehr organisiert",
aber "durchschnittlich" ist als Antwort
von jemand anderem für ihn ok,
und die Frage ist ihm nicht sehr wichtig.
Schauen wir uns die 2. Frage
aus unserem vorigen Beispiel an:
"Stehst du gerne im Mittelpunkt?"
Die Antworten lauten ja und nein.
Du hast "nein" geantwortet,
der andere soll auch "nein" sagen,
und die Frage ist dir nicht sehr wichtig.
B antwortet "ja",
der andere soll "nein" sagen,
weil er im Rampenlicht stehen will,
und die Frage ist ihm einigermaßen wichtig.
Rechnen wir das jetzt durch.
Als ersten Schritt –
weil wir dafür Computer verwenden –
müssen wir Zahlenwerte
mit Vorstellungen wie "einigermaßen wichtig" und "sehr wichtig" verbinden,
weil Computer alles in Zahlen brauchen.
Bei OKCupid haben wir uns wie folgt entschieden:
0 ist "unwichtig",
1 ist "ein wenig wichtig",
"einigermaßen wichtig" ist 10,
"sehr wichtig" ist 50,
und "ein Muss" ist 250.
Der Algorithmus macht dann zwei einfache Rechnungen.
Die erste ist: Wie sehr bist du mit Bs Antwort zufrieden,
das heißt, wie viele mögliche Punkte hat B auf deiner Skala erzielt?
Du hast gesagt, dass Bs Antwort
auf die erste Frage nach der Sauberkeit
für dich sehr wichtig ist.
Das sind 50 Punkte, und B hat richtig geantwortet.
Die zweite Frage erreicht nur 1,
weil du gesagt hast, es ist nicht sehr wichtig
und B hat falsch geantwortet.
B hat also 50 von 51 möglichen Punkten erzielt.
Das bedeutet zu 98% zufriedenstellend.
Das ist ganz gut.
Die zweite Frage des Algorithmus betrifft
Bs Zufriedenheit mit dir.
B vergab 1 Punkt auf deine Antwort
bezüglich der Sauberkeit
und 10 auf deine zweite Antwort.
Von diesen 11 Punkten – das sind 1 plus 10 –
hast du 10 bekommen.
Bei der 2. Frage waren beide mit der Antwort zufrieden.
deine 10 Punkte von 11
liefern 91% Zufriedenheit bei B.
Das ist nicht übel.
Im letzten Schritt nehmen wir diese beiden Prozentsätze
und basteln daraus eine Zahl für euch beide.
Dazu multipliziert der Algorithmus eure Punkte,
zieht die n-te Wurzel daraus,
n ist die Anzahl der Fragen.
Denn "s" – die Anzahl der Fragen –
hier ist nur 2,
und unsere Trefferquote ist
die Quadratwurzel aus 98% mal 91%.
Das ergibt 94%.
Deine Trefferquote mit B liegt bei 94%.
So drückt die Mathematik aus,
wie glücklich ihr miteinander
auf Grundlage unserer Informationen wärt.
Warum multipliziert der Algorithmus,
anstatt den Durchschnitt der beiden Ergebnisse insgesamt
und die Quadratwurzel auszurechnen?
Diese Formel nennt man den geometrischen Mittelwert.
Damit kann man sehr gut Werte miteinander kombinieren,
die eine große Spannweite haben
und ganz verschiedene Eigenschaften darstellen.
Anders gesagt, ist es für romantische Treffer perfekt.
Es gibt eine große Spannweite
und Unmengen verschiedener Datenpunkte,
wie z. B. über Filme,
Politik,
Religion,
über alles.
Auch intuitiv ist das sinnvoll.
Zwei Menschen mit gegenseitig 50% Zufriedenheit
sollten besser zusammenpassen
als zwei andere mit einer Zufriedenheit von 0 und 100,
weil Zuneigung beiderseitig sein muss.
Nach einer kleinen Korrektur für Fehlerspielräume,
falls wir nur sehr wenige Fragen haben,
wie hier in diesem Beispiel,
können wir loslegen.
Jedesmal, wenn OKCupid zwei Menschen zusammenführt,
werden alle angesprochenen Schritte durchgegangen.
Zuerst werden Daten über deine Antworten gesammelt,
danach deine Wünsche und Vorlieben
mit anderen Menschen auf einfache, mathematische Weise verglichen.
Diese Fähigkeit, Phänomene der realen Welt
in etwas umzuwandeln, das ein Mikrochip verstehen kann,
ist meiner Meinung nach
die wichtigste Fähigkeit, die jemand heutzutage haben kann.
So wie du Sätze verwendest, um jemandem eine Geschichte zu erzählen,
verwendet man Algorithmen, um einem Computer eine Geschichte zu erzählen.
Wenn du die Sprache erlernen kannst,
kannst du der Welt deine Geschichten erzählen.
Dies wird dir hoffentlich dabei helfen.
Γεια σας, ονομάζομαι Κρίστιαν Ράντερ
και ήμουν από τους ιδρυτές του OkCupid,
μιας από τις μεγαλύτερες ιστοσελίδες γνωριμιών στις ΗΠΑ σήμερα.
Σχεδόν όλοι στη σελίδα έχουμε πτυχίο Μαθηματικού,
άρα φημιζόμαστε για την αναλυτική μας προσέγγιση προς την αγάπη.
Την ονομάζουμε «αλγόριθμο ταιριάσματος».
Βασικά, ο αλγόριθμος του OkCupid μάς βοηθά να αποφασίσουμε
αν δύο άνθρωποι πρέπει να βγουν ραντεβού.
Όλη η επιχείρησή μας βασίστηκε σ' αυτό.
Η λέξη «αλγόριθμος» είναι φανταχτερή
και πολλοί τη χρησιμοποιούν σαν να είναι κάτι σπουδαίο.
Αλλά αλγόριθμος είναι απλά ένας συστηματικός,
βήμα-προς-βήμα τρόπος να λύσουμε ένα πρόβλημα.
Δεν χρειάζεται καθόλου να είναι εξεζητημένος.
Σε αυτό το μάθημα,
θα εξηγήσω πώς καταλήξαμε στον συγκεκριμένο αλγόριθμο,
ώστε να δείτε πώς γίνεται.
Γιατί είναι σημαντικοί οι αλγόριθμοι;
Γιατί υπάρχει αυτό το μάθημα;
Παρατηρήστε μία πολύ σημαντική φράση, που χρησιμοποίησα νωρίτερα·
είναι ένας τρόπος να λύσουμε ένα πρόβλημα βήμα-προς-βήμα,
και όπως γνωρίζετε, οι υπολογιστές είναι άριστοι σε τέτοιες διεργασίες.
Ένας υπολογιστής χωρίς αλγορίθμους
είναι ουσιαστικά ένα ακριβό πρες παπιέ.
Και αφού οι υπολογιστές έχουν διεισδύσει στην καθημερινότητά μας,
οι αλγόριθμοι βρίσκονται παντού.
Τα Μαθηματικά του αλγορίθμου του OkCupid είναι εκπληκτικά απλά.
Είναι απλά προσθέσεις, πολλαπλασιασμός και μερικές τετραγωνικές ρίζες.
Όμως, το δύσκολο στη σχεδίασή του
ήταν να καταλάβουμε πώς να πάρουμε κάτι μυστηριώδες,
όπως η ανθρώπινη έλξη,
και να το αναλύσουμε σε μέρη που μπορεί να δουλέψει ένας υπολογιστής.
Το πρώτο που χρειαζόμασταν ήταν δεδομένα,
με τα οποία θα μπορούσε να δουλέψει ο αλγόριθμος.
Ο καλύτερος τρόπος να βρούμε δεδομένα γρήγορα ήταν απλώς να τα ζητήσουμε.
Έτσι αποφασίσαμε το OkCupid να ρωτήσει τους χρήστες πράγματα όπως,
«Θέλετε να κάνετε παιδιά κάποτε;»
«Πόσο συχνά πλένετε τα δόντια σας;»
«Σας αρέσουν οι ταινίες θρίλερ;»
Και σημαντικές ερωτήσεις, όπως «Πιστεύετε στον Θεό;»
Πολλές ερωτήσεις είναι καλές για να ταιριάζουν όμοιον ομοίω,
δηλαδή, δύο ανθρώπους που συμφωνούν.
Π.χ. δύο άνθρωποι στους οποίους αρέσουν τα θρίλερ
μάλλον ταιριάζουν πιο πολύ από έναν που του αρέσουν και έναν που δεν του αρέσουν.
Αλλά τι γίνεται με ερωτήσεις όπως
«Θέλετε να είστε στο επίκεντρο της προσοχής;»
Αν και οι δύο σε μία σχέση απαντούν ναι,
θα έχουν τεράστια προβλήματα.
Το συνειδητοποιήσαμε νωρίς
και αποφασίσαμε να ζητάμε περισσότερα δεδομένα για κάθε ερώτηση.
Έπρεπε να ζητήσουμε να απαντήσουν όχι μόνο για τον εαυτό τους,
αλλά και την απάντηση που θα ήθελαν από τον άλλο.
Αυτό πήγε πολύ καλά.
Αλλά χρειαζόμασταν ακόμα μία διάσταση.
Μερικές ερωτήσεις λένε περισσότερα για ένα άτομο από άλλες.
Για παράδειγμα, μία ερώτηση περί πολιτικής, όπως,
«Τι είναι χειρότερο, το κάψιμο των βιβλίων ή της σημαίας;»
αποκαλύπτει περισσότερα για κάποιον από το τι ταινίες του αρέσουν.
Δεν είναι λογικό να τα σταθμίζουμε όλα το ίδιο,
γι' αυτό προσθέσαμε κάτι τελευταίο.
Για καθετί που σας ρωτά το OkCupid,
πρέπει να μας πείτε πόσο σημαντικό ρόλο παίζει στη ζωή σας.
Και αυτό παίρνει τιμές από άσχετο ως υποχρεωτικό.
Έτσι για κάθε ερώτηση υπάρχουν τρία πράγματα για τον αλγόριθμό μας:
πρώτα την απάντησή σας·
δεύτερο, πώς θα θέλατε κάποιος άλλος -το δυνητικό σας ταίρι- να απαντήσει·
και τρίτο, πόσο σημαντική είναι η ερώτηση για εσάς.
Με αυτές τις πληροφορίες,
το OkCupid μπορεί να καταλάβει πόσο καλά θα τα πάνε δύο άνθρωποι.
Ο αλγόριθμος κάνει τους υπολογισμούς και δίνει ένα αποτέλεσμα.
Ως ένα πρακτικό παράδειγμα,
ας δούμε πώς θα ταιριάζαμε εσάς με ένα άλλο άτομο.
Ας τον ονομάσουμε Β.
Το ποσοστό ταιριάσματος βασίζεται σε ερωτήσεις που έχετε απαντήσει και οι δύο.
Ας ονομάσουμε το σύνολο των κοινών ερωτήσεων S.
Ως ένα πολύ απλό παράδειγμα, έχουμε ένα μικρό σύνολο S
με μόνο δύο κοινές ερωτήσεις
και υπολογίζουμε το σκορ από αυτό.
Ορίστε δύο ερωτήσεις-παραδείγματα.
Η πρώτη είναι, ας πούμε, «Πόσο ακατάστατος είστε;»
Και οι δυνατές απαντήσεις είναι:
πολύ ακατάστατος, έτσι κι έτσι, πολύ οργανωμένος.
Ας πούμε ότι απαντήσατε «πολύ οργανωμένος»
και θα θέλατε κάποιον να απαντήσει «πολύ οργανωμένος»
και αυτή η ερώτηση είναι «πολύ σημαντική» για εσάς.
Βασικά είστε μανιακή με την καθαριότητα
και θέλετε κάποιον σαν εσάς οπωσδήποτε.
Ας πούμε ότι ο Β είναι λίγο διαφορετικός.
Απάντησε «πολύ οργανωμένος» για τον εαυτό του,
αλλά η απάντηση «έτσι κι έτσι» από τον άλλο του είναι αποδεκτή
και η ερώτηση είναι «λίγο σημαντική» για αυτόν.
Ας δούμε τη δεύτερη ερώτηση από το προηγούμενο παράδειγμα.
«Θέλετε να είστε το επίκεντρο της προσοχής;»
Οι επιλογές είναι «ναι» και «όχι».
Απαντήσατε «όχι» και θέλετε ο άλλος να απαντήσει «όχι»,
και η απάντηση είναι «λίγο σημαντική» για εσάς.
Ο Β απάντησε «ναι».
Θέλει ο άλλος να απαντήσει «όχι»,
διότι θέλει όλα τα φώτα πάνω του,
και η ερώτηση είναι κάπως σημαντική για αυτόν.
Ας τα υπολογίσουμε όλα αυτά.
Εφόσον χρησιμοποιούμε υπολογιστές,
το πρώτο βήμα είναι να εκφράσουμε με αριθμούς
έννοιες όπως «κάπως σημαντικό» και «πολύ σημαντικό»,
διότι οι υπολογιστές χρειάζονται τα πάντα σε αριθμούς.
Στο OkCupid καταλήξαμε στην ακόλουθη κλίμακα.
«Άσχετο» έχει αξία 0.
«Λίγο σημαντικό» έχει αξία 1,
«Κάπως σημαντικό» έχει αξία 10,
«Πολύ σημαντικό» έχει αξία 50,
και «Οπωσδήποτε υποχρεωτικό» έχει αξία 250.
Στη συνέχεια, ο αλγόριθμος κάνει δύο απλούς υπολογισμούς.
Ο πρώτος είναι πόσο σας ικανοποιούν οι απαντήσεις του Β,
δηλαδή, πόσους πόντους μάζεψε ο Β στη δική σας κλίμακα;
Είπατε ότι η απάντηση του Β στην πρώτη ερώτηση,
σχετικά με την ακαταστασία,
ήταν πολύ σημαντική για εσάς.
Έχει αξία 50 πόντους και ο Β το πέτυχε.
Η δεύτερη ερώτηση έχει αξία μόνον 1,
διότι είπατε ότι ήταν μόνο λίγο σημαντικό.
Ο Β δεν το πέτυχε,
άρα ο Β έπιασε 50 από τους 51 δυνατούς πόντους.
Αυτό είναι ικανοποιητικό κατά 98%. Αρκετά καλά.
Το δεύτερο που εξετάζει ο αλγόριθμος είναι πόσο ικανοποιήσατε εσείς τον Β.
Ο Β αξιολόγησε με 1 πόντο την απάντησή σας για την ακαταστασία
και με 10 την απάντησή σας για τη δεύτερη.
Από τους 11, που είναι 1+10, κερδίσατε 10.
Ικανοποιήσατε ο ένας τον άλλον στη δεύτερη ερώτηση,
άρα οι απαντήσεις σας ήταν 10 στα 11, που ισούται με 91% ικανοποίηση για τον Β.
Καθόλου άσχημα.
Στο τελικό βήμα παίρνουμε τα δύο ποσοστά ταιριάσματος
και βρίσκουμε έναν αριθμό και για τους δυο σας.
Για να το κάνει, ο αλγόριθμος πολλαπλασιάζει τα σκορ σας
και μετά παίρνει τη n-οστή ρίζα,
όπου n είναι ο αριθμός των ερωτήσεων.
Επειδή το s, που είναι το πλήθος των ερωτήσεων σε αυτό το δείγμα,
είναι μόνο δύο,
το ποσοστό ταιριάσματος ισούται με την τετραγωνική ρίζα
του 98% επί το 91%.
Αυτό ισούται με 94%.
Αυτό το 94% είναι το ποσοστό ταιριάσματός σας με τον Β.
Είναι μια μαθηματική έκφραση του πόσο ευτυχισμένοι θα ήσασταν μαζί
με βάση αυτά που γνωρίζουμε.
Γιατί όμως ο αλγόριθμος πολλαπλασιάζει
αντί, ας πούμε, να πάρει τον μέσο όρο των δύο σκορ
και μετά να πάρει την τετραγωνική ρίζα;
Γενικά, αυτός ο τύπος καλείται γεωμετρικός μέσος.
Είναι ένας σπουδαίος τρόπος συνδυασμού τιμών με μεγάλη διασπορά
και πολύ διαφορετικές ιδιότητες.
Δηλαδή, είναι τέλειο για το ρομαντικό ταίριασμα.
Έχετε μεγάλη διασπορά και πολλά διαφορετικά δεδομένα,
όπως είπα, για σινεμά, πολιτική, θρησκεία, τα πάντα.
Έχει νόημα και διαισθητικά.
Δύο άνθρωποι, που ικανοποιούν ο ένας τον άλλον κατά 50%,
θα έπρεπε να ταιριάζουν καλύτερα από δύο άλλους, που ικανοποιούν κατά 0% και 100%,
διότι τα αισθήματα πρέπει να είναι αμοιβαία.
Μετά από μια μικρή διόρθωση για το περιθώριο σφάλματος,
στην περίπτωση που έχουμε μικρό αριθμό ερωτήσεων,
όπως σε αυτό το παράδειγμα,
είμαστε έτοιμοι.
Κάθε φορά που το OkCupid ταιριάζει δύο άτομα,
κάνει τα βήματα που μόλις περιέγραψα.
Πρώτα συλλέγει τα δεδομένα από τις απαντήσεις σας
και μετά συγκρίνει τις επιλογές και προτιμήσεις σας με άλλων
με απλούς μαθηματικούς τρόπους.
Η ικανότητα να παίρνουμε φαινόμενα του πραγματικού κόσμου
και να τα κάνουμε κάτι, που καταλαβαίνει ένα μικροτσίπ,
νομίζω ότι είναι η πιο σημαντική δεξιότητα στη σημερινή εποχή.
Όπως με τις προτάσεις λέτε μια ιστορία σε κάποιον,
έτσι με τους αλγορίθμους λέτε μια ιστορία σε έναν υπολογιστή.
Αν μάθετε τη γλώσσα, μπορείτε να πείτε τις ιστορίες σας.
Ελπίζω αυτό θα σας βοηθήσει να το κάνετε.
Hola, soy Christian Rudder
y fui uno de los fundadores de OK Cupid.
Hoy es uno de los sitios de citas más grande de Estados Unidos.
Como casi todos en el sitio,
tenía un título en matemáticas y, como era de esperar,
éramos conocidos por el enfoque analítico
que tenemos del amor.
Le llamamos el algoritmo de compatibilidad.
En esencia el algoritmo de compatibilidad de OK Cupid
nos ayuda a decidir si dos personas debieran tener una cita.
Sobre esa base construimos todo nuestro negocio.
Ahora, algoritmo es una palabra pomposa
y la gente tiende a ignorarla por ampulosa,
pero en realidad, un algoritmo es solo una forma sistemática
de resolver problemas paso a paso.
No tiene que ser nada pomposo.
Aquí en esta lección, explicaré
cómo concebimos nuestro algoritmo,
así lo podrás entender.
Ahora, ¿por qué son importantes los algoritmos?
¿Para qué existe esta lección?
Bueno, nota una frase muy significativa que usé arriba:
una forma de resolver problemas paso a paso,
y como probablemente sepas,
las computadoras se lucen en los procesos paso a paso.
Una computadora sin un algoritmo
es en esencia un pisapapeles caro.
Y dado que las computadoras son una parte tan dominante de la vida cotidiana,
los algoritmos están dondequiera.
La matemática subyacente al algoritmo de compatibilidad de OK Cupid
es sorprendentemente sencilla.
Son solo unas sumas,
multiplicaciones,
y unas cuantas raíces cuadradas.
Aunque el truco de diseño estaba
en averiguar cómo tomar algo tan misterioso,
como la atracción humana,
y separarlo en sus componentes para que una computadora pueda trabajar con ellos.
Bueno, lo primero que necesitamos para aparejar personas son datos,
algo que el algoritmo necesita.
El mejor modo de conseguir datos de la gente
es simplemente preguntando.
Así, decidimos que OK Cupid debería preguntar a los usuarios
cosas como, "¿quieres tener hijos algún día?"
y "¿con qué frecuencia te cepillas los dientes?",
"¿te gustan las películas de terror?",
y grandes temas como: "¿Crees en Dios?"
Ahora, muchas de las preguntas son buenas
para aparear entre iguales,
es decir cuando ambas personas contestan igual.
Por ejemplo, dos personas a las que les gustan las películas de terror
probablemente hacen mejor pareja
que una persona que le gusta
y otra que no.
Pero qué pasa con una pregunta como,
"¿te gusta ser el centro de atención?"
Si ambos en una relación dicen que sí,
entonces tendremos problemas grandes.
Pronto nos dimos cuenta de esto,
así que decidimos que necesitábamos
un poco más de datos para cada pregunta.
Teníamos que pedir que especificaran no solo su propia respuesta,
sino la respuesta que querían del otro.
Eso funcionó muy bien,
pero necesitamos una dimensión más.
Algunas preguntas dicen más de una persona que otras.
Por ejemplo, una pregunta de política, algo como,
"¿qué es peor: quemar un libro o una bandera?",
puede revelar más de alguien que su gusto fílmico.
Y no tiene sentido ponderar todo por igual,
así que sumamos un punto final de datos.
Por cada cosa que pregunta OK Cupid,
tienen una oportunidad de decirnos
el rol que juega en sus vidas,
y esto varía desde lo irrelevante a lo obligatorio.
Ahora pues, por cada pregunta,
tenemos tres cosas para nuestro algoritmo:
primero, tu respuesta;
segundo, cómo quieres que el otro,
tu pareja potencial,
responda;
y tercero, qué tan importante es la pregunta para ti.
Con toda esta información,
OO Cupid puede averiguar qué tan bien se llevarán dos personas.
El algoritmo desmenuza los números y les da un resultado.
Como un ejemplo práctico,
veamos cómo te apareamos con otra persona,
que llamaremos "B".
Tu porcentaje de compatibilidad con B se basa en
preguntas que ambos respondieron.
Que llamaremos el conjunto de preguntas comunes, "s".
Como un ejemplo muy sencillo, usaremos un conjunto pequeño "s"
con solo dos preguntas en común
y calcularemos de eso, una pareja.
He aquí nuestros dos preguntas ejemplo.
La primera, digamos, "¿qué tan desordenado eres?"
y las posibles respuestas son:
muy desordenado,
promedio
y muy ordenado.
Digamos que contestas "muy ordenado",
y quisieras a alguien que conteste, "muy ordenado",
y la preguntas es muy importante para ti.
En suma tienes manía por el orden.
Eres ordenada,
quieres a alguien ordenado,
sin más.
Digamos que B es un poquito diferente.
Responde que es muy ordenado consigo mismo
pero promedio le parece bien
como respuesta del otro.
Y la pregunta le es poco relevante.
Miremos la segunda pregunta,
es la del ejemplo anterior:
"¿te gusta ser el centro de atención?"
Las respuestas son sí y no.
Ahora si contestas "no",
cómo quieres que sea el "no" del otro.
Y la pregunta tiene poca relevancia para ti.
Ahora B, contesta "sí",
quiere a alguien que conteste "no",
porque quiere destacarse,
y la pregunta le es relevante.
Intentemos calcular todo esto.
Nuestro primer paso es,
dado que usamos computadoras,
necesitamos asignar valores numéricos
a ideas como "algo importante" y "muy importante"
porque las computadoras necesitan todo en números.
Nosotros en OK Cupid elegimos la siguiente escala:
irrelevante equivale a 0,
un poco importante equivale a 1,
algo importante equivale a 10,
muy importante equivale a 50,
y es absolutamente obligatorio a 250.
Siguiente paso, el algoritmo hace dos simples cálculos.
El primero es qué tanto te gustaron las respuestas de B,
esto es, ¿cuántos puntos posibles obtuvo B en tu escala?
Bueno, tú indicaste que la respuesta de B
a la primera pregunta sobre el desorden
era muy importante para ti.
Lo que equivale a 50 puntos y B acertó.
La segunda pregunta equivale solo a 1
porque dijiste que era solo poco relevante,
y B la tiene mal.
Así, las respuestas de B fueron 50 de 51 puntos posibles.
Esto es 98 % satisfactorio,
lo cual es bastante bueno.
Y la segunda pregunta del algoritmo ve
qué tanto le satisfaces a B.
Bueno, B te dio 1 punto en tu respuesta
a la pregunta del desorden
y 10 en la respuesta a la segunda.
De esos 11, es decir 1 más 10,
te ganaste 10,
de la segunda pregunta ambos están satisfechos entre sí.
Entonces sus respuestas fueron 10 de 11
que equivale al 91% de satisfacción para B.
No está mal.
El paso final es tomar estos dos porcentajes de compatibilidad
y obtener un número para ambos.
Para hacer esto, el algoritmo multiplica sus resultados,
hace la raíz de n,
donde n es el número de preguntas.
Dado que s, es el número de preguntas,
en este ejemplo, es solamente 2,
tenemos porcentajes de compatibilidad que equivalen
a la raíz cuadrada de 98 % por 91 %,
que equivale a 94 %.
Este 94 % es tu porcentaje de compatibilidad con B.
Es una expresión matemática
de qué tan feliz serían entre sí
con base a lo que sabemos.
Ahora bien, ¿por qué el algoritmo se multiplica opuesto a, digamos,
el promedio de los dos resultados de compatibilidad juntos
y por qué la raíz cuadrada?
En general, esta fórmula se llama media geométrica,
que es un gran camino para combinar valores
que tienen rangos amplios
y representan propiedades muy diferentes.
Es decir, es perfecto para relaciones románticas.
Tenemos rangos amplios
y tenemos toneladas de datos diferentes,
como dije, de películas,
de política,
de religión,
de todo.
Intuitivamente, a su vez, tiene sentido.
Dos personas que se satisfecen en 50 % a la otra
debieran ser una mejor pareja
que otros dos que se satisfacen entre 0 y 100,
porque el afecto necesita ser mutuo.
Pero sumando una pequeña corrección de margen de error,
en el caso que haya una pequeña cantidad de preguntas,
como hicimos en este ejemplo,
estamos listos para salir.
Cada vez que OK Cupid junta a dos personas,
prosigue con los pasos que acabamos de esbozar.
Primero se recolectan los datos de sus respuestas,
luego se comparan sus elecciones y preferencias
con las de otros en modo simple y matemático.
Esto, la habilidad de tomar fenómenos del mundo real
y hacer que un microchip los pueda entender,
es, creo,
la destreza más importante que uno puede tener en la actualidad.
Así como usas oraciones para contar una historia a una persona,
usas algoritmos para contar una historia a una computadora.
Si aprendes el lenguaje,
puedes salir y contar tus historias.
Espero que esto te sirva para hacerlo.
Bonjour, je m'appelle Christian Rudder,
je suis un des fondateurs de OK Cupid.
C'est désormais l'un des plus grands sites de rencontre aux États-Unis.
Comme presque tout le monde sur le site,
j'étais doué en math et comme vous pouvez l'imaginer,
nous étions connus pour l'approche analytique
que nous avions de l'amour.
On appelle ça notre algorithme d'appariement.
Essentiellement, l'algorithme d'appariement d'OK Cupid
nous aide à décider si deux personnes peuvent sortir ensemble.
Nous avons construit notre business dessus.
Cependant, algorithme est un mot prétentieux,
les gens préfèrent le laisser tomber,
mais un algorithme est simplement une façon systématique,
pas à pas, de résoudre un problème.
Ça n'a rien de prétentieux.
Ici, dans cette leçon, je vais vous expliquer
comment on en est arrivé à notre algorithme à nous
pour que vous voyez comment ça marche.
Maintenant, pourquoi est-ce que les algorithmes sont importants ?
Pourquoi est-ce que cette leçon existe ?
Eh bien, relisez cette phrase importante que je viens de dire :
c'est une façon de résoudre un problème pas à pas
et, comme vous le savez probablement,
les ordinateurs excellent dans les processus pas à pas.
Un ordinateur sans algorithme
est simplement un couteux presse-papiers.
Depuis que les ordinateurs sont omniprésents dans notre vie quotidienne,
les algorithmes sont partout.
Les mathématiques derrière l'algorithme d'appariement d'OK Cupid
sont étonnamment simples.
Ce sont juste quelques additions,
multiplications
et quelques racines carrées.
La difficulté lors de la conception, cependant,
était de comprendre comment prendre quelque chose de mystérieux,
l'attirance humaine,
et la décomposer en éléments avec lesquels un ordinateur peut travailler.
La première chose dont nous avons besoin pour faire correspondre des gens sont des données,
ce sur quoi l'algorithme puisse travailler.
La meilleure façon d'avoir rapidement des données des gens
est tout simplement de les demander.
Donc nous avons décidé qu'OK Cupid devait poser des questions aux utilisateurs :
« Est-ce que vous voulez des enfants ? »,
« À quelle fréquence vous lavez vous les dents ? »,
« Est-ce que vous aimez les films d'horreur ? »
et des trucs importants comme « Est-ce que vous croyez en Dieu ? »
Certes, beaucoup de questions sont bonnes
pour faire correspondre ce qui est comparable,
quand deux personnes répondent de la même manière.
Par exemple, deux personnes qui aiment bien les films d'horreur
se correspondent probablement mieux
qu'une personne qui les aime
et une qui ne les aime pas.
Mais qu'en est-il d'une question comme,
« Aimez-vous être le centre de l'attention ? »
Si les deux personnes d'un couple répondent oui,
alors il va y avoir de gros problèmes.
Nous avons compris ça rapidement
et nous avons décidé que nous avions besoin
d'un peu plus d'information pour chaque question.
Nous devions demander aux personnes de donner non seulement leur réponse,
mais également la réponse qu'ils attendaient de l'autre.
Ça a vraiment bien marché,
mais nous avions besoin d'une dimension supplémentaire.
Certaines questions nous en disent plus sur une personne que d'autres.
Par exemple, une question sur la politique, quelque chose comme,
« Qu'est-ce qui est pire : brûler un livre ou brûler un drapeau ? »
pourrait en révéler plus sur quelqu'un que ses goûts cinématographiques.
Et ça n'a pas beaucoup de sens de donner le même poids à toutes ces choses,
nous avons donc ajouté une dernière donnée.
Pour chaque question qu'OK Cupid vous pose,
vous avez la possibilité de nous dire
le rôle qu'elle joue dans votre vie,
ça va de non significatif à obligatoire.
Donc, pour chaque question,
nous avons trois choses pour notre algorithme :
premièrement, votre réponse ;
deuxièmement, comment vous souhaitez que quelqu'un,
votre partenaire potentiel,
réponde
et troisièmement, quelle est l'importance de cette question pour vous.
Avec toutes ces informations,
OK Cupid peut déterminer comment deux personnes s'entendront.
L'algorithme mouline les chiffres et nous donne un résultat.
Comme exemple pratique,
regardons comment on vous fait correspondre à quelqu'un,
que nous appelerons "B".
Votre taux de correspondance avec B est fondé sur
les questions auxquelles vous avez répondu tous les deux.
Appelons la série de questions communes "s".
Comme c'est un exemple très simple, utilisons une petite série "s"
avec seulement deux questions en commun
et calculons la correspondance.
Voici nos deux exemples de questions.
La première, disons, « Êtes-vous bordélique ? »,
les réponses possibles sont
beaucoup,
moyennement
et très organisé.
Disons que vous répondiez « très organisé »,
et que vous souhaitez que l'autre réponde « très organisé »,
et que cette question est très importante pour vous.
Fondamentalement vous êtes un maniaque de la propreté.
Vous êtes propre,
vous voulez que l'autre soit propre
et c'est comme ça.
Supposons que B soit un peu différent.
Il a répondu très organisé pour lui-même,
mais moyennement est correct pour lui
comme réponse de l'autre,
et la question n'a pas d'importance pour lui.
Regardons la seconde question,
c'est l'une de notre exemple précédent :
« Aimez-vous être le centre de l'attention ? »
Les réponses sont uniquement oui et non.
Donc vous avez répondu « Non »,
vous attendez comme réponse de l'autre « non »,
et la question est faiblement importante pour vous.
Maintenant B a répondu « Oui »,
il attend quelqu'un qui réponde « Non »,
parce qu'il veut la lumière pour lui
et la question est plutôt importante pour lui.
Essayons de calculer tout ça.
Notre première étape est,
comme nous utilisons des ordinateurs,
nous devons assigner des valeurs numériques
aux idées comme « plutôt important » et « très important »
parce que les ordinateurs ont besoin que tout soit chiffré.
Nous, à OK Cupid, avons choisi l'échelle suivante :
non significatif vaut 0,
un peu important vaut 1,
plutôt important vaut 10,
très important est 50
et obligatoire vaut 250.
Ensuite, l'algorithme fait deux calculs simples.
Le premier est « à quel niveau les réponses de B sont satisfaisantes pour vous »,
ce qui revient « à combien de points a B sur votre échelle ? »
Vous avez indiqué que la réponse de B
à la première question à propos du rangement
était très importante pour vous.
Ça vaut 50 points et B les as eus.
La seconde question vaut seulement 1
parce que vous avez répondu que c'était seulement un peu important
et B avait répondu faux.
Donc les réponses de B valent 50 points sur 51.
C'est 98% de satisfaction.
C'est vraiment bon.
La seconde question que regarde l'algorithme
est à quel niveau vous satisfaites B.
B a placé un point sur votre réponse
à la question sur le rangement
et 10 à votre réponse à la seconde.
Sur ces 11 points, c'est 1 plus 10,
vous gagnez 10,
vous correspondez l'un à l'autre pour la seconde question.
Donc vos réponses donnent 10 sur 11
ce qui vaut 91% de satisfaction pour B.
Ce n'est pas mal.
L'étape finale est de prendre les deux pourcentages de correspondances
et d'obtenir un chiffre pour vous deux.
Pour faire ça, l'algorithme multiplie vos résultats
et prend la racine n-ième,
où n est le nombre de questions.
Parce que s, le nombre de questions,
dans cet exemple, est seulement 2
nous avons : le pourcentage d'appariement est égal
à la racine carrée de 98% fois 91%.
Qui est égal à 94%.
Ce 94% est votre taux d'appariement avec B.
C'est l'expression mathématique
de comment vous seriez heureux l'un avec l'autre
fondé sur ce que nous savons.
Maintenant, pourquoi est-ce que l'algorithme multiplie au lieu de
faire la moyenne des deux taux de correspondances ensemble
puis prend la racine carrée ?
En général, cette formule est appelée la moyenne géométrique,
c'est une bonne façon de combiner des valeurs
qui ont de grandes variations
et présentent des propriétés très différentes.
En d'autres mots, c'est parfait pour un appariement sentimental.
On a de grandes plages de valeurs
et des quantités de valeurs différentes,
comme je l'ai dit, au sujet des films,
de la politique,
de la religion,
de tout.
Intuitivement, aussi, ça a du sens.
Deux personnes qui se correspondent chacune à 50%
devraient être une meilleure combinaison
que deux autres qui se correspondent à 0 et 100,
parce que l'affection doit être mutuelle.
Après avoir ajouté une petite correction pour la marge d'erreur
dans le cas où on a très peu de questions,
comme dans l'exemple,
on est prêt.
À chaque fois qu'OK Cupid associe deux personnes,
on passe par les étapes qu'on vient de montrer.
En premier on collecte les données liées aux questions,
puis on compare les choix et les préférences
pour les autres personnes d'une façon mathématique, simple.
Ça, cette capacité à prendre des phénomènes réels
et à les transformer en quelque chose qu'un microprocesseur puisse comprendre,
est, je pense,
la plus importante compétence que quelqu'un puisse avoir actuellement.
De la même façon que vous utilisez des phrases pour raconter une histoire à une personne,
vous utilisez des algorithmes pour raconter une histoire à un ordinateur.
Si vous apprenez la langue,
vous pouvez sortir et raconter des histoires.
J'espère que ça vous aidera à le faire.
שלום, שמי כריסטיאן רודר,
ואני הייתי אחד המקימים של OK קופידון.
כרגע זה אחד מאתרי ההכרויות הגדולים ביותר בארצות הברית.
כמו כמעט כולם באתר,
הייתי בוגר מתמטיקה, וכמו שאתם יכולים לצפות,
אנחנו ידועים בגישה האנליטית
שיש לנו לאהבה.
אנחנו קוראים לה אלגוריתם ההתאמה שלנו.
בעיקרון אלגוריתם ההתאמה של OK קופידון
עוזר לנו להחליט אם שני אנשים צריכים לצאת לפגישה.
בנינו את כל העסק סביב זה.
עכשיו אלגוריתם זו מילה מפוארת,
ואנשים אוהבים להגיד אותה כאילו זה דבר גדול כזה,
אבל, למעשה, אלגוריתם הוא דרך,
שיטתית של שלב אחר שלב לפתור בעיה.
זה לא חייב להיות מפואר בכלל.
כאן, בשיעור הזה, אני עומד להסביר
איך הגענו לאלגוריתם היחודי שלנו
כך שתראו איך זה נעשה.
עכשיו, למה אלגוריתמים בכלל חשובים?
למה השיעור הזה בכלל קיים?
ובכן, שימו לב לביטוי אחד חשוב למעלה שהשתמשתי בו:
יש דרך של שלב אחר שלב לפתור את הבעיה,
וכמו שאתם בוודאי יודעים,
מחשבים מצטיינים בתהליכים של שלב אחר שלב.
מחשב בלי אלגוריתם
הוא בעיקרון משקולת נייר יקרה.
ומאחר ומחשבים הם דבר כה נפוץ בחיים היום יומיים,
אלגוריתמים הם בכל מקום.
המתמטיקה מאחורי אלגוריתם ההתאמה של OK קופידון
היא פשוטה להפליא.
זה פשוט קצת חיבור,
כפל,
ומעט שורשים מרובעים.
החלק הקשה בלתכנן את זה, עם זאת,
היה להבין איך לקחת משהו מסתורי,
משיכה אנושית,
ולפרק את זה לחלקים שמחשב יכול לעבוד איתם.
ובכן, הדבר הראשון שהיינו צריכים כדי לשדך אנשים היה מידע,
משהו לאלגוריתם לעבוד עליו.
הדרך הטובה ביותר כדי להשיג מידע מאנשים במהירות
הוא פשוט לבקש אותו.
אז, החלטנו שOK קופידון ישאל אנשים שאלות,
דברים כמו, "אתה רוצה ילדים יום אחד?"
ו "באיזו תכיפות אתה מצחצח את השיניים?",
"אתה אוהב סרטים מפחידים?"
ודברים גדולים כמו "אתה מאמין באלוהים?"
עכשיו, הרבה מהשאלות טובות
להתאמת תחומי עניין,
זה כששני האנשים עונים אותו הדבר.
לדוגמה, שני אנשים שאוהבים סרטים מפחידים
הם כנראה התאמה טובה יותר
מאדם אחד שאוהב
ואדם שני שלא.
אבל מה עם שאלות כמו,
"אתה אוהב להיות במרכז העניינים?"
אם שני האנשים ביחסים אומרים כן לזה,
אז הם יהיו בבעיה גדולה.
הבנו את זה די בהתחלה,
ואז החלטנו שאנחנו צריכים
יותר מידע מכל שאלה.
היינו צריכים לבקש מאנשים לפרט לא רק את התשובה שלהם,
אלא את התשובה שהם רצו מהאדם השני.
זה עבד ממש טוב,
אבל היינו צריכים עוד מימד.
כמה מהשאלות מספרות לכם על האדם יותר מאחרות.
לדוגמה, שאלה על פוליטיקה, משהו כמו,
"מה גרוע יותר: שריפת ספרים או שריפת דגלים?"
אולי תגלה יותר על מישהו מהטעם שלהם בסרטים.
וזה לא הגיוני לשקלל את כל הדברים במשקל זהה,
אז אנחנו צריכים להוסיף עוד נקודת מידע אחרונה.
לכל דבר שOK קופידון שואל אתכם,
יש לכם אפשרות להגיד לנו
את התפקיד שזה משחק בחייכם,
וזה נע מלא רלוונטי להכרחי.
אז עכשיו, לכל שאלה,
יש לנו שלושה דברים לאלגוריתם שלנו:
ראשית, את התשובה שלכם;
שנית, איך הייתם רוצים שמישהו אחר,
ההתאמה הפוטנציאלית שלכם,
יענה;
ושלישית, כמה השאלה בכלל חשובה לכם.
עם כל המידע הזה,
OK קופידון יכול להבין כמה שני אנשים יכולים להתאים.
האלגוריתם מעבד את המספרים ונותן לנו תוצאה.
כדוגמה מעשית,
בואו נראה איך נתאים אתכם לאדם אחר,
בואו נקרא לו, "ב".
התאמת האחוזים שלכם עם ב מבוססת על
שאלות ששניכם עניתם.
בואו נקרא לסט הזה של שאלות משותפות, "ס".
כדוגמה ממש פשוטה, נשתמש בסט קטן "ס"
עם רק שתי שאלות משותפות
ונחשב התאמה לפי זה.
הנה שתי שאלות הדוגמה שלנו.
הראשונה, נגיד, היא," כמה מבולגן אתה?"
והתשובות האפשריות הן
מאוד מבולגן,
ממוצע,
ומאוד מסודר.
ובואו נגיד שעניתם "מאוד מסודר,"
והייתם רוצים מישהו אחר שענה "מאוד מסודרים,"
והשאלה היא מאוד חשובה לכם.
בעיקרון אתם משוגעים לסדר.
אתם מסודרים,
אתם רוצים מישהו אחר שיהיה מסודר,
וזהו זה.
ובואו נגיד ש"ב" הוא מעט שונה.
הוא ענה מאוד מסודר על עצמו,
אבל ממוצע בסדר לו
כתשובה של מישהו אחר,
והשאלה רק מעט חשובה לו.
בואו נביט בשאלה השניה,
היא זאת מהדוגמה הקודמת שלנו:
"האם אתם אוהבים להיות מרכז העניינים?"
התשובות הן רק כן ולא.
עכשיו אתם עניתם "לא,"
ורציתם שגם השני יענה "לא,"
והשאלה היא רק מעט חשובה לכם.
עכשיו "ב", ענה "כן,"
והוא רוצה שהאחר יענה "לא,"
מפני שהוא רוצה את אור הזרקורים עליו,
והשאלה היא מעט חשובה לו.
אז, בואו ננסה לחשב את כל זה.
השלב הראשון שלנו הוא,
מאחר ואנחנו משתמשים במחשבים כדי לעשות את זה,
אנחנו צריכים לשייך ערכים מספריים
לרעיונות כמו "מעט חשוב" ומאוד חשוב"
מפני שמחשבים צריכים הכל במספרים.
אנחנו ב OK קופידון החלטנו על המדד הבא:
לא רלוונטי שווה 0,
קצת חשוב זה 1,
די חשוב שווה 10,
מאוד חשוב זה 50,
והכרחי לחלוטין זה 250.
אחרי זה, האלגוריתם עושה שני חישובים פשוטים.
הראשון הוא כמה התשובות של "ב" מספקות אתכם,
שזה אומר, כמה נקודות אפשריות "ב" קיבל במדד שלכם?
ובכן, אמרתם שהתשובה של "ב"
לשאלה הראשונה על סדר
היא מאוד חשובה לכם.
היא שווה 50 נקודות ו"ב" קלע אליה.
השאלה השניה שווה רק 1
מפני שאמרתם שזה רק קצת חשוב לכם,
ו"ב" לא קלע לזה.
אז התשובות של "ב" היו 50 מתוך 51 נקודות אפשריות.
זה סיפוק של 98%.
זה די טוב.
והשאלה השניה שהאלגורתם בודק
זה כמה אתם מספקים את "ב".
ובכן, "ב" נתן נקודה אחת לתשובה שלכם
לשאלת הסדר
ו 10 על התשובה שלכם לשניה.
מאלה, 11, זה 1 ועוד 10,
אתם הרווחתם 10,
אתם סיפקתם אחד את השני בשאלה השניה.
אז התשובה שלכם היתה 10 מתוך 11
שזה שווה ל 91% סיפוק ל "ב".
זה לא רע.
השלב האחרון הוא לקחת את שתי התאמות האחוז האלו
ולקבל מספר אחד לשניכם.
כדי לעשות את זה, האלגוריתם מכפיל את התוצאות שלכם,
אז הוא לוקח את השורש ה"n",
כש "n" הוא מספר השאלות.
מפני ש"ס", שזה מספר השאלות,
בדוגמה הזו, הוא רק 2,
יש לנו אחוז התאמה ששווה
לשורש ריבועי של 98% כפול 91%.
זה שווה 94%.
ה94% האלה הם אחוז ההתאמה שלכם ל"ב".
זה ביטוי מתמטי
של כמה מאושרים אתם תהיו אחד עם השני
בהתבסס על מה שאנחנו יודעים.
עכשיו, למה האלגוריתם מכפיל ולא
ממצע את שתי התוצאות יחד
ומחשב שורש ריבועי?
בכללי, הנוסחה נקראת הממוצע הגאומטרי,
שזו דרך מעולה לשלב ערכים
שיש להם טווח רחב
ומייצגים תכונות שונות מאוד.
במילים אחרות, זה מושלם להתאמה רומנטית.
יש לכם טווח רחב
ויש לכם המון נקודות מידע,
כמו שאמרתי, על סרטים,
על פוליטיקה,
על דת,
על הכל.
באופן אינטואיטיבי זה הגיוני.
שני אנשים שמספקים אחד את השני 50%
צריכים להיות התאמה טובה יותר
מאלה שמספקים אחד את השני 0 ו 100,
מפני שחיבה צריכה להיות הדדית.
אחרי הוספת תיקון קטן למרווח טעות,
במקרה שיש לנו מספר קטן של שאלות,
כמו שאנחנו עושים בדוגמה הזו,
אנחנו מוכנים לצאת לדרך.
כל פעם שOK קופידון מתאים שני אנשים,
הוא עובר את השלבים שהראנו.
ראשית הוא אוסף מידע על התשובות שלכם,
אז הוא משווה את הבחירות שלכם וההעדפות שלכם
לאנשים האחרים בדרכים מתמטיות פשוטות.
היכולת לקחת תופעה מהעולם האמיתי
ולהפוך אותה למשהו שמיקרומעבד יכול להבין,
היא, אני חושב,
היכולת הכי חשובה שיכולה להיות למישהו היום.
כמו שאתם משתמשים במשפטים כדי לספר סיפור לאדם,
אתם משתמשים באלגוריתמים לספר סיפור למחשב.
אם תלמדו את השפה,
אתם יכולים לצאת ולספר את הסיפורים שלכם.
אני מקווה שזה יעזור לכם לעשות את זה.
Ciao mi chiamo Christian Rudder
e sono uno dei fondatori di OK Cupid.
È uno dei maggiori siti di incontri del momento negli Stai Uniti.
Come quasi tutti al sito,
ero specializzato in matematica, e come potete immaginare
siamo conosciuti per l'approccio analitico
che abbiamo dato all'amore.
Noi lo chiamiamo il nostro algoritmo di compatibilità.
Sostanzialmente, l'algoritmo di compatibilità di OK Cupid
ci aiuta a decidere se due persone dovrebbero o meno incontrarsi.
Ci abbiamo costruito intorno un intero business.
L'algoritmo è una bella parola,
ma alla gente piace considerarlo una grande cosa,
ma, sul serio, un algoritmo è solo un modo sistematico
e progressivo di risolvere un problema.
Non deve essere per nulla fantastico.
In questa lezione, spiegherò
come arriviamo al nostro algoritmo specifico
così potrete vedere come funziona.
Allora, perché gli algoritmi sono comunque importanti?
Perché questa lezione esiste?
Notate una frase molto importante che ho utilizzato in precedenza:
sono metodi progressivi di risolvere un problema
e, come probabilmente sapete,
i computer eccellono nei processi passo dopo passo.
Un computer senza algoritmo
è sostanzialmente un fermacarte molto costoso.
ed essendo i computer così diffusi nella vita quotidiana,
gli algoritmi sono ovunque.
La matematica dietro all'algoritmo di compatibilità di Ok Cupid
è sorprendentemente semplice.
Solo alcune addizioni,
moltiplicazioni,
qualche radice quadrata.
La parte difficile della progettazione, quindi,
è capire come prendere qualcosa di misterioso,
l'attrazione umana,
e dividerla in componenti con cui un computer può lavorare.
La prima cosa di cui avevamo bisogno per confrontare le persone sono i dati,
qualcosa su cui far lavorare l'algoritmo.
Il miglior modo per ricevere dati dalle perosne
è chiederli.
Quindi abbiamo deciso che OK Cupid avrebbe fatto domande agli utenti,
cose come, "Vorresti avere figli un giorno?"
o "Con quale frequenza ti lavi i denti?",
"Ti piacciono i film dell'orrore?"
e cose importanti come "Credi in Dio?"
Molte domande sono utili
per abbinare le persone simili,
questo succede quando entrambi rispondono allo stesso modo.
Ad esempio, due persone a cui piacciono gli horror
probabilmente sono più compatibili
di una a cui piacciono
e una a cui non piacciono.
E invece nel caso di domande come,
"Ti piace essere al centro dell'attenzione?"
Se due persone che stanno insieme rispondono di si,
avranno grossi problemi.
L'abbiamo capito subito,
così abbiamo deciso che avevamo bisogno
di qualche dato in più da ogni domanda.
Dovevamo chiedere alle persone non solo la loro risposta
ma anche che volevano da qualcun altro.
Ha funzionato molto bene,
ma ci serviva un'altra dimensione.
Alcune risposte ci dicono di più rispetto ad altre.
Ad esempio una domanda sulla politica, come,
"Cosa è peggio: bruciare un libro o una bandiera?"
potrebbe rivelare di più rispetto alle preferenze sui film.
E non ha senso dare a tutto lo stesso peso,
così abbiamo aggiunto un ultimo punto.
Per ogni cosa che OK Cupid vi chiede,
potete dirci
il ruolo che ha nella vostra vita,
e i campi variano dall'irrilevante al fondamentale.
Quindi, per ogni domanda,
abbiamo 3 elementi per il nostro algoritmo:
primo, la vostra risposta;
secondo, come vorreste che l'altro,
il vostro potenziale partner,
rispondesse;
e terzo, quanto questa risposta è importante per voi.
Con tutte queste informazioni,
OK Cupid può scoprire quanto due persone andranno d'accordo.
L'algoritmo elabora i numeri e ci dà un risultato.
Un esempio pratico.
vediamo come vi abbineremmo a un'altra persona,
chiamiamola "B".
La vostra affinità con B è basata
sulle domande a cui entrambi avete risposto.
Chiamiamo quel gruppo di domande in comune "s".
Per fare un semplice esempio, useremo un piccolo gruppo "s"
con solo 2 domande in comune
e da li calcoleremo l'affinità.
Ecco due domande campione.
La prima, diciamo, è "Quanto sei disordinato?"
e le possibili risposte sono
molto disordinato,
nella media,
molto organizzato.
Diciamo che rispondete "molto organizzato",
e vorreste che l'altro risponda "molto organizzato"
e la risposta per voi è molto importante.
Siete sostanzialmente dei maniaci della pulizia.
Siete puliti,
volete che l'altro sia pulito,
tutto qui.
Diciamo che B è leggermente diverso.
Ha risposto di essere molto organizzato
ma per lui nella media va bene lo stesso
come risposta dell'altro
e la domanda per lui non è molto importante.
Vediamo la seconda domanda,
è di un nostro esempio precedente:
"Ti piace essere al centro dell'attenzione?"
Le risposte sono solo si o no.
Voi avete risposto di "no",
volete che l'altro risponda "no"
e la domanda per voi non è molto importante.
B ha risposto "sì",
e vuole che l'altro risponda "no",
perché vuole i riflettori puntati su di lui,
e la domanda per lui è abbastanza importante.
Adesso, proviamo ad elaborare tutto questo.
Il primo passo è,
siccome usiamo i computer
dobbiamo assegnare dei valori numerici
alle idee come, "abbastanza importante" e "molto importante"
perché i computer hanno bisogno di numeri.
Noi di OK Cupid abbiamo deciso di dare i seguenti valori:
irrilevante corrisponde a 0
non molto importante a 1,
abbastanza importante vale 10,
molto importante è uguale a 50,
e fondamentale è uguale a 250.
In seguito, l'algoritmo fa due semplici calcoli.
Primo, quanto siete soddisfatti della risposta di B,
cioè, quanti punti ha segnato B sulla vostra graduatoria?
Voi indicate che la risposta di B
alla prima domanda quella sul disordine
è molto importante per voi.
Vale 50 punti e B li ha guadagnati.
La seconda domanda vale solo 1
perché avete detto che non è molto importante,
e B ha risposto male.
Quindi B ha segnato 50 punti su 51.
È soddisfacente al 98%.
Abbastanza buono.
La seconda domanda dell'algoritmo guarda
quanto B è soddisfatto di voi.
Allora, B ha dato 1 punto alla vostra risposta
sulla domanda sul disordine
e 10 alla vostra seconda risposta.
Di questi 11, ossia 1 più 10,
ne avete guadagnati 10,
siete soddisfatti l'uno dell'altro sulla seconda risposta.
Quindi le vostre risposte valgono 10 su 11
pari al 91% di soddisfazione di B.
Niente male.
Il processo finale è prendere queste due percentuali
e trovare un numero per entrambi.
Per fare ciò, l'algoritmo moltiplica i vostri punti
poi estrae la radice n-esima,
dove n è il numero delle domande.
Perché s, che è il numero delle domande
in questo caso è solo 2,
abbiamo percentuali di compatibilità pari
alla radice quadrata di 98% x 91%
Cioè 94%
Questo 94% è la vostra affinità con B.
È un' espressione matematica
di quanto sareste felici insieme
basandoci su ciò che sappiamo.
Ma perché l'algoritmo moltiplica invece di, diciamo,
fare la media dei due punteggi
e fare la radice quadrata?
Generalmente questa formula è chiamata media geometrica,
che è un ottimo modo per combinare valori
con ampie variazioni
e che rappresentano proprietà differenti.
In altre parole, è perfetto per l'affinità romantica.
Avete variazioni ampie
e tanti dati differenti,
come ho dicevo, sui film,
la politica,
la religione,
su tutto.
Istintivamente, tutto questo ha senso.
Due persone soddisfatte al 50%
dovrebbero avere una maggior compatibilità
rispetto ad altre due soddisfatte a 0 e 100,
perché l'affetto deve essere reciproco.
Dopo aver aggiunto una correzione per i margini di errore,
nel caso di un numero limitato di domande,
come in questo esempio,
siamo pronti ad partire.
Ogni volta che OK Cupid abbina due persone
segue i passaggi appena illustrati.
Prima raccoglie informazioni dalle vostre risposte,
poi confronta le vostre scelte e preferenze
con quelle di altri con semplici metodi matematici.
Questo capacità di prendere fenomeni del mondo reale
e trasformarli in qualcosa di comprensibile per un microchip
è, credo,
la più grande abilità che si possa pssedere al giorno d'oggi.
Come voi usate frasi per raccontare una storia a qualcuno,
si possono usare algoritmi per raccontare una storia ad un computer.
Se ne imparate il linguaggio
potete raccontare in giro la vostra storia.
Spero che questo vi aiuti a farlo.
こんにちは クリスチャン・ラダーです
私たちが始めた OkCupidは
現在アメリカで 最大手の出会いサイトです
他のスタッフの 多くと同様
私も数学専攻で
私たちは恋愛への
分析的アプローチで 知られています
私たちは マッチング・アルゴリズムと 呼んでいますが
これは ２人の人が
デートすべきかの判断を 助けるものです
これが私たちの事業の 中心にあるものです
アルゴリズムというと 何かかっこよくて
みんな何かすごいもののように 口にしますが
実際のところは
段階を追って問題を 機械で解く手順ということで
別にすごいものとは 限りません
このビデオでは
私たちのアルゴリズムが
どのようにできているのかを 説明します
アルゴリズムは なぜ重要なのか？
そもそもこのビデオは なぜ存在するのか？
注意して欲しいのは 私が
「段階を追って解く」 と言ったことです
コンピュータが 段階を追った処理に向いているのは
知っていると思います
アルゴリズムがなければ
コンピュータは高価な 漬け物石に過ぎません
コンピュータは 身の回りの至る所にあり
それはすなわちアルゴリズムが どこにでもあるということです
OKCupidの 背後にある数学は
ごく簡単なものです
足し算
掛け算
それにルートを 少し使うくらいです
このアルゴリズムの設計で 難しいのは
人が惹かれ合うという
不可解な現象を
要素に分解し 機械で 扱えるようにすることです
人のマッチングをする上で まず必要なのは
アルゴリズムが使うための データです
人からデータを手早く得る 最良の方法は
単に聞いてみることです
それで OkCupidでは ユーザーに質問することにしました
「いつか子供が欲しいですか？」
「歯磨きを日に何度しますか？」
「怖い映画は好きですか？」
それに「神を信じますか」のような 大きな質問もあります
多くの質問は
２人が同じような 答えをする時
相性が良いと 考えられます
例えば ２人がどちらも 怖い映画が好きな場合
１人は好きで もう１人は嫌い
という場合よりも
おそらく相性が 良いでしょう
しかし もし質問が
「場の中心になるのが好きですか？」 ならどうでしょう？
付き合っている２人が どちらも中心にいたいタイプだと
大きな問題がありそうです
それで私たちは
それぞれの質問に対して
もう少しデータを 取ることにしました
自分自身についての 答えだけでなく
相手に望む答えも 聞くことにしたんです
これはうまくいきましたが
さらにもう１つの要素が 必要でした
ある種の質問は 他の質問よりも 多くのことを教えてくれるからです
たとえば政治的な質問である
「本を燃やすのと国旗を燃やすのとでは どちらがより悪いか？」のような質問は
映画の好みなどより 重要な意味を持つかもしれません
あらゆる質問を 同様に扱うのは問題があるので
もう１つデータを 付け加えました
OkCupidが聞く質問ではすべて
自分にとっての重要性を
「どちらでもよい」から「必須」まで
指定することができます
これで各質問について
アルゴリズムに使えるものが ３つあることになります
１ 自分の答え
２ 付き合う相手に望む答え
３ その質問の重要度です
これらの情報を元に
OKCupidは２人の 相性の良さを判断でき
アルゴリズムが データから答えを算出します
具体的な例で
あなたと 別の誰かBさんの 相性が良いかを
どのように判断するのか 見てみましょう
相性度は
２人とも答えた 質問を元に求めます
この共通の質問の集まりを Sと呼ぶことにしましょう
話を簡単にするため
Sはたった２つの 質問からなることにして
それを元に相性度を 計算してみます
その２つの質問の １つは
たとえば「散らかし屋さんですか？」で
答えの選択肢は
「散らかし屋」
「ふつう」
「きれい好き」 だったとします
あなたは「きれい好き」で
相手にも「きれい好き」 であることを望み
この問題はとても重要 だったとしましょう
あなたは超きれい好きで
自分だけでなく
相手にも きれい好きなことを
強く求めています
Bさんは少し違います
彼自身は「きれい好き」ですが
相手は「ふつう」でかまわず
彼にとって この問題は あまり重要ではありません
２番目の質問に 移りましょう
前に質問例として挙げた
「場の中心になるのが好きですか？」で
選択肢は「はい」か「いいえ」です
あなたの答えは「いいえ」で
相手にも「いいえ」であることを望み
この問題はあまり 重要でなかったとします
Bさんの方は 自分が「はい」で
相手には「いいえ」を望み —
なにしろ自分が中心でいたいので —
そして この問題は彼にとって まあまあ重要だったとします
それでは計算してみましょう
まずはじめに
コンピュータを使うので
「まあまあ重要」とか 「とても重要」のような概念に
数値を割り当てる 必要があります
コンピュータはすべて 数字で計算するからです
OkCupidではこんな重み付けを することにしました
「どうでもよい」は 0点
「あまり重要でない」は 1点
「まあまあ重要」は 10点
「とても重要」は 50点
「必須」は 250点です
つぎにアルゴリズムは 簡単な計算を２つします
１つはBさんが あなたにとって どれくらい満足のいく人かで
これはBさんが取り得る点数のうちの 何点を取ったかということです
最初の質問
散らかし屋かどうかは
あなたにとって とても重要で
Bさんは正しく答えたので 50点になります
２番目の質問は あまり重要でなかったので
１点分の価値しかなく
Bさんは間違った 答えをしました
だからBさんの点数は 50/51となり
98%の満足度です
これはかなり良い点数です
次にアルゴリズムが見るのは
あなたが どれくらいBさんを 満足させるかということです
Bさんは散らかし屋の 質問には１点
場の中心の質問には 10点を設定しました
満点は 1 + 10 = 11 点で
あなたは２番目の質問で 希望に合っていたので
10点を取りました
あなたの点数は10/11で
Bさんにとっての 満足度は91%です
悪くありません
最後のステップとして この２つのパーセントの数字から
２人の相性度を計算します
アルゴリズムは ２つの値を掛け合わせて
n 乗根を求めます
ここで n は質問の個数です
今の場合 質問の数は
２つだけだったので
相性度は 98% × 91% の 2 乗根で —
94% となります
94% があなたと Bさんの相性度です
あなた方が付き合った時に
予想される幸福度を
得られているデータを元に 数学的に求めた値です
なぜこのアルゴリズムでは
２つの点数の平均を取らずに
掛け算して累乗根を 求めているのか？
一般にこのような式は 幾何平均と呼ばれ
広い幅のある
異なる性質の値を 組み合わせる
優れた方法なんです
つまり恋愛の相性には ぴったりということです
広い範囲の
たくさんの異なる データがあります
映画だとか
政治
宗教
その他あらゆることです
直感的にも これは 意味のあることです
互いに50%の満足度の２人は
0%と100%の２人よりも
相性が良いと言えるでしょう
恋愛は相互的である 必要があるからです
誤差に対応するために 若干の補正をすれば完了です
たとえば今の場合だと
質問の数が少なすぎる
という問題がありました
OkCupidが ２人を引き合わせる場合
今説明したような 手順を辿ります
まずみんなの答えを データとして集め
本人の選択と 相手への希望を
単純な数学的方法で 付き合わせていくんです
この 現実の世界の現象を
マイクロチップが理解できる形に 変える能力は
今の時代
最も重要なスキルだと思います
人に対して文章を使って 物語るように
コンピュータに対しては アルゴリズムを使って物語るのです
言語を学べば
物語を語れるようになります
このビデオが その役に立てば幸いです
안녕하세요, 제 이름은 크리스티안 러더 (Christian Rudder) 입니다.
저는 오케이 큐피드 (OK Cupid) 의 설립자 중 한사람이며,
오케이 큐피드는 현재 미국에서 가장 큰 만남 주선 회사 중 하나입니다.
사이트 내의 거의 모든 사람들이 그러하듯,
저는 수학 전공을 전공했고, 여러분이 기대하듯,
우리는 사랑을 찾는 데에 대한
분석적인 접근으로 잘 알려져 있습니다.
우리는 그것을 매칭 알고리즘이라고 부릅니다.
기본적으로 오케이 큐피드의 매칭 알고리즘은
두 사람이 데이트를 해야 할 것인지 결정하도록 도와줍니다.
저희의 모든 사업은 이 알고리즘을 기초로 만들어졌습니다.
알고리즘은 뭔가 특별한 단어이고,
사람들은 대단한 것인양 대화에 즐겨 사용합니다.
하지만 실제로 알고리즘은 단지 문제를 해결하는
체계적이고 단계적인 방법일 뿐입니다.
따라서 그것은 결코 화려할 필요가 없어요.
이번 강의에게 우리가 어떻게 우리만의 알고리즘에
도달하게 되었는지 알려 드리겠습니다.
그러면 어떻게 구축된 것인지 이해하실 거에요.
이제 알고리즘이 왜 그렇게 중요한지 아시겠어요?
왜 이런 강연이 있을까요?
글쎄요, 제가 앞서 썼던 표현 중 중요한 문구를 잘 생각해 보세요.
알고리즘은 문제를 단계적으로 해결하는 방식입니다.
그리고 여러분이 아마도 알고 계시듯이,
컴퓨터는 단계별 과정에 뛰어납니다.
알고리즘없는 컴퓨터는
기본족으로 값비싼 타자기에 불과합니다.
컴퓨터가 일생 생활의 모든 영역에 스며들었기 때문에,
알고리즘은 어디에나 있습니다.
오케이 큐피드의 매칭 알고리즘의 배경이 되는 수학은
매우 간단합니다.
그것은 단지 덧셈,
곱셈,
제곱근을 사용합니다.
그러나 알고리즘을 구성하는 데 어려운 부분은
신비스러운 부분인 사람 간의 끌림을
어떻게 밝혀내는가 하는 것이며,
또 컴퓨터가 작업할 수 있도록 구성 요소들로 나누는가 입니다.
사람들을 연결시키기 위해 처음으로 필요했던 것은
알고리즘으로 작업할 수 있는 어떤 형태의 자료였습니다.
사람들로부터 자료를 수집하는 최고의 방법은
그들에게 물어보는 것이었어요.
그래서 우리는 오케이 큐피트 사용자들에게 질문을 하기로 했죠.
"언젠가 아이를 갖기를 원하세요?" 같은 것들이나
"얼마나 자주 양치질을 하나요?"
"공포 영화를 좋아하세요?"
또는 "신을 믿으세요?" 와 같은 중요한 질문들이었습니다.
굉장히 많은 질문들이
선호 사항과 선호 사항 사이를 연결시켜주는 데 유용합니다.
그리고 바로 그 때가 사람들이 동일한 방식으로 대답을 할 때죠.
예를 들어, 공포 영화를 좋아하는 두 사람이
아마 공포 영화를 좋아하는 한 사람과
그렇지 않은 다른 한 사람 보다
더 잘 어울릴 거에요.
그러면 다음과 같은 질문에는 어떻게 답하는지 볼까요.
"당신은 관심의 중심이 되고 싶은가요?"
만약 연인관계에 있는 두 사람 모두 이 질문에 "네" 라고 대답한다면,
두 사람은 곧 큰 문제에 직면하게 될 거에요.
우리는 이것을 일찍 알았고,
각각의 질문에 대해 정보가 더 필요하고
이를 모아야겠다고 생각했습니다.
우리는 사람들에게 자신의 대답을 구체화 할 뿐 아니라,
다른 사람들로부터 그들이 원하는 대답을 구체화 하도록 요청했습니다.
그런 노력들은 효과가 있었습니다.
그러나 우리는 한 가지 다른 차원이 필요했어요.
어떤 질문들은 다른 것들보다 한 사람에 대해 훨씬 더 많은 것을 알려줍니다.
예를 들어, "책을 태우는 것과 깃발을 태우는 것 가운데 어느 것이 더 나쁜가요?" 와 같은
정치적 질문은
개인의 영화에 대한 취향보다는 그들 자신에 관해 더 알려줄 수도 있거든요.
그리고 모든 것들을 똑같은 비중으로 다룬다는 것은 말이 되지 않죠.
그래서 우리는 마지막으로 한 가지의 정보가 더 필요했습니다.
오케이 큐피드가 묻는 모든 것들에 대해
사람들은 각자의 삶에서 그런 질문들이
어떤 역할을 하는지 말할 기회를 갖게 됩니다.
이것은 무의미한 것부터 필수적인 것까지 다양합니다.
그래서 지금 우리는 각 질문을 통해
우리의 알고리즘에 관한 세 가지 사실을 파악하고 있습니다:
첫째, 여러분의 대답.
둘째, 여러분이 다른 누군가
즉, 여러분의 잠재적 상대가
어떻게 대답하길 원하는지.
셋째, 그 질문이 여러분에게 얼마나 중요한지 하는 것이에요.
이런 정보들로,
오케이 큐피드는 두 사람이 얼마나 잘 어울리는지 알아냅니다.
알고리즘은 수치들을 분석하여 결과를 알려줍니다.
실제적인 예로,
우리가 어떻게 여러분을 연결시켜 드리는지 살펴보겠습니다.
상대를 "B" 라고 하겠습니다.
B 와 여러분의 연결 확률은 질문들에 대한
두사람의 대답에 달려 있습니다.
공통 질문 세트를 "S" 라고 부르겠습니다.
매우 간단한 예로, 우리는 공통으로 단 두개의 질문만 있는
작은 세트 질문 "S"를 사용합니다.
그리고 그것들로 연결을 계산합니다.
두 가지 예를 말씀 드릴께요.
예를 들어, 첫 질문은 "여러분은 얼마나 지저분한가요?" 입니다.
그리고 가능한 대답은
매우 지저분한,
보통,
매우 정리된 입니다.
여러분이 "매우 정리된"이라고 대답했다고 생각해 보세요.
그러면 여러분은 짝이 될 사람도 "매우 정리된" 이라고 대답하길 기대할 거에요.
이 질문은 사람들에게 매우 중요합니다.
기본적으로 사람들에게는 정리벽이 있거든요.
사람들은 단정하고,
다른 사람도 단정하길 바랍니다,
그것 뿐입니다.
B 는 다소 다르다고 생각해봅시다.
B는 자신에 대해 매우 정리된 사람이라 대답하지만,
그는 보통이라고 말하는 사람과도
사이가 좋습니다.
그런 질문은 그에게 그리 중요하지 않습니다.
두 번째 질문을 보겠습니다.
앞서 예로 들었던 질문입니다.
"여러분은 관심의 중심이 되고 싶은가요?"
대답은 그저 네 아니면 아니오 입니다.
여러분은 "아니오" 라고 대답했고,
여러분은 상대방도 "아니오"라고 대답하길 원하며,
그 질문은 여러분에게 별로 중요하지 않다고 생각해 봅시다.
B는 "네" 라고 대답했고,
그는 자신이 주목받길 원하기 때문에
상대방이 "아니오"라고 대답하길 원한다고 생각해봐요.
그리고 그 질문은 그 사람에게 매우 중요합니다.
그러면 이것을 가지고 측정을 해 봅시다.
우리의 첫 단계는
컴퓨터를 사용해야 하기 때문에
"다소 중요" 나 "매우 중요"와 같은
생각들에 절대값을 부여해야 합니다.
왜냐하면 컴퓨터는 모든 것을 수치로 필요로 하기 때문이죠.
오케이 큐피드는 다음과 같은 척도를 사용합니다.
'무의미한'은 0
'조금 중요한'은 1
'다소 중요한'은 10
'매우 중요한'은 50
그리고 '절대적으로 필수적인'은 250 입니다.
다음으로 알고리즘은 두 가지 간단한 계산을 합니다.
첫번째는 B의 대답들이 얼마나 여러분을 만족시키는지,
즉, 여러분의 척도에서 얼마나 많은 점수를 획득하느냐 입니다.
여러분은 지저분함에 관한 질문에 대한
B의 대답이
매우 중요하다고 암시했습니다.
그것은 50점이고 B는 그 점수를 획득했어요.
두번째 질문은 단지 1점입니다.
왜냐하면 여러분이 그것이 중요하지 않다고 말했기 때문입니다.
그리고 B는 점수를 받지 못했습니다.
그래서 B의 대답은 51점 중 50점을 받았습니다.
98% 만족스러운거죠.
상당히 좋습니다.
알고리즘의 두 번째 질문은
얼마나 여러분이 B를 만족시키는지를 보는 것입니다.
B는 지저분함에 관한
여러분의 대답에 1점을
두번째 질문에는 10점을 부여했습니다.
1점과 10점을 합해서 11점 중
여러분은 10점을 얻었고,
두 사람은 두번째 질문에서 서로를 만족시켰습니다.
그래서 여러분의 대답은 11점 중 10점을 받았고,
B에 대해 똑같이 91% 만족하게 됩니다.
나쁘지 않죠.
마지막 단계는 이 두 수치를 합하여
두 사람 모두에 대한 하나의 결과치를 만드는 작업입니다.
이렇게 하기 위해서는, 알고리즘이 여러분의 점수들을 곱해야 합니다.
그리고 n제곱근을 구해야 합니다.
여기서 n은 질문의 수입니다.
우리가 든 예에서
s가 겨우 2였기 때문에,
우리는 98%와 91%의 곱의
제곱근을 구합니다.
이는 94%가 됩니다.
이 94%의 값이 B와 여러분의 매칭 백분위입니다.
이것은 여러분이 서로 얼마나 만족할지
우리가 알고 있는 정보에 근거하여
수학적으로 표현한 것입니다.
그러면, 왜 알고리즘이
두 매칭 점수의 평균을 구하는 대신
곱셈을 해서 제곱근을 하는걸까요?
일반적으로, 이 공식은 기하 평균이라고 불립니다.
이것은 넓은 범위를 지닌 값들을
통합하여
매우 다른 특성들을 나타내는 좋은 방법입니다.
다시 말해, 로맨틱 매칭에 있어 완벽한 방법입니다.
사람들은 다양한 범위의 값과
수 많은 다른 정보 점수를 갖고 있습니다.
제가 말한 것 처럼, 영화에 관해서,
정치에 관해서,
종교에 관해서,
모든 것에 관해서 말이죠.
이것은 직관적으로도 의미가 있어요.
두 사람이 서로를 50% 만족시킨다면
한 사람이 0% 만족시키고 다른 한 사람이 100% 만족시키는 커플보다
더욱 괜찮은 매칭입니다.
왜냐하면 애정은 상호적이어야 하기 때문입니다.
앞서 예에서 들었던 것처럼
우리가 매우 적은 수의 질문을 갖고 있는 경우에
오차를 조금만 수정하고 나면
계속 진행해도 좋습니다.
오케이 큐피드가 두 사람을 연결할 때마다
우리가 방금 간략하게 소개한 과정들을 거치게 됩니다.
첫째, 사람들의 대답 정보를 모읍니다.
그리고 간단하고 수학적인 방법으로 그들의 선택과 선호도를
다른 사람들의 것과 비교합니다.
저는 현실의 현상을 가지고 마이크로 칩이
이해할 수 있는 어떤 것을 만들어 내는 능력이
오늘날 누구든지
가질 수 있는 가장 중요한 기술이라고 생각합니다.
여러분이 누군가에게 이야기를 들려주기 위해 쓰는 문장들처럼,
여러분은 컴퓨터에게 이야기를 들려주기 위해 알고리즘을 사용합니다.
만약 여러분이 그 언어를 배운다면,
여러분은 여러분의 이야기를 들려줄 수 있을거에요.
저는 이 이야기가 어려분이 그렇게 하도록 도울 수 있으면 좋겠습니다.
Sveiki! Mani sauc Kristians Raders,
un es biju viens no OkCupid dibinātājiem.
Tagad tas ir viens no lielākajiem iepazīšanās portāliem ASV.
Kā gandrīz visiem portālā
man ir maģistra grāds matemātikā, un, kā noprotams,
mēs esam pazīstami ar savu analītisko pieeju
mīlestībai.
Mēs to saucam par saderības algoritmu.
Būtībā OkCupid saderības algoritms
palīdz izlemt, vai diviem cilvēkiem vajadzētu satikties.
Uz to ir balstīts viss mūsu bizness.
Algoritms ir sarežģīts vārds,
un cilvēki domā, ka tas ir kaut kas liels,
bet patiesībā algoritms ir tikai sistemātiska
un pieeja problēmas risināšanai soli pa solim.
Tam nepavisam nav jābūt sarežģītam.
Šajā lekcijā es paskaidrošu,
kā mēs nonācām līdz šim algoritmam,
lai jūs redzētu, kā tas notiek.
Kāpēc algoritmi vispār ir svarīgi?
Kamdēļ vispār šī lekcija?
Ievērojiet kādu ļoti nozīmīgu frāzi, kuru izmantoju iepriekš —
algoritmi ir veids, kā risināt problēmu soli pa solim,
un, kā jūs jau, iespējams, zināt,
datori secīgos procesos ir izcili.
Dators bez algoritma
būtībā ir dārga papīru prese.
Tā kā datori ir neatņemama ikdienas sastāvdaļa,
algoritmi ir visur.
OkCupid saderības algoritma matemātika
ir pārsteidzoši vienkārša.
Tur ir tikai saskaitīšana,
reizināšana
un dažas kvadrātsaknes.
Piņķerīgā daļa tā izveidē
bija izdomāt, kā kaut ko tik noslēpumainu
kā pievilcību
sadalīt tādās sastāvdaļās, ar kurām varētu strādāt dators.
Pirmkārt, saderības noskaidrošanai mums bija vajadzīgi dati,
kaut kas, ar ko algoritms varētu strādāt.
Labākais veids, kā šos datus ātri iegūt no cilvēkiem,
ir vienkārši pajautāt.
Tā mēs izlēmām, ka OkCupid būtu jāuzdod lietotājiem jautājumi,
piemēram: „Vai jūs kādu dienu vēlētos bērnus?”
„Cik bieži jūs tīrāt zobus?”
„Vai jums patīk šausmu filmas?”
un lielās lietas, piemēram: „Vai jūs ticat Dievam?”
Daudzi jautājumi ir piemēroti,
lai atrastu līdzīgos,
proti, kad abi cilvēki atbild vienādi.
Piemēram, divi cilvēki, kuriem patīk šausmu filmas,
droši vien būs labāks pāris,
nekā ja vienam tās patiks,
bet otram ne.
Bet kā ir, piemēram, ar jautājumu:
„Vai jums patīk atrasties uzmanības centrā?”
Ja abi cilvēki atbild uz šo jautājumu ar jā,
viņiem būs lielas problēmas.
Mēs to ātri vien sapratām,
tādēļ izlēmām, ka vajag
mazliet vairāk informācijas par katru jautājumu.
Mums vajadzēja noskaidrot ne tikai paša cilvēka atbildes,
bet arī to, kādas atbildes viņi sagaida no otra.
Tas strādāja ļoti labi,
tomēr mums vajadzēja vēl vienu dimensiju.
Daži jautājumi par cilvēku pasaka vairāk nekā citi.
Piemēram, jautājums par politiku:
„Kas ir sliktāk — grāmatu vai karoga dedzināšana?”
var atklāt par kādu vairāk nekā viņa filmu gaume.
Nebūtu pareizi uzskatīt visas lietas par līdzvērtīgām,
tāpēc mēs pievienojām vēl vienu elementu.
Par ikvienu OkCupid jautājumu
jūs varat mums pateikt,
cik liela loma tam ir jūsu dzīvē —
sākot no nenozīmīgas līdz obligātai.
Tā nu tagad katram jautājumam
mūsu algoritmā ir trīs lietas:
pirmkārt, jūsu atbilde;
otrkārt, kā jūs vēlētos, lai otrs cilvēks,
jūsu potenciālais partneris,
atbild;
un treškārt, cik svarīgs jums ir šis jautājums.
Izmantojot šo informāciju,
OkCupid var noteikt, cik labi divi cilvēki sapratīsies.
Algoritms veic aprēķinu, un mēs iegūstam rezultātu.
Praktisks piemērs.
Paskatīsimies, kā mēs noskaidrotu jūsu saderību ar kādu cilvēku,
sauksim viņu par „B”.
Jūsu saderības procents ar B ir balstīts uz
jautājumiem, uz kuriem jūs abi atbildējāt.
Sauksim šo vienkāršo jautājumu kopu par „s”.
Šajā ļoti vienkāršajā piemērā mēs izmantojam nelielu kopu „s”
ar tikai diviem kopīgiem jautājumiem
un, balstoties uz tiem, aprēķinām saderību.
Lūk, mūsu divi jautājumi.
Pirmais varētu būt: „Cik nekārtīgs jūs esat?”
un iespējamie atbilžu varianti ir
ļoti nekārtīgs,
vidēji nekārtīgs,
un ļoti kārtīgs.
Pieņemsim, ka jūs atbildējāt „ļoti kārtīgs”
un vēlaties, lai arī otrs atbild „ļoti kārtīgs”,
un šis jautājums jums ir ļoti svarīgs.
Jūs būtībā esat apsēsts ar kārtību.
Jūs esat kārtīgs,
un vēlaties, lai arī otrs cilvēks ir kārtīgs,
un viss.
Pieņemsim, ka B ir mazliet citādāks.
Viņš ir atbildējis, ka pats ir ļoti kārtīgs,
bet viņam no otra cilvēka der arī atbilde „vidēji kārtīgs”,
un viņam šis jautājums ir mazsvarīgs.
Apskatīsim otro jautājumu,
tas ir viens no iepriekš minētajiem:
„Vai jums patīk atrasties uzmanības centrā?”
Atbildes ir vienkārši „jā” un „nē”.
Jūs atbildējāt „nē”,
un vēlaties, lai arī otrs atbildētu „nē”,
un jautājums jums ir mazsvarīgs.
B ir atbildējis „jā”,
un vēlas, lai otrs atbildētu „nē”,
jo vēlas, lai uzmanība būtu pievērsta viņam,
un šis jautājums viņam ir samērā svarīgs.
Tad nu mēģināsim to visu izskaitļot.
Pirmkārt,
tā kā šim darbam izmantojam datorus,
mums jāpiešķir skaitliskas vērtības
tādām idejām kā „samērā svarīgs” un „ļoti svarīgs”,
jo datoriem viss ir vajadzīgs skaitliskā formātā.
Mēs, OkCupid, vienojāmies par šādām vērtībām:
nesvarīgs ir 0,
mazsvarīgs ir 1,
samērā svarīgs ir 10,
ļoti svarīgs ir 50,
un obligāts ir 250.
Tālāk algoritms veic divus vienkāršus aprēķinus.
Pirmkārt, cik atbilstošas bija B atbildes,
proti, cik daudz no iespējamajiem punktiem B savāca.
Jūs norādījāt, ka B atbilde
uz pirmo jautājumu par kārtīgumu
jums ir ļoti svarīga.
Tās vērtība ir 50 punkti, un B uz to atbildēja pareizi.
Otrs jautājums ir tikai vienu punktu vērts,
jo tas jums ir mazsvarīgs.
B atbilde nebija pareizā.
Tātad B ir ieguvis 50 no 51 iespējamā punkta.
Tie ir 98%.
Tas ir samērā labi.
Otrs algoritma jautājums apskata,
cik lielā mērā jūsu atbildes bija pa prātam B.
B novērtēja ar 1 punktu atbildi
uz jautājumu par kārtīgumu
un ar 10 — atbildi uz otro jautājumu.
No šiem 11, kas ir 1 plus 10,
jūs ieguvāt 10.
Jūsu abu atbildes uz otro jautājumu bija saderīgas.
Tātad jūsu atbildes bija 10 no 11,
kas ar B ir 91% atbilstība.
Tas nav slikti.
Visbeidzot no šīm divām procentuālajām vērtībām
ir jāiegūst viens skaitlis jums abiem.
Lai to izdarītu, algoritms sareizina jūsu punktus
un izvelk n-tās pakāpes sakni,
kur „n” atbilst jautājumu skaitam.
Tā kā „s”, kas ir jautājumu skaits,
šajā piemērā ir tikai 2,
mūsu saderības procents ir vienāds
ar kvadrātsakni no 98% reiz 91%.
Tas ir vienāds ar 94%.
Tas nozīmē, ka jūsu saderība ar B ir 94%.
Šī matemātiskā izteiksme parāda,
cik apmierināti jūs būtu viens ar otru,
balstoties uz to, ko zinām.
Kādēļ algoritms reizina, nevis, piemēram,
aprēķina vidējo no abu vērtību summas,
un kāpēc jāvelk kvadrātsakne?
Šo formulu sauc par ģeometrisko vidējo,
kas ir lielisks veids, kā kombinēt vērtības,
kam ir liels diapazons
un kas ataino ļoti dažādas īpašības.
Tātad tas ir ideāli piemērots romantiskās saderības noteikšanai.
Mums ir plašs diapazons,
un kaudzēm dažādas informācijas,
kā jau minēju, par filmām,
politiku,
reliģiju,
par visu.
Arī intuitīvi tas šķiet loģiski.
Diviem cilvēkiem, kuru saderība vienam ar otru ir 50%,
vajadzētu būt labākam pārim
nekā diviem citiem, kuru saderība ir attiecīgi 0 un 100,
jo pievilcībai jābūt abpusējai.
Pievienojot nelielu korekciju kļūdas robežai
tiem gadījumiem, kad jautājumu skaits ir pavisam neliels
kā šajā piemērā,
mēs esam gatavi startam.
Ikreiz, aprēķinot divu cilvēku saderību,
OkCupid iziet cauri nupat aprakstītajam.
Vispirms tas savāc datus par jūsu atbildēm,
tad salīdzina jūsu izvēles un vēlmes
ar citiem cilvēkiem vienkāršā un matemātiskā veidā.
Šī spēja reālās pasaules parādību
pārveidot tā, lai mikroshēma to spētu saprast,
ir, manuprāt,
vissvarīgākā spēja, kāda cilvēkam mūsdienās var būt.
Tāpat kā jūs izmantojat teikumus, lai kaut ko pastāstītu cilvēkam,
mēs izmantojam algoritmus, lai pastāstītu lietas datoram.
Iemācoties valodu,
jūs varat doties pasaulē un stāstīt savus stāstus.
Es ceru, ka šis palīdzēs jums to izdarīt.
Witam, nazywam się Christian Rudder.
Jestem jednym z założycieli OK Cupid.
To jeden z największych portali randkowych w USA.
Jak niemal każdy z założycieli,
skończyłem matematykę,
dlatego nasz portal stosuje metodę analityczną
wobec miłości.
Nazywamy to algorytmem dopasowania.
Ten algorytm pomaga nam stwierdzić,
czy dwoje ludzi powinno umówić się na randkę.
Na tej zasadzie zbudowaliśmy cały biznes.
Algorytm to takie wyszukane słowo,
a ludzie lubią czuć, że robią coś wielkiego
ale tak naprawdę, algorytm to po prostu
metoda rozwiązywania problemów krok po kroku.
To wcale nie jest takie niezwykłe.
W tej lekcji pokażę,
jak doszliśmy do naszego algorytmu,
żebyś rozumiał, jak to robimy.
Właściwie dlaczego te algorytmy są ważne?
Po co ta cała lekcja?
Jak wcześniej powiedziałem,
to metoda rozwiązywania problemów krok po kroku
a jak wiesz,
komputery są w tym świetne.
Komputer bez algorytmu
to tylko droga kupa złomu.
A ponieważ komputery są wszechobecne
algorytmy są wszędzie.
Matematyka do algorytmu w portalu OK Cupid
jest bardzo prosta.
Trochę dodawania,
mnożenia,
i pierwiastków.
Cały trick polega na tym,
żeby umieć przerobić coś zagadkowego,
czyli lubienie innych ludzi,
na kroki, które komputer może wykonać.
Najpierw potrzebujemy od ludzi danych,
bo użyjemy ich do naszego algorytmu.
Najprościej jest zwyczajnie
zadawać ludziom pytania.
W OK Cupid znajdziesz pytania takie jak:
"Czy chcesz mieć kiedyś dzieci?"
"Jak często myjesz zęby?"
"Czy lubisz straszne filmy?"
i poważne pytania, np. "Czy wierzysz w Boga?".
Wiele pytań pozwala
dopasować ludzi,
kiedy oboje odpowiedzą na dane pytanie tak samo.
Np. kiedy oboje lubią straszne filmy,
będą lepiej do siebie pasować,
niż kiedy jedno je lubi,
a drugie nie.
Ale przy pytaniu typu:
"Czy lubisz być w centrum uwagi?",
jeśli oboje w związku to lubią,
to będą mieć poważne problemy.
Przewidzieliśmy to,
więc postanowiliśmy uzyskać
nieco więcej danych przy takich pytaniach.
Zapytaliśmy ludzi nie tylko o ich odpowiedź,
ale też, jakiej odpowiedzi chcą od drugiej osoby.
To był dobry pomysł,
ale brakowało jeszcze jednego wymiaru.
Niektóre pytania mówią więcej o osobie, niż inne.
Np. pytanie o politykę:
"Co jest gorsze: palenie książek czy palenie flag?"
może ujawnić więcej o osobie, niż gust filmowy.
A ponieważ nie wszystko ma takie samo znaczenie,
dodaliśmy jeszcze jeden parametr.
Przy każdym pytaniu w OK Cupid
jest wskaźnik
jak dana sprawa jest ważna dla ciebie
w skali od "nieważne" do "konieczne".
Czyli teraz dla każdego pytania
mamy 3 parametry dla naszego algorytmu:
1. twoja odpowiedź
2. czego chcesz od drugiej osoby –
potencjalnego partnera,
jak ta osoba ma odpowiedzieć
3. jak ważna dana sprawa jest dla ciebie.
Na bazie tych danych
OK Cupid wylicza, czy dwoje ludzi do siebie pasuje.
Algorytm przelicza dane i podaje wynik.
Na przykład,
spróbujmy dopasować ciebie do drugiej osoby,
nazwijmy go "B".
Twoja zgodność z B opiera się
na odpowiedziach podanych przez was oboje.
Nazwijmy sumę tych pytań "s".
Weźmy tylko kilka pytań dla naszego "s"
np. dwa pytania
i obliczmy, co wyjdzie.
Powiedzmy takie dwa pytania:
1. "Czy jesteś bałaganiarzem?"
możliwe odpowiedzi to:
tak, bardzo bałaganię,
przeciętnie
jestem bardzo zorganizowany.
Załóżmy, że twoja odpowiedź to "bardzo zorganizowany",
i chcesz, żeby druga osoba odpowiedziała podobnie
i ta sprawa jest dla ciebie bardzo istotna.
Po prostu nie tolerujesz bałaganu.
Ma być porządek,
i druga osoba też ma utrzymywać porządek
i kropka.
Teraz powiedzmy, że B jest nieco inny.
Jest bardzo zorganizowany,
ale wystarczy mu przeciętny porządek,
jako wymaganie stawiane drugiej osobie,
a cała sprawa jest dla niego prawie nieistotna.
Przejdźmy do drugiego pytania.
Użyjmy pytania, które pojawiło się wcześniej:
"Czy lubisz być w centrum uwagi?".
Możliwe opcje to "tak" i "nie".
Odpowiadasz "nie",
i wolisz, żeby druga osoba też powiedziała "nie",
a ta sprawa nie ma dla ciebie znaczenia.
Ale B odpowiedział "tak",
chce, żeby druga osoba powiedziała "nie",
bo chce, żeby cała uwaga skupiła się na nim,
i jest to dla niego trochę istotne.
Teraz spróbujmy to przekalkulować.
Na początku,
ponieważ używamy komputera,
musimy przyporządkować wartości numeryczne
do odpowiedzi typu "dosyć istotne" i "bardzo ważne",
bo komputer rozumie tylko liczby.
W portalu OK Cupid robimy to tak:
"nieważne" ma wartość 0,
"nieco istotne" = 1,
"dość istotne" = 10,
"bardzo istotne" = 50,
"absolutnie niezbędne" = 250.
Teraz nasz algorytm przelicza.
Najpierw sprawdza ile odpowiedzi udzielonych przez B odpowiada twoim,
tzn. ile punktów uzyskał na twojej skali.
Dla ciebie odpowiedź osoby B
na pytanie o bałaganiarstwo,
była bardzo ważna.
Czyli na wartość 50 punktów, jeśli B odpowie prawidłowo.
Drugie pytanie ma wartość zaledwie 1
bo powiedziałaś, że jest tylko nieco istotne,
a B odpowiedział coś innego.
Czyli odpowiedzi B to 50 na 51 możliwych punktów.
To 98% zgodności.
Nieźle.
Drugi krok w algorytmie to to,
jak bardzo twoje odpowiedzi zgadzają się z B.
B przyznał 1 punkt twojej odpowiedzi
na pytanie o bałaganiarstwo,
a 10 – twojej odpowiedzi na drugie pytanie.
1 + 10 = 11, i z tych 11.
uzyskałeś 10,
bo w drugim pytaniu podałaś pożądaną odpowiedź.
Więc twoje odpowiedzi to 10 punktów na 11,
co daje 91% zgodności.
Też nieźle.
Ostatni krok to porównanie tych dwóch procentów
i ustalenie procentu ogólnego dla was obojga.
Teraz algorytm mnoży wasze wyniki
następnie wyciąga z nich n-ty pierwiastek,
gdzie n to liczba pytań
bo s, czyli suma pytań
w naszym przykładzie wynosiła 2.
Procent zgodności równa się
pierwiastkowi kwadratowemu z 98% razy 91%
czyli 94%.
To 94% to twoja zgodność z osobą B.
To matematyczny zapis tego,
jak szczęśliwi możecie być ze sobą
na podstawie podanych odpowiedzi.
Możesz zapytać, dlaczego algorytm mnoży,
a nie np. wyciąga średnią z obu wyników
i po co wyciąga pierwiastek.
Ta zasada nosi nazwę średniej geometrycznej,
która jest dobrym sposobem porównywania wartości,
które mają szeroki zakres
i odpowiadają wielu różnym wartościom.
Innymi słowy, jest idealna dla szukania partnera.
Mamy tu szeroki zakres
i ogromną liczbę parametrów
jak już wspomniałem: filmy,
polityka,
religia,
wszystko.
To ma też intuicyjny sens.
Dwoje ludzi ze zgodnością 50%
będzie bardziej do siebie pasować,
niż dwoje ze zgodnością 0 i 100,
bo uczucie musi być wzajemne.
Po drobnych poprawkach i z marginesem błędu,
kiedy mamy małą liczbę pytań,
jak w naszym przykładzie,
jesteśmy gotowi na randkę.
Gdy OK Cupid swata dwoje ludzi
wykonuje kroki, które właśnie widzieliśmy.
Najpierw prosi o odpowiedzi na pytania,
potem matematycznie porównuje twoje preferencje
z odpowiedziami innych osób.
Zdolność przekształcenia zjawisk w realnym życiu
w dane, które procesor może zrozumieć
jest według mnie
najważniejszą umiejętnością w dzisiejszych czasach.
Ludzie mówią zdaniami, żeby coś przekazać,
komputery zaś używają do komunikacji algorytmów.
Kiedy uczysz się języka,
możesz coś w nim opowiedzieć.
Mam nadzieję, że teraz będzie ci łatwiej.
Olá, chamo-me Christian Rudder
e fui um dos fundadores do OKCupid.
É um dos maiores sites de encontros nos EUA.
Como quase toda a gente no site,
eu sou formado em matemática
e somos conhecidos pela abordagem analítica ao amor.
Chamamos-lhe o nosso algoritmo casamenteiro.
O algoritmo casamenteiro do OKCupid
ajuda-nos a decidir se duas pessoas se deveriam encontrar.
Construímos todo um negócio à volta disso.
Algoritmo é uma palavra cara,
e as pessoas gostam de a usar como se fosse uma coisa muito especial,
mas não passa de uma maneira sistemática,
de resolver um problema passo-a-passo.
Não tem que ser nada de especial.
Nesta lição, vou explicar
como chegamos ao nosso algoritmo em particular
para verem como se faz.
Porque é que os algoritmos são importantes?
Porque é que esta lição existe?
Reparem na frase muito significativa que eu usei:
são uma maneira de, passo-a-passo, resolver um problema.
Como sabem, os computadores são excelentes
em processos passo-a-passo.
Um computador sem algoritmo
não é passa de um pisa-papéis caro.
Como os computadores são uma parte dominante do dia-a-dia,
os algoritmos estão por todo o lado.
A matemática do algoritmo do OKCupid
é surpreendentemente simples.
É só somar, multiplicar
e algumas raízes quadradas.
A parte complicada de o desenhar,
foi entender como transformar algo misterioso,
a atração humana,
e decompô-la em componentes com que um computador pudesse trabalhar.
Precisávamos de informação para "casar" as pessoas,
para que o algoritmo pudesse trabalhar.
A melhor forma de conseguir informações das pessoas é pedir-lhas.
Portanto, o OKCupid devia fazer perguntas aos utilizadores, como:
"Quer vir a ter filhos?"
"Com que frequência lava os dentes?",
"Gosta de filmes de terror?"
e coisas importante como "Acredita em Deus?"
Convém haver muitas perguntas
para se encontrarem pontos em comum,
ou seja, duas pessoas darem a mesma resposta.
Por exemplo, duas pessoas que gostam de filmes de terror
devem dar-se melhor do que uma que gosta e outra que não.
Mas se for uma pergunta como:
"Gosta de ser o centro das atenções?"
Se as duas pessoas numa relação dizem que sim,
então vão ter grandes problemas.
Depressa percebemos isto,
por isso precisávamos de mais informações em cada pergunta.
Pedimos às pessoas para serem específicas na sua resposta
e também sobre a resposta que queriam da outra pessoa.
Isso resultou muito bem,
mas precisávamos de mais uma dimensão.
Algumas perguntas dizem mais sobre uma pessoa que outras.
Por exemplo, uma pergunta sobre política, tipo:
"O que é pior: queimar livros ou queimar a bandeira?"
pode ser mais reveladora do que a sua preferência em filmes.
Não faz sentido dar o mesmo peso a tudo,
portanto adicionámos um novo ponto de informação.
Em todas as perguntas que o OKCupid faz,
podem dizer-nos o papel que desempenha na vossa vida,
Isto varia de "irrelevante" a "obrigatório".
Portanto, para cada pergunta,
temos três pontos no nosso algoritmo:
primeiro, a vossa resposta;
segundo, a resposta que querem
que o vosso parceiro potencial, dê;
e terceiro, a importância que dão à pergunta..
Com todas estas informações,
o OKCupid pode perceber se duas pessoas se darão bem.
O algoritmo trabalha os números e dá um resultado.
Como exemplo prático,
vamos ver como vos sugeriríamos outra pessoa,
vamos chamar-lhe "B".
A percentagem de compatibilidade com B
baseia-se nas perguntas a que ambos responderam.
Vamos chamar "s" a este conjunto de perguntas comuns.
Como exemplo simples, usamos um conjunto "s" pequeno
apenas com duas perguntas comuns
e calculamos a compatibilidade a partir daí.
As duas perguntas são estas:
A primeira é: "É desarrumado?"
As possibilidades de resposta são:
muito desarrumado,
normal,
e muito organizado.
Se responderem "muito organizada",
querem que a outra pessoa responda "muito organizado",
e a pergunta for muito importante,
é porque têm a mania da arrumação.
É arrumada e quer que o outro seja arrumado,
Suponhamos que B é um pouco diferente.
Respondeu que é muito organizado,
mas que a outra pessoa pode ser apenas normal,
e que a pergunta não é importante para ele.
Vamos ver a segunda pergunta,
que é a do exemplo anterior:
"Gosta de ser o centro das atenções?"
As resposta são apenas sim e não.
Vocês respondem que "não", querem que o outro responda "não",
e a pergunta não é muito importante.
B respondeu "sim", quer que o outro responda "não",
porque quer que as atenções se concentrem nele,
e a pergunta é mais ou menos importante.
Vamos tentar calcular tudo isto.
Como usamos computadores para fazer isso,
o primeiro passo é atribuir valores numéricos
a ideias como "relativamente importante" e "muito importante"
porque os computadores precisam de tudo em algarismos.
No OKCupid optamos pela seguinte escala:
irrelevante vale 0,
pouca importância vale 1,
alguma importância vale 10,
muito importante vale 50,
e completamente obrigatório vale 250.
A seguir, o algoritmo faz dois simples cálculos.
O primeiro é: quanto é que as respostas de B lhe agradam,
isto é, quantos pontos obteve B na sua escala?
Como indicaram que a resposta de B
à primeira pergunta sobre arrumação
era muito importante,
isso vale 50 pontos e B acertou na resposta.
A segunda pergunta só vale 1
porque disseram que era pouco importante,
e B não acertou.
Portanto as respostas de B valem 50 em 51 pontos possíveis.
Isso é uma satisfação de 98%, É bastante bom.
O segundo cálculo do algoritmo
avalia se as vossas respostas satisfazem B.
B atribui 1 ponto à vossa resposta à pergunta da arrumação
e 10 à vossa resposta à segunda.
Desses 11, ou seja 1 mais 10, ganharam 10,
acertaram na segunda resposta um do outro.
Portanto as respostas deram 10 em 11
o que é 91% satisfatório para B.
Não é nada mau.
O passo final é pegar nas duas percentagens de compatibilidade
e obter um número para os dois.
Para isso, o algoritmo multiplica as pontuações,
depois calcula a raiz de n,
em que n é o número de perguntas.
Como s, que é o número de perguntas,
neste exemplo, é apenas 2,
temos uma percentagem de compatibilidade
igual à raiz quadrada de 98% vezes 91%.
Isto dá 94%.
Estes 94% são a vossa percentagem de compatibilidade com B.
É uma expressão matemática de como se darão bem
com base no que sabemos.
Porque é que o algoritmo multiplica,
em vez de fazer a média das duas percentagens
e depois fazer a raiz quadrada?
Esta fórmula chama-se média geométrica,
uma excelente forma de combinar valores
que apresentam grandes variações
e representam propriedades muito diferentes.
É perfeita para compatibilidade romântica.
Temos grandes variações e milhares de diferentes dados,
sobre filmes, sobre política,
sobre religião, sobre tudo.
De uma forma intuitiva, isto faz sentido.
Duas pessoas que correspondam a 50%
devem ser mais compatíveis
que outras que têm compatibilidade a 0 e 100,
porque o afeto tem que ser mútuo.
Depois de pequenas correções para permitir uma margem de erro,
se o número de perguntas for muito reduzido, como neste exemplo,
estamos prontos.
Sempre que o OKCupid compara duas pessoas,
segue os passos que acabámos de explicar.
Primeiro recolhe os dados das respostas,
depois compara as escolhas e preferências com outras pessoas
de forma simples e matemática.
Acho que esta capacidade de pegar em fenómenos do mundo real
e transformá-los em algo que um microchip consegue compreender,
é a capacidade mais importante que uma pessoa pode ter atualmente.
Tal como usamos frases para contar histórias às pessoas,
usamos algoritmos para contar histórias a um computador.
Se aprendermos a linguagem,
podemos sair e contar histórias.
Espero que isto vos ajude a fazer isso.
Oi, meu nome é Christian Rudder,
e eu fui um dos fundadores do OK Cupid.
Hoje em dia, é um dos maiores sites de namoro nos Estados Unidos.
Como quase todo mundo no site,
Eu era um matemático, e, como vocês podem esperar,
somos conhecidos pela abordagem analítica
que adotamos para amar.
Chamamos isso de algoritmo compatível.
Basicamente do algoritmo compatível do OK Cupid
nos ajuda a decidir se duas pessoas devem sair juntas.
Nós construímos todo nosso negócio em torno disto.
Agora, algoritmo é uma palavra pomposa,
e as pessoas gostam de pensar que é grande coisa,
mas, realmente, um algoritmo é apenas sistemático,
um modo de resolver um problema passo-a-passo.
Não precisa ser pomposa de jeito nenhum.
Aqui, nesta lição, irei explicar
como chegamos em nosso algoritmo particular
então você pode ver como é feito.
Agora, porque algoritmos são importantes?
Porque esta lição existe?
Bem, perceba uma frase significante que usei acima:
há uma forma de resolver um problema passo-a-passo,
e, como você provavelmente sabe,
computadores excedem processos passo-a-passo.
Um computador sem algoritmo
é basicamente um peso de papel caro.
E desde que computadores são parte ocupantes da vida diária,
algoritmos estão em toda parte.
A matemática por trás do algoritmo compatível do OK Cupid
é surpreendentemente simples.
É apenas uma adição,
multiplicação,
um pouco de raízes quadradas.
A parte difícil em projetar isto, de qualquer forma,
foi compreender em como pegar algo misterioso,
como a atração humana,
e quebrá-la em componentes em que um computador possa trabalhar.
Bem, a primeira coisa que precisamos para unir pessoas eram dados,
algo para o algoritmo poder trabalhar.
A melhor forma de conseguir esses dados rapidamente das pessoas
é simplesmente perguntar.
Então, decidimos que o OK Cupid deveria fazer perguntas aos usuários,
coisas como, "Você quer ter filhos um dia?"
e "Com que frequência você escova seus dentes?",
"Você gosta de filmes de terror?"
e coisas grandes como "Você acredita em Deus?"
Agora, muitas das perguntas são boas
para combinar gostos com gostos,
isso é quando ambos respondem da mesma forma.
Por exemplo, duas pessoas que gostam de filmes de terror
são provavelmente uma melhor combinação
que uma pessoa que gosta
e a outra que não gosta.
Mas e quanto a questão como,
"Você gosta de ser o centro das atenções?"
Se ambos em um relacionamento disserem sim pra essa,
então eles terão grandes problemas.
Percebemos isto mais cedo,
e então decidimos que precisariamos
de um pouco mais de dados para cada questão.
Tivemos que pedir as pessoas para especificar não apenas suas respostas,
mas a resposta que eles gostariam de ter da outra pessoa.
E isto funcionou muito bem,
mas precisamos de mais uma dimensão.
Algumas questões dizem mais sobre uma pessoa que outras
Por exemplo, uma questão sobre política, algo como,
"Qual é o pior: queimar livros ou bandeiras?"
podem revelar mais sobre alguém que seu gosto para filmes.
E não faz sentido pesar todos igualmente,
então adicionamos um principal dado final.
Para tudo que o OK Cupid lhe pergunta,
você tem a chance de nos dizer
a função que exerce na sua vida,
e isto abrange de irrelevante a obrigatório.
Então agora, para cada questão,
nós temos três coisas para nosso algoritmo:
primeiro, sua resposta;
segundo, como você quer que a outra pessoa,
seu parceiro em potencial,
responda;
e terceiro, e quão importante é esta questão para você.
Com toda essa informação,
OK Cupid pode calcular o quanto duas pessoas podem se dar bem.
O algoritmo mastiga os números e nos dá um resultado.
Como um exemplo prático,
vamos ver como combinamos você com outra pessoa,
vamos chamá-lo de "B".
Sua porcentagem de combinação com B é baseada em
questões que ambos responderam.
Vamos chamar isso de grupo de questões comuns, "s".
Como um exemplo muito simples, usamos um pequeno grupo "s"
com apenas duas questões em comum
e computar a combinação a partir disso.
Aqui estão duas questões exemplos.
A primeira, vamos dizer que é, "O quão bagunceiro você é?"
e as respostas possíveis são
muito bagunceiro,
normal,
e muito organizado.
E digamos que você respondeu "muito organizado,"
e você gostaria que o outro respondesse "muito organizado,"
e a questão é muito importante para você.
Basicamente você é um louco por organização.
Você é organizado
e quer que a outra pessoa seja organizada,
é isso.
E digamos que B é um pouco diferente.
Ele respondeu muito organizado para ele mesmo,
mas normal está OK para ele
como a resposta da outra pessoa,
e a questão é só um pouco importante para ele.
Vamos ver a segunda questão,
é uma do nosso exemplo anterior:
"Você gosta de ser o centro das atenções?"
As respostas são apenas sim e não.
Agora você respondeu "não,"
como você quer que a outra pessoa responda é "não,"
e a questão é apenas um pouco importante para você.
Agora B, ele respondeu "sim,"
ele quer que a outra pessoa responda "não,"
porque ele quer as atenções voltadas para ele,
e a questão é um tanto importante para ele.
Então, vamos tentar computar tudo isso.
Nosso primeiro passo é,
desde que usamos computadores para fazer isto,
precisamos determinar valores numéricos
a ideias como "um tanto importante" e "muito importante"
porque computadores precisam de tudo em números.
Nós do OK Cupid decidimos no parâmetro a seguir:
irrelevante vale 0,
um pouco importante vale 1,
um tanto importante vale 10,
muito importante vale 50,
e absolutamente obrigatório vale 250.
Depois, o algoritmo faz dois cálculos simples,
O primeiro é o quanto as respostas de B satisfazem você,
isto é, quantos pontos possíveis B fez no seu parâmetro?
Bem, você indicou que a resposta de B
para a primeira questão sobre bagunça
era muito importante para você.
Vale 50 pontos e B fez isso certo.
A segunda questão só vale 1
porque você disse que era apenas um pouco importante,
e B não se deu bem nessa.
Então, as respostas de B foram 50 de 51 pontos.
Isso é 98% satisfatório.
É muito bom.
E, a segunda questão do algoritmo olha
é quanto você satisfez B.
Bem, B fez 1 ponto na sua resposta
para a questão da bagunça
e 10 na sua resposta para a segunda.
Daquelas, 11, é 1 mais 10,
você ganhou 10,
vocês se satisfazem um ao outro na segunda questão.
Então suas respostas foram 10 de 11
igual a 91% satisfatório para B.
Isso não é ruim.
O passo final é pegar estas duas porcentagens combinantes
e tirar um número para vocês.
Para fazer isso, o algoritmo multiplica seus pontos,
então tira a raiz de n,
onde n é o número de questões.
Porque s, que é o número de questões,
nessa amostra, é apenas 2,
nós combinamos a porcentagem igualmente
a raiz quadrada de 98% vezes 91%.
É igual a 94%.
Essse 94% é sua combinação de porcentagem com B.
É uma expressão matemática
de quão feliz vocês seriam um com o outro
baseados no que sabemos.
Agora, porque o algoritmo multiplica como oposto da, digamos,
média de duas pontuações combinantes juntas
e o caso da raiz quadrada?
Em geral, esta fórmula é chamada de média geometrica,
que é uma ótima maneira de combinar valores
que tem amplos alcances
e representa propriedades muito diferentes.
Em outras palavras, é perfeito para combinação romântica.
Você tem amplos alcances
e você tem uma tonelada de dados diferentes,
como eu disse, sobre filmes,
sobre política,
sobre religião,
sobre tudo.
Intuitivamente, isso faz sentido também.
Duas pessoas satisfazem 50% uma a outra
deveria ser uma melhor combinação
que os outros que satisfazem 0 e 100,
porque afeição precisa ser mútua.
Depois de adicionar um pouco de correção para margem de erro,
no caso, quando temos um pequeno número de questões
como temos nesse exemplo,
estamos prontos.
Qualquer momento o OK Cupid combina duas pessoas,
vai além dos passos que esboçamos.
Primeiro coleta-se dados sobre suas respostas,
aí compara suas escolha e preferências
com outras pessoas, de maneira simples e matemática.
Isto, a habilidade de pegar o fenômeno do mundo real
e fazer dele algo que um microchip possa entender,
é, eu acho,
a habilidade mais importante que alguém pode ter hoje em dia
Como usar sentenças para contar uma história a alguém,
você usa os algoritmos para contar uma história ao computador.
Se você aprender a língua,
você pode sair e contar suas historias.
Espero que isto lhe ajude a fazer isso.
Bună, mă numesc Christian Rudder,
și am fost unul dintre fondatorii OK Cupid.
E printre cele mai mari site-uri de dating din SUA.
Ca mai toți de la site, am terminat matematica
și cum deja știți,
suntem faimoși pentru viziunea analitică asupra iubirii.
Îl numim algoritmul potrivirii. Algoritmul Ok Cupid
ne ajută să aflăm dacă doi oameni ar putea ieși la o întâlnire.
Întreaga noastră afacere se bazează pe el.
„Algoritm" e un termen pretențios,
iar oamenii îl folosesc ca pe ceva important,
însă, de fapt, un algoritm e doar o cale sistematică de a rezolva o problemă.
Nu are de ce să fie pretențios.
În această lecție voi explica
cum am creat și cum folosim acest algoritm special.
Care e importanța algoritmilor?
De ce există de fapt?
Rețineți una dintre frazele folosite anterior:
sunt căi sistematice spre rezolvarea unei probleme,
și, după cum știți,
calculatoarele excelează la astfel de procese.
Un computer fără algoritm e practic un teanc de hârtii costisitor.
Și cum aceasta sunt esențiale vieții de zi cu zi,
algoritmii sunt pretutindeni.
Matematica folosită de algoritmul nostru e surprinzător de simplă.
Constă în adunare, înmulțire și câteva operații cu radicali.
Dificultatea întâlnită la construirea lui a constat în felul în care ceva misterios,
ca atracția umană,
poate fi transformată în ceva procesat de calculatoare.
Întâi am avut nevoie de date pentru a potrivi oamenii,
ce erau apoi prelucrate de algoritm.
Cel mai bun mod de a le obține de la oameni
e pur și simplu să întrebi.
Am decis ca OK Cupid să pună întrebări utilizatorilor
precum, „Vă doriți copii într-o bună zi?"
„De câte ori vă spălați pe dinți?"
„Vă plac filmele de groază?"
și lucruri mai importante precum „Credeți în Dumnezeu?"
Majoritatea întrebărilor ajută la găsirea similarităților
când două persoane răspund la fel.
Astfel, doi oameni cărora le plac filmele de groază
ar fi un cuplu mai bun
decât cineva căruia-i plac și altcineva căruia îi displac.
Dar cu întrebări ca
„Doriți să fiți în centrul atenției?"
Dacă ambii parteneri răspund da, atunci s-ar putea să aibă mari probleme.
Am realizat asta din timp și am decis că aveam nevoie
de mai multe detalii la fiecare întrebare.
Am rugat oamenii să specifice nu doar propriul răspuns,
ci și cel dorit de la partener.
A funcționat bine, dar aveam nevoie de încă o dimensiune.
Unele întrebări oferă mai multe detalii decât altele.
De exemplu, o întrebare legată de politică precum:
„Ce e mai rău, incendierea cărților sau cea a drapelului?"
poate dezvălui mai mult decât gustul cuiva în filme.
Cum nu toate lucrurile pot fi evaluate la fel,
am adăugat un aspect final datelor.
Pentru toate întrebările de la OK Cupid, puteți specifica
rolul acestora în viața dumneavoastră, de la irelevant la obligatoriu.
Deci la fiecare întrebare, algoritmul dispune acum de trei lucruri:
răspunsul dumneavoastră;
apoi, cum doriți ca posibila pereche să răspundă,
și, în final, importanța întrebării pentru dumneavoastră.
Cu aceste informații,
OK Cupid poate stabili dacă doi oameni se potrivesc.
Algoritmul preschimbă numerele în rezultate.
Uitați un exemplu practic:
să vedem cum putem să vă potrivim cu o altă persoană, să zicem B.
Rata compatibilității cu B depinde de întrebările răspunse în comun.
Să le spunem întrebărilor comune „s".
Într-un exemplu simplu, folosim un set „s" limitat,
cu doar două întrebări în comun, după care vom calcula compatibilitatea.
Uitați cele două întrebări exemplu.
Să zicem că prima e: „Cât de dezordonat sunteți?"
iar răspunsurile posibile sunt:
foarte dezordonat, acceptabil și foarte organizat.
Să zicem că ați răspuns „foarte organizat"
și doriți pe altcineva cu același răspuns,
iar întrebarea e foarte importantă pentru dumneavoastră.
Adică sunteți foarte îngrijit.
Sunteți îngrijit, și doriți ca și celălalt să fie așa.
Să spunem că B e puțin diferit.
Deși a răspuns foarte organizat, „acceptabil” e tot un răspuns bun
și întrebarea e puțin relevantă pentru el.
să ne uităm la a doua întrebare, cea din exemplul anterior:
„Vă place să fiți în centrul atenției?"
Răspunsurile pot fi doar da sau nu.
Ați răspuns „nu", doriți ca și celălalt să răspundă „nu",
iar întrebarea e doar puțin importantă.
B a răspuns „da", vrea ca celălalt să răspundă „nu",
astfel ca el să fie în centrul atenției,
iar întrebarea e destul de importantă pentru el.
Să calculăm toate acestea.
Primul pas este, devreme ce folosim calculatoare,
să atribuim valori numerice
ideilor ca „destul de important" și „foarte important",
deoarece calculatoarele pot procesa doar cifre.
Aici, la OK Cupid, am ales următoarea scală:
„irelevant" are valoarea 0, „puțin important" valorează 1,
„destul de important" valorează 10,
„foarte important" înseamnă 50 și „obligatoriu" 250.
Apoi, algoritmul efectuează două operații simple.
Prima calculează în ce măsură v-a mulțumit răspunsul lui B,
adică, numărul posibil de puncte obținut de B pe scala dumneavoastră.
Ați menționat că răspunsul dat de B la prima întrebare legată de dezordine
contează foarte mult.
Valorează deci 50 de puncte și B a răspuns corect.
A doua întrebare valorează doar 1, fiind puțin importantă,
iar B a răspuns greșit.
Deci răspunsurile lui B valorează 50 de puncte din 51.
Sau satisfacție de 98%.
Destul de bine.
A doua întrebare verificată de algoritm e cât de mult l-ați mulțumit pe B.
Pentru B răspunsul la prima întrebare valorează un punct și 10 la cea de-a doua.
Din cele 11 puncte, adică 1 plus 10, ați obținut 10,
mulțumindu-vă reciproc la a doua întrebare.
Răspunsurile date au obținut 10 din 11, adică 91% satisfacție pentru B.
Nu e deloc rău.
La urmă se obține un singur număr pentru ambii parteneri din cele două procentaje.
Pentru asta, algoritmul vă înmulțește scorurile,
apoi extrage un radical de ordin n, unde n înseamnă numărul întrebărilor.
Deoarece s, sau numărul întrebărilor, din acest exemplu e doar 2,
scorul final va însemna rădăcina pătrată din 98% înmulțit cu 91%.
Adică 94%.
Acel 94% semnifică compatibilitatea cu B.
Sau expresia matematică a fericirii determinată de ceea ce cunoaștem deja.
De ce folosim înmulțirea și nu extragem radical din media celor două punctaje?
Formula se numește medie geometrică,
un mod bun de a combina valori numerice extinse reprezentând proprietăți diferite.
Ideală pentru compatibilitatea romantică.
Aveți mulțimi variate și tone de informații
despre filme, politică, religie, practic despre orice.
Acest lucru se înțelege chiar și intuitiv.
Când doi oameni se satisfac 50%, aceștia ar face un cuplu mai bun
decât doi oameni ce se satisfac în materie de 0, respectiv 100%,
fiindca iubirea trebuie împărtășită.
Mai adăugăm o mică corecție marginii de eroare,
dacă avem, să zicem, un număr mic de întrebări, ca în exemplu,
și suntem practic gata.
Atunci când OK Cupid combină doi oameni, se urmează pașii menționați.
Întâi se adună informația din răspunsurile date,
apoi vi se compară alegerile și preferințele
cu cele ale altora, prin procese matematice simple.
Abilitatea de a transforma date reale
în ceva ce poate fi utilizat de un microcip este, cred eu,
cea mai importantă aptitudine a cuiva în ziua de azi.
Așa cum folosiți fraze pentru a relata ceva,
folosiți algoritmi pentru a povesti ceva unui computer.
Învățând limbajul, vă puteți împărtăși poveștile.
Sper ca asta să vă fie de ajutor.
Здравствуйте, я Кристиан Раддер,
я один из основателей OkCupid.
Сейчас это один из крупнейших сайтов знакомств в США.
Как многие на этом сайте,
я математик, и логично,
что мы аналитически подходим к любви.
Мы называем это алгоритмом совмещения.
В общем, алгоритм OkCupid
помогает нам определить, стоит ли паре людей сходить на свидание.
Мы построили на этом весь наш бизнес.
Алгоритм — умное словечко,
и люди любят бросаться им как чем-то сложным,
но на самом деле это просто упорядоченная,
пошаговая инструкция для решения проблемы.
Ей вовсе не нужно быть сложной.
В этом уроке я объясню,
как мы пришли к такому алгоритму,
и вы увидите, как всё работает.
А почему вообще важны алгоритмы?
Зачем вообще этот урок?
Обратите внимание на фразу, сказанную мной ранее:
пошаговые инструкции для решения проблем,
и, как известно, компьютеры прекрасно с этим справляются.
Компьютер без алгоритма —
по сути, дорогое пресс-папье.
А раз компьютеры встречаются на каждом шагу,
алгоритмы тоже повсюду.
Математика алгоритма OkCupid удивительно проста.
Немного сложения, умножения и чуть-чуть квадратных корней.
Хотя при его разработке была сложность
в понимании того, как взять нечто загадочное —
привлекательность —
и разбить на части, с которыми может работать компьютер.
Сначала для совмещения людей потребовались их данные,
что-то, с чем мог бы работать алгоритм.
Лучший способ быстро их получить — просто попросить.
И мы решили, что OkCupid будет задавать вопросы вроде:
«Хотите ли вы когда-нибудь завести детей?»,
«Как часто вы чистите зубы?»,
«Нравятся ли вам фильмы ужасов?»
А также важные вещи вроде: «Верите ли вы в Бога?»
Многие вопросы хороши для поиска совпадений,
то есть когда оба человека отвечают одинаково.
Например, два человека, которым нравятся ужастики,
наверняка более совместимы, чем те, у кого вкусы различаются.
Но как насчёт вопроса вроде:
«Любите ли вы быть в центре внимания?»
Если оба партнёра отвечают «да»,
у них будут огромные проблемы.
Мы сразу поняли это и решили, что нам нужно
больше информации в каждом вопросе.
Нужно просить людей не только выбрать свой ответ,
но и ответ, который они бы хотели получить от партнёра.
Это сработало отлично, но нам нужно было ещё одно измерение.
Одни ответы говорят о человеке больше, чем другие.
Например, вопрос о политике:
«Что хуже: сжечь книгу или флаг?»,
мог бы сказать больше, чем предпочтения в фильмах.
И неверно придавать вопросам одинаковый вес,
поэтому мы добавили заключительный пункт.
В каждом вопросе, задаваемом OkCupid,
можно отметить, насколько важен для вас тот или иной аспект, —
в диапазоне от безразличия до обязательности.
Теперь для каждого вопроса у нас есть три вещи в алгоритме:
первое — ваш ответ;
второе — предпочтительный ответ потенциального партнёра
и третье — важность этого вопроса для вас.
С помощью этой информации
OkCupid может понять, как сложатся отношения между людьми.
Алгоритм оперирует числами и выдаёт результат.
В качестве примера
посмотрим на вашу совместимость с другим человеком,
назовём его «B».
Процент совместимости с «B» основывается на вопросах, на которые вы оба ответили.
Назовём набор общих вопросов «S».
Для простоты мы возьмём маленький набор «S»,
всего из двух общих вопросов,
и вычислим совместимость на их основе.
Вот наши два вопроса.
Первый, допустим: «Насколько вы грязнуля?»
Возможные ответы:
«грязнуля», «средне» и «очень аккуратный».
Пусть вы «очень аккуратный»
и хотели бы, чтобы партнёр ответил так же,
а вопрос для вас очень важен.
В общем, вы аккуратист.
Вы чистюля и хотите, чтобы партнёр тоже был чистюлей.
Допустим, «В» немного другой.
Он ответил, что сам он «очень аккуратный»,
но «средняя» аккуратность его устроит в качестве ответа от партнёра,
а сам вопрос для него не очень важен.
Посмотрим на второй вопрос, мы его уже упоминали:
«Вам нравится быть в центре внимания?»
Ответы только «да» и «нет».
Вы ответили «нет», хотите, чтобы партнёр ответил «нет»,
а вопрос не очень важен.
Теперь «В»: он ответил «да»,
хочет, чтобы партнёр ответил «нет»,
потому что хочет быть в центре внимания,
а вопрос для него достаточно важен.
Давайте это всё вычислим.
Первый шаг, поскольку мы используем компьютеры, —
присвоить числовые значения
понятиям вроде «достаточно важно» и «очень важно»,
так как компьютеры понимают только числа.
В OkCupid мы используем такие величины:
«безразлично» — это 0,
«не очень важно» — это 1,
«достаточно важно» — это 10,
«очень важно» — 50
и «обязательно» — 250.
Теперь алгоритм делает два вычисления.
Первое: насколько ответы «B» удовлетворяют вас,
то есть сколько из возможных баллов «B» получил по вашим меркам?
Итак, вы обозначили, что ответ «В»
на первый вопрос про чистоплотность
был очень важен для вас.
Он стоит 50 баллов, и «В» ответил верно.
Второй вопрос стоит всего 1 балл,
потому что вы сказали, что он не очень важен,
а ответ «В» не подошёл.
Ответы «В» набрали 50 из 51 возможных баллов.
Это на 98% удовлетворительно. Довольно хорошо.
Второй пункт в алгоритме выясняет, насколько вы подходите «В».
«В» дал 1 балл вашему ответу про чистоплотность
и 10 ответу на второй вопрос.
Из этих 11 баллов, поскольку 1 плюс 10, вы заработали 10,
вы удовлетворили друг друга во втором вопросе.
Ваши ответы составляют 10 из 11, что на 91% подходит «В».
Это неплохо.
Последний шаг: взять проценты совместимостей
и получить одно число для вас обоих.
Чтобы это сделать, алгоритм перемножает ваши баллы
и извлекает N-ный корень,
где N — число вопросов.
Поскольку «S», число вопросов,
всего 2,
процент совместимости равняется
квадратному корню от 98%, умноженному на 91%.
Это 94%.
94% — ваша совместимость с «В».
Это математическое выражение вашей возможности счастья друг с другом,
основанное на том, что мы знаем.
Почему алгоритм умножает вместо того чтобы, например,
выводить среднее между баллами
и заниматься извлечением корней?
Эта формула — среднее геометрическое,
это отличный способ сочетать значения из больших диапазонов
и с очень разными свойствами.
То есть она идеальна для романтических соответствий.
Есть широкие диапазоны и кучи разных данных —
о кино, политике, религии — обо всём.
Это имеет смысл на уровне интуиции.
Два человека, удовлетворяющих друг друга на 50%,
более совместимы, чем два других, чей результат — 0 и 100,
потому что симпатия должна быть взаимной.
После небольшой корректировки предела погрешности,
в случае, если количество вопросов невелико,
как и у нас в примере,
всё готово.
Когда OkCupid находит пары,
он проходит через описанные выше шаги.
Сначала он собирает данные о ваших ответах,
потом совмещает ваши варианты и предпочтения
простыми, математическими способами.
Возможность брать явления реального мира
и делать их понятными микрочипу —
самый важный навык в наши дни.
Вы пользуетесь предложениями, чтобы рассказать историю человеку,
а алгоритмами — чтобы рассказать историю компьютеру.
Если вы выучите язык, вы можете рассказывать ваши истории.
Я надеюсь, это окажется вам полезным.
สวัสดีครับ ผมชื่อ คริสเตียน รัดเดอร์ (Christian Rudder)
และผมก็เป็นหนึ่งในผู้ก่อตั้ง โอเคคิวปิด (OKCupid)
ตอนนี้มันเป็นหนึ่งในเว็บหาคู่ ที่ใหญ่ที่สุดในอเมริกา
ก็เหมือน ๆ กับพนักงานส่วนใหญ่ที่นั่น
ผมจบเอกคณิตศาสตร์ และอย่างที่คุณคาด
พวกเราขึ้นชื่อในเรื่องการวิเคราะห์ข้อมูล
พวกเราได้นำมันมาใช้ในการหาคู่
พวกเราเรียกมันว่า อัลกอริทึมการจับคู่ (matching algorithm)
อัลกอริทึมที่ว่าของ โอเค คิวปิด
ช่วยเราในการตัดสินว่า คนสองคนนี้ควรไปเดทกันหรือไม่
มันเป็นหัวใจของบริษัทเราเลยล่ะ
อัลกอริทึม ฟังดูเป็นคำหรูหรา
ผู้คนชอบพูดถึงมันเหมือนว่ามันเป็นอะไรใหญ่โต
แต่จริง ๆ แล้ว อัลกอริทึม ก็เป็นแค่วิธีในการแก้ปัญหา
อย่างเป็นระบบและเป็นขั้นตอน
มันไม่จำเป็นต้องมีอะไรหรูหราเลยสักนิด
ในบทเรียนนี้ ผมจะอธิบายว่า
เราคิดอัลกอริทึมของเราขึ้นมาได้อย่างไร
คุณจะได้เห็นที่มาของมัน
แล้วทำไมอัลกอริทึมทั้งหลายจึงสำคัญ
ทำไมต้องมีบทเรียนอันนี้
สังเกตเห็นคำคำหนึ่งที่ผมได้พูดไปไหม
พวกมันเป็นวิธีแก้ปัญหาอย่างเป็นขั้นเป็นตอน
บางทีคุณอาจจะรู้อยู่แล้วว่า
คอมพิวเตอร์เก่งในเรื่องการทำงานเป็นขั้นตอน
คอมพิวเตอร์ที่ปราศจากอัลกอริทึม
ก็เป็นแค่ที่ทับกระดาษแพง ๆ
และเนื่องจากคอมพิวเตอร์นั้น พบได้ทั่วไปในชีวิตประจำวัน
อัลกอริทึมจึงมีอยู่ทุกหนทุกแห่ง
คณิตศาสตร์เบื้องหลังอัลกอริทึมการจับคู่ ของโอเค คิวปิด นั้น
เรียบง่ายจนน่าตกใจ
มันใช้แค่ การบวก
การคูณ
และการถอดราก นิดหน่อย
แต่จุดที่ยากในการออกแบบมัน
ก็คือว่า จะทำอย่างไรกับข้อมูลที่ดูลึกลับ
อย่างแรงดึงดูดระหว่างคนสองคน
และย่อยมันเป็นองค์ประกอบ ที่คอมพิวเตอร์สามารถนำไปวิเคราะห์ได้
เอาล่ะ สิ่งแรกที่จำเป็น สำหรับการจับคู่ก็คือ ข้อมูล
อะไรบางอย่างที่อัลกอริทึมเอาไปใช้
วิธีที่ดีที่สุดที่จะได้ข้อมูลจากผู้คน
ก็คือ การถามจากพวกเขานั่นเอง
เราจึงตัดสินใจว่า โอเค คิวปิด ควรถามคำถามกับผู้ใช้งาน
อย่างเช่น "ในอนาคต คุณต้องการมีลูกหรือไม่"
และ "คุณแปรงฟันบ่อยแค่ไหน"
"คุณชอบหนังสยองขวัญหรือไม่"
หรือคำถามหนัก ๆ อย่าง "คุณเชื่อในพระเจ้าหรือไม่"
ทีนี้ หลาย ๆ คำถามนั้นเป็นประโยชน์
สำหรับการจับคู่คนที่ชอบอะไรเหมือน ๆ กัน
นั่นเกิดขึ้นเมื่อคู่ตอบคำถาม ไปในทางเดียวกัน
เช่น คนสองคนที่เป็นแฟนหนังสยองขวัญ
ก็น่าจะเข้ากันได้ดี
มากกว่า กรณีที่คนนึงชอบ
แต่อีกคนไม่ชอบ
แล้วถ้าเกิดเป็นคำถามอย่างเช่น
"คุณชอบที่จะตกเป็นจุดสนใจหรือไม่" ล่ะ
ถ้าเกิดคู่รักทั้งสอง ตอบใช่ทั้งคู่
นั่นคงจะทำให้เกิดปัญหาใหญ่ตามมา
พวกเราตะหนักดีถึงเรื่องเหล่านี้
เราจึงคิดว่าเราต้องการ
ข้อมูลที่ลึกลงไปอีกสำหรับแต่ละคำถาม
เราต้องการให้พวกเขา ไม่เพียงแค่ระบุคำตอบของพวกเขาเอง
แต่ยังต้องระบุคำตอบที่อยากได้จากอีกคนด้วย
ซึ่งมันให้ผลลัพธ์ที่ดีมาก
แต่เรายังต้องการอะไรเพิ่มอีกสักอย่าง
บางคำถามนั้นบอกคุณเกี่ยวคนคนหนึ่ง ได้ดีกว่าคำถามอื่น
เช่น คำถามเกี่ยวกับการเมือง อย่างเช่น
"อย่างไหนแย่กว่าระหว่าง เผาหนังสือ กับ เผาธง"
อาจเผยให้เห็นตัวตนของคนคนหนึ่ง ได้ดีกว่าคำถามเกี่ยวกับหนัง
มันดูไม่มีเหตุผล ที่จะให้ทุกคำถามมีน้ำหนักเท่ากันหมด
ดังนั้นเราจึงเพิ่มตัวแปรสุดท้ายเข้าไปอีกอันนึง
สำหรับทุก ๆ คำถามที่ โอเค คิวปิด ถามคุณ
คุณมีโอกาสที่จะบอกเรา
ว่าคุณซีเรียสกับมันแค่ไหน
ตั้งแต่เป็นเรื่องขี้ปะติ๋ว ไปจนถึงเป็นเรื่องคอขาดบาดตาย
ทีนี้ สำหรับทุก ๆ คำถาม
เราก็ได้ 3 สิ่งสำหรับอัลกอริทึมของเรา
หนึ่ง คำตอบของคุณเอง
สอง คำตอบที่คุณอยากให้คนอื่น
คนที่เป็นว่าที่คู่ของคุณ
ให้คำตอบ
และสาม คำถามนี้สำคัญกับคุณแค่ไหน
ด้วยข้อมูลทั้งหมดนี้
โอเคคิวปิด สามารถบอกได้ว่าคนสองคนนี้ จะไปกันได้ดีแค่ไหน
อัลกอริทึมจะวิเคราะห์ตัวเลขและให้ผลลัพธ์ออกมา
ลองมาดูตัวอย่างกัน
ดูซิว่า เราทำการจับคู่คุณเข้ากับคนอื่นได้อย่างไร
สมมติให้เขาชื่อ นายบี
เปอร์เซ็นต์ที่คุณจะคู่กับ นายบี ขึ้นอยู่กับ
คำถามที่คุณทั้งคู่ตอบ
เราตั้งชื่อมันว่า ชุดคำถามทั่วไป "เอส"
ในตัวอย่างนี้ เราใช้คำถามจากชุดคำถาม "เอส"
เพียงแค่ 2 คำถาม
นำมาคำนวนหาความเข้าคู่กัน
และนี่เป็นตัวอย่างคำถาม 2 ข้อนั้น
ข้อที่หนึ่ง "คุณเป็นคนซกมกแค่ไหน"
คำตอบก็เป็นได้ตั้งแต่
ซกมกสุด ๆ
ระดับปกติ
และเรียบร้อยสุด ๆ
สมมติว่าคำตอบของคุณคือ "เรียบร้อยสุด ๆ"
คุณก็คงจะอยากให้คู่ของคุณตอบ "เรียบร้อยสุด ๆ" เช่นกัน
และคำถามนี้ถือว่ามีความสำคัญกับคุณมาก
สำหรับคุณแล้วทุกอย่างต้องหมดจดเรียบร้อย
คุณเป็นคนเรียบร้อย
คุณต้องการให้อีกคนเป็นระเบียบเรียบร้อย
ก็แค่นั้นเอง
ส่วนนาย บี นั้นต่างออกไปเล็กน้อย
เขาตอบว่า "เรียบร้อยสุด ๆ" สำหรับตัวเขา
แต่ตอบว่า "ระดับปกติ" ก็โอเคสำหรับเขา
สำหรับคำตอบของอีกคน
และเขาก็ไม่ค่อยซีเรียสกับคำถามนี้สักเท่าไร
ทีนี้ลองมาดูคำถามที่สองกัน
มันมาจากหนึ่งในตัวอย่างก่อนโน้น
"คุณชอบที่จะตกเป็นจุดสนใจใช่หรือไม่"
คำตอบเป็นได้แค่ ใช่ กับ ไม่ใช่
ทีนี้คุณตอบว่า "ไม่ใช่"
คำตอบที่คุณอยากให้อีกคนตอบ คือ "ไม่ใช่"
และคำถามนี้ก็ไม่ค่อยสำคัญกับคุณสักเท่าไร
ส่วน นาย บี คำตอบของเขาคือ "ใช่"
คำตอบที่เขาอยากให้อีกคนตอบ คือ "ไม่ใช่"
เพราะเขาต้องการเป็นจุดเด่น
และคำถามนี้ก็ค่อนข้างสำคัญกับเขามาก
เราลองมาวิเคราะห์ผลทั้งหมดนี้กัน
อันดับแรก คือ
เนื่องจากเราต้องอาศัยคอมพิวเตอร์
เราจึงต้องกำหนดค่าต่าง ๆ เป็นตัวเลข
สำหรับคำตอบเช่น "ค่อนข้างสำคัญ" หรือ "สำคัญมาก"
เพราะคอมพิวเตอร์เข้าใจแต่ตัวเลข
พวกเราที่ โอเคคิวปิด กำหนดค่าต่าง ๆ ตามนี้
"ไม่สำคัญเลย" มีค่าเท่ากับ 0
"สำคัญเล็กน้อย" มีค่าเท่ากับ 1
"ค่อนข้างสำคัญ" มีค่าเท่ากับ 10
"สำคัญมาก" มีค่าเท่ากับ 50
"เป็นเรื่องคอขาดบาดตาย" มีค่าเท่ากับ 250
อัลกอริทึมก็จะทำการคำนวนง่าย ๆ 2 อย่าง
อย่างแรก คุณพึงพอใจคำตอบของ นายบี แค่ไหน
หรือก็คือ ความเป็นไปได้ของคะแนนของนายบี ตามระดับของคุณเป็นเท่าไร
คุณบอกว่า คำตอบของนายบี
สำหรับคำถามแรกเกี่ยวกับความซกมก
สำคัญมากสำหรับคุณ
มันจึงมีค่า 50 คะแนน และนายบีก็ตอบได้ถูกใจคุณ
ส่วนคำถามที่สองมีค่าแค่ 1
เพราะคุณบอกว่ามันสำคัญแค่เล็กน้อยเท่านั้น
และนายบีก็ตอบไม่เข้าเป้า
ดังนั้นคะแนนจากคำตอบของนายบี จึงเท่ากับ 50 เต็ม 51
หรือ คะแนนความพึงพอใจเท่ากับ 98%
ถือว่าดีทีเดียว
และ คำถามที่สองของที่อัลกอริทึมจะคำนวน
ก็คือนายบีจะพึงพอใจคุณแค่ไหน
สำหรับนายบี คำถามเรื่องระดับความซกมก
มีค่าแค่ 1 คะแนน
ส่วนคำถามข้อที่สองมีค่า 10 คะแนน
ดังนั้นคะแนนเต็ม 11 ซึ่งคือ 1 บวก 10
คุณก็ทำได้ 10 คะแนน
คุณทั้งคู่พึงพอใจกับคำถามที่สองของแต่ละฝ่าย
คุณได้คะแนน 10 เต็ม 11
เท่ากับสำหรับนายบีแล้ว คุณมีความพึงพอใจ 91%
มันก็ไม่เลวนัก
ขั้นตอนสุดท้ายก็คือ นำค่าเปอร์เซ็นต์ทั้งสองค่านั้น
ทำให้เป็นค่าเดียวกันสำหรับคุณทั้งสอง
โดยอัลกอริทึมจะนำค่าทั้งสองมาคูณกัน
แล้วถอดรากที่ n
โดย n คือจำนวนของคำถามทั้งหมด
แต่ s ซึ่งคือจำนวนคำถามในตัวอย่างนี้
มีแค่ 2 ข้อ
เปอร์เซ็นต์การจับคู่จึงเท่ากับ
รากที่สองของ 98% คูณ 91%
ซึ่งเท่ากับ 94%
94% ก็คือโอกาสที่คุณจะเข้ากันได้กับนายบี
มันเป็นค่าตัวเลขที่แสดงว่า
คุณน่าจะมีความสุขด้วยกันแค่ไหน
โดยอาศัยจากข้อมูลที่เรามี
แล้วทำไมอัลกอริทึมนี้ถึงต้องเอาค่ามาคูณกัน
แทนที่จะแค่หาค่าเฉลี่ยก็พอ
แถมยังมีการถอดรากอีกทำไมกัน
ทั่วไปแล้ว สูตรคณิตนี้มีชื่อว่า ค่าเฉลี่ยเรขาคณิต (Geometric Mean)
ซึ่งเป็นวิธีที่ดีที่ใช้ในการหาค่าเฉลี่ยของข้อมูล
ที่มีพิสัยของข้อมูลกว้าง
และมีที่มาของข้อมูลหลากหลาย
อีกนัยก็คือ มันเหมาะที่จะใช้กับการหาคู่มาก
คุณมีข้อมูลที่มีพิสัยกว้าง
คุณมีการให้คะแนนที่หลากหลายมาตรฐาน
อย่างที่เคยพูดถึงข้อมูลที่เกี่ยวกับภาพยนตร์
เกี่ยวกับการเมือง
เกี่ยวกับศาสนา
หรือในทุก ๆ เรื่อง
ลึก ๆ แล้ว มันดูเข้าท่า
คนสองคนที่มีระดับความพึงพอใจต่อกันที่ 50%
ควรจะเข้ากันได้ดีกว่า
กรณีระดับความพอใจ ที่คนนึงได้ 0 แต่อีกคนได้ 100
เพราะความรักเป็นเรื่องระหว่างคนสองคน
หลังจากที่เราปรับแก้เล็กน้อย สำหรับค่าความคลาดเคลื่อน
ในกรณีที่ชุดคำถามมีคำถามน้อยมาก ๆ
เหมือนที่ทำในตัวอย่าง
มันก็พร้อมใช้งานได้จริง
เมื่อใดก็ตามที่ โอเคคิวปิด จับคู่ระหว่างคนสองคน
มันก็จะทำไปตามขั้นตอนอย่างที่ได้กล่าวไป
เริ่มจาก รวบรวมคำตอบของคุณ
ต่อมา เปรียบเทียบคำตอบและความชอบของคุณ
กับคนอื่น ด้วยคณิตศาสตร์ง่าย ๆ
การที่เราสามารถ นำปรากฎการณ์ต่าง ๆ ในชีวิตจริง
แล้วทำให้เป็นอะไรที่คอมพิวเตอร์เข้าใจได้
ผมคิดว่าสิ่งนี้
เป็นทักษะที่สำคัญที่สุด ที่ใครก็ควรมีในทุกวันนี้
เหมือนกับที่คุณใช้ประโยค ในการเล่าเรื่องราวแก่คนอื่น
คุณก็ใช้อัลกอริทึม ในการเล่าเรื่องราวแก่คอมพิวเตอร์
ถ้าคุณได้เรียนรู้ภาษาของมัน
คุณก็จะสามารถออกไปบอกเล่าเรื่องราวของคุณได้
นี่เป็นสิ่งที่ผมอยากให้คุณทำดู
Merhaba, benim adım Christian Rudder ve ben OkCupid'in kurucularından biriydim.
Artık ABD'deki en büyük tanışma sitelerinden biri.
Sitedeki neredeyse herkes gibi ben de matematik bölümündeydim.
Tahmin edebileceğiniz gibi çözümsel yaklaşımlarla biliniriz.
Buna eşleştirme algoritması diyoruz.
Temelde OkCupid'in eşleştirme algoritması
iki kişinin randevuya çıkıp çıkmaması konusunda yardımcı oluyor.
Tüm işimizi bunu temel olarak inşa ettik.
Algoritma süslü bir kelime
ve insanlar bunu büyük bir şeymiş gibi düşünmekten hoşlanıyorlar.
Ama aslında algoritma sadece bir sistematik,
bir sorunu çözmenin kademeli bir yolu.
Süslü olmasına hiç de gerek yok.
Bu derste bu özel algoritmamızı nasıl elde ettiğimizi açıklayacağım,
böylece nasıl yapıldığını da görmüş olacaksınız.
Algoritmalar neden önemli ki?
Bu ders neden var?
Yukarıda kullandığım çok önemli bir ifadeyi fark edin:
Bir sorunu çözmenin kademeli yolunu oluşturuyorlar
ve bildiğiniz gibi bilgisayarlar kademeli işlemlerde çok başarılılar.
Algoritmasız bir bilgisayar sadece pahalı bir ağırlıktan başka bir şey değil
ve bilgisayarlar günlük hayatımızın her tarafını işgal ettiğinden beri
algoritmalar her yerdeler.
OkCupid'in eşleştirme algoritmasının arkasındaki matematik
şaşırtıcı derecede basit.
Sadece biraz toplama, çarpma ve birazcık da karekök.
Onu tasarlarken karışık olan taraf ise gizemli bir şeyi, insan çekiciliğini alıp
bilgisayarın üzerinde çalışabileceği ögelere nasıl ayırabileceğini bulmaktı.
İnsanları eşleştirmek için ihtiyacımız olan ilk şey veriydi,
algoritmanın üzerinde çalışacağı bir şey.
İnsanlardan hızlıca veri elde etmenin en iyi yolu ise sadece sormak.
Bu yüzden OkCupid'in kullanıcılara
"Bir gün çocuk sahibi olmak istiyor musunuz?"
"Ne sıklıkla dişlerinizi fırçalıyorsunuz?"
"Korku filmlerini seviyor musunuz?"
"Tanrı'ya inanıyor musunuz?" gibi önemli sorular sormasına karar verdik.
Soruların çoğu benzeri benzerle eşleştirmek için uygun,
yani her iki kişi de aynı şekilde cevap verirse.
Örneğin, korku filmlerini seven iki kişi
muhtemelen seven biri ve sevmeyen birinden daha iyi bir eşleşmedir.
Peki ya "İlgi odağı olmaktan hoşlanır mısınız?" gibi bir soru?
Eğer bir ilişkide her iki kişi buna evet cevabını veriyorsa
çok büyük sorunları olacaktır.
Bunu erken fark ettik
ve her soruda biraz daha veri elde etmemiz gerektiğine karar verdik.
Sadece kendi cevaplarını değil,
aynı zamanda başkasından almak istedikleri cevabı da belirtmelerini istedik.
Bu, bayağı işe yaradı.
Ama bir boyuta daha ihtiyacımız vardı.
Bazı sorular, biri hakkında diğerlerinden daha fazla şey söyler.
Örneğin, politika hakkındaki bir soru;
"Hangisi daha kötü: Kitabın mı yoksa bayrağın yanması mı?" gibi bir soru
bir kişinin film zevklerinden daha fazla şey ortaya çıkarır
ve her şeyi eşit olarak ölçmek bir anlam ifade etmiyor,
bu yüzden veri göstergesi ekledik.
OkCupid'in size sorduğu her şey için
hayatınızda oynadığı rolü bize anlatma şansınız var
ve bu alakasız ile gerekli şeyler arasında değişiyor.
Her soru için algoritmamız açısından üç şeyimiz var:
İlk olarak, cevabınız;
ikinci olarak, başkasının nasıl cevap vermesini istemeniz --
potansiyel eşiniz --
ve üçüncü olarak, sorunun sizin için ne kadar önemli olması.
Tüm bu bilgilerle birlikte
OkCupid iki kişinin ne kadar iyi geçinebileceğini bulabiliyor.
Algoritma, sayıları inceleyip bize bir sonuç veriyor.
Uygulamalı bir örnek olarak
hadi sizi başka biriyle nasıl eşleştireceğimize bakalım.
Ona "B" diyelim.
B ile olan eşleşme yüzdeniz
ikinizin de cevapladığı soruları baz alıyor.
Ortak sorulara da "s" diyelim.
Çok basit bir örnek olarak
bir grup "s"yi sadece iki ortak soruyla kullanıyoruz
ve bundan bir eşleşme çıkartıyoruz.
İşte iki örnek sorumuz.
İlki diyelim ki "Ne kadar dağınıksın?"
ve cevap olasılıkları da şunlar:
Çok dağınık, ortalama ve çok düzenli.
"Çok düzenli" olarak cevapladığınızı,
başkasının da "çok düzenli" olarak cevaplamasını istediğinizi
ve sorunun sizin için çok önemli olduğunu varsayalım.
Yani temizlik delisisiniz.
Düzenlisiniz, başkasının da düzenli olmasını istiyorsunuz, hepsi bu
ve B'nin biraz farklı olduğunu varsayalım.
Kendisini "çok düzenli" olarak cevapladı
ama başkasının "ortalama" cevabı onun için yeterli
ve sorunun onun için çok da bir önemi yok.
Önceki örneğimizden ikinci soruya bakalım.
"İlgi odağı olmaktan hoşlanır mısınız?"
Cevap ya "evet" ya da "hayır."
"Hayır"ı cevapladınız, başkasının da "hayır"ı cevaplamasını istiyorsunuz
ve sorunun sizin için çok da bir önemi yok.
B "evet"i cevapladı.
Başkasının da "hayır"ı cevaplamasını istiyor
çünkü tüm ilginin onda olmasını istiyor
ve soru onun için bir miktar önemli.
Şimdi tüm bunları hesaplamaya çalışalım.
İlk adımımız, bunu yapmak için bilgisayarları kullandığımızdan dolayı,
"bir miktar önemli" ve "çok önemli" gibi düşüncelere sayısal değerler vermeliyiz
çünkü bilgisayar her şeye sayı biçiminde ihtiyaç duyar.
OkCupid için şu ölçekte karar kıldık:
"Alakasız" 0 değerinde.
"Biraz önemli" 1 değerinde.
"Bir miktar önemli" 10 değerinde.
"Çok önemli" 50 değerinde.
"Kesinlikle gerekli" 250 değerinde.
Daha sonrasında algoritma iki basit hesaplama yapıyor.
İlki "B'nin cevapları sizi ne kadar tatmin etti?"
Yani B sizin ölçeğinizde ne kadar olası puan topladı?
B'nin ilk soruya, dağınıklık hakkındaki soruya olan cevabının,
sizin için çok önemli olduğunu belirttiniz.
50 puan değerinde ve B bunu bildi.
İkinci soru ise sadece 1 puan değerinde çünkü biraz önemli olduğunu söylediniz,
B bunu bilemedi,
dolayısıyla B'nin cevapları 51 olası puan üzerinden 50.
Bu %98 oranında tatmin edici, çok iyi.
Algoritmanın göz önünde bulundurduğu ikinci soru ise şu:
B'yi ne kadar tatmin ettiniz?
B, dağınıklık sorusuna olan cevabınıza 1 puan verdi
ve ikincisine de 10 puan verdi.
Bu 11 puanın, 1 ile 10'un toplamı, 10 puan kazandınız --
ikinci soruda birbirinizi cevabınızla tatmin ettiniz.
11 üzerinden 10 puan olan cevaplarınız B için %91 oranında tatmin edici.
Fena değil.
Son adım, bu iki eşleşme yüzdelerini alıp
ikiniz için de tek bir sayı elde etmek.
Bunu yapmak için algoritma puanlarınızı çarpıyor,
sonra n dereceden kökünü alıyor,
"n" soru sayısını oluşturuyor.
S, - ki bu örnekte soru sayısını oluşturuyor -
sadece 2 olduğundan dolayı
hesap şöyle:
eşleşme yüzdesi yüzde 98 ile yüzde 91'in çarpımının kare köküne denk geliyor.
Bu da yüzde 94'e denk geliyor.
Bu 94'lük yüzde, B ile olan eşleşme yüzdeniz.
Bildiklerimize dayanarak
birbirinizle ne kadar mutlu olabileceğinizin matematiksel ifadesi.
Peki algoritma neden iki eşleşme puanının ortalamasını almak yerine
çarpıyor ve kare kökünü alıyor?
Genel olarak bu formüle geometrik ortalama deniyor.
Geniş aralığı olan değerleri birleştirmek
ve farklı nitelikleri temsil etmek için harika bir yol.
Diğer bir ifadeyle romantik eşleştirme için mükemmel.
Geniş aralıklarınız ve tonlarca farklı veri göstergeniz var,
dediğim gibi filmler, politika, din -- her şey hakkında veri göstergeniz var.
Sezgisel olarak bu çok mantıklı.
Yüzde 50 oranında birbirini tatmin eden iki insan
0 ile 100 oranında tatmin eden diğer iki kişiden daha iyi bir eşleşme olmalı
çünkü sevgi karşılıklı olmalı.
Yanılma payı için biraz düzeltme ekledikten sonra,
bu durumda az sayıda sorumuz var,
bu örnekte yaptığımız gibi,
devam edebiliriz.
OkCupid iki kişiyi her eşleştirdiğinde
henüz özetlediğimiz adımlardan geçiyor.
İlk olarak cevaplarınız hakkındaki veriyi topluyor,
sonra tercihlerinizi ve diğer insanların tercihlerini
basit, matematiksel yollarla karşılaştırıyor.
Bu, gerçek dünya olgusunu alıp
onu bir mikroçipin anlayabileceği bir şeye dönüştürme kabiliyeti,
bence birinin bu günlerde sahip olabileceği en önemli yetenek.
Birine bir hikâye anlatmak için cümleleri kullandığınız gibi
bilgisayara hikâye anlatmak için algoritmaları kullanıyorsunuz.
Dili öğrenirseniz çıkıp hikâyelerinizi anlatabilirsiniz.
Umarım bu yardımcı olacak.
Xin chào các bạn, tên tôi là Christian Rudder,
tôi là một trong những người sáng lập trang web OK Cupid.
Hiện tại, nó đang là một trong những trang web lớn nhất về hẹn hò online ở Mỹ.
Cũng giống như các thành viên sáng lập khác
tôi đã từng học chuyên về toán, và, cũng như dự đoán của bạn
chúng tôi được biết đến với cách tiếp cận theo hướng phân tích
mà chúng tôi áp dụng vào tình yêu.
Chúng tôi gọi đó là thuật toán mai mối
Về cơ bản thì OK Cupid sử dụng thuật toán mai mốt
để giúp chúng tôi ra kết luận liệu một cặp nam nữ nhất định có thích hợp để hẹn hò với nhau hay không.
Chúng tôi xây dựng công việc kinh doanh của mình xung quanh thuật toán này.
"Thuật toán" nghe như một từ mang tính chuyên môn cao
và khiến chúng ta nghĩ đó là một cái gì đó rất phức tạp
nhưng thực ra, nó chỉ là một cách giải quyết vấn đề
mang tính hệ thống theo kiểu từng bước từng bước một.
Và thực sự nó khá đơn giản.
Trong bài học này, tôi sẽ giải thích cho các bạn
điều gì đã dẫn chúng tôi đến với thuật toán này
và nó hoạt động như thế nào.
Đầu tiên, hãy nghĩ xem tại sao các thuật toán lại được coi là quan trọng ?
và tại sao chúng tôi lại tạo ra bài học này?
Đầu tiên, bạn có thể nhận ra một cụm từ rất quan trọng mà tôi sử dụng ở phía trên:
"một cách giải quyết vấn đề theo kiểu từng bước từng bước một",
và có thể bạn cũng đã biết rằng
máy tính là chuyên gia trong việc giải quyết vấn đề theo từng bước.
Một máy tính mà không có các thuật toán
thì về cơ bản cũng chỉ như một cái chặn giấy đắt tiền mà thôi.
Và cũng bởi vì máy tính là một phần vô cùng phổ biến trong cuộc sống hàng ngày,
nên những thuật toán có thể được tìm thấy ở khắp mọi nơi.
Phép toán đằng sau thuật toán của OK Cupid
đáng ngạc nhiên là lại vô cùng đơn giản.
Đó chỉ là một vài phép cộng,
phép nhân,
và một chút khai căn.
Tuy nhiên, phần khó nhất trong việc tạo ra thuật toán này
lại là ở việc làm thế nào để có thể phân tích một yếu tố khó đo lường.
như sự hấp dẫn của con người,
thành những phần nhỏ mà máy tính có thể tính toán được.
Nói về việc này, điều đầu tiên chúng tôi cần để tìm ra những cặp đôi phù hợp là những số liệu.
để có thể áp dụng vào thuật toán.
Và cách tốt nhất để có được chúng
là thu thập từ mọi người.
Vì thế, chúng tôi quyết định đưa ra các câu hỏi cho các thành viên,
kiểu như "Trong tương lai bạn có muốn có con không?";
"Bạn có thường xuyên đánh răng không?";
"Bạn có thích xem phim kinh dị không?"
hay những điều vĩ mô hơn như "Bạn có tin vào Chúa không?"
Có thể thấy rằng nhiều câu hỏi thì rất tốt
nếu chúng ta nhận được
câu trả lời giống nhau từ cả hai phía.
Ví dụ như hai người cùng thích xem phim kinh dị
thì có thể sẽ phù hợp với nhau hơn
là nếu một người thích
và người còn lại thì không thích.
Nhưng đối với những câu hỏi kiểu như
"Bạn có muốn làm trung tâm của sự chú ý?"
Nếu cả hai người đều trả lời là có,
thì mối quan hệ của họ sẽ gặp phải một vấn đề lớn.
Chúng tôi nhận ra điều này từ đầu
và vì thế quyết định là chúng tôi cần
thêm một số dữ liệu từ các câu hỏi.
Chúng tôi yêu cầu mọi người không những trả lời câu hỏi của mình,
mà còn cả những câu trả lời mà họ mong muốn nhận được từ người khác.
Cách này khá hiệu quả,
tuy nhiên chúng tôi còn cần nhìn vào một khía cạnh khác.
Đó là một số câu hỏi thì nói cho bạn biết về một người nhiều hơn là những câu khác.
Lấy ví dụ như một câu hỏi về chính trị
" Đốt sách và đốt cờ quốc gia - việc nào tồi tệ hơn?"
câu hỏi kiểu này sẽ bộc lộ nhiều thông tin hơn là câu hỏi về sở thích phim ảnh của bạn.
Và vì không thể coi các câu hỏi có trọng lượng như nhau
chúng tôi đã thêm một điểm sau vào thuật toán:
Đối với tất cả mọi câu hỏi bạn trả lời trên OK Cupid,
bạn có cơ hội để cho chúng tôi biết
tầm quan trọng của câu hỏi đó đối với bạn,
từ không quan trọng một chút nào cho đến vô cùng quan trọng.
Vậy là đối với bất kì câu hỏi nào
chúng tôi cũng có ba dữ liệu cho thuật toán của mình:
Thứ nhất là câu trả lời của bạn;
Thứ hai là câu trả lời mà bạn mong muốn có được từ một người khác;
có thể là nửa kia của bạn
trong tương lai
và thứ ba là tầm quan trọng của câu hỏi đối với bạn.
Với tất cả những thông tin đó,
OK Cupid có thể tính ra được liệu hai người có phù hợp với nhau không.
Thuật toán sẽ bắt đầu xử lý những con số và cuối cùng đưa ra một kết quả.
Lấy một ví dụ cụ thể như sau,
chúng tôi đang xem xét sự phù hợp của bạn với một người người con trai
giả sử tên anh ta là B
Phần trăm phù hợp giữa bạn và B sẽ được dựa trên
những câu hỏi mà cả hai người cùng trả lời.
Gọi tập hợp những câu hỏi đó là "s"
và để làm cho ví dụ này đơn giản hơn
thì "s" chỉ bao gồm hai câu hỏi chung
rồi chúng ta sẽ tính toán từ đó.
Lấy ví dụ,
câu hỏi đầu tiên là "Bạn luộm thuộm đến mức nào?"
câu trả lời có thể là
rất luộm thuộm,
khá luộm thuộm,
hoặc rất gọn gàng.
Giả sử câu trả lời của bạn là "rất gọn gàng"
bạn cũng muốn người kia trả lời như vậy,
và câu hỏi này rất quan trọng đối với bạn.
Có thể nói về cơ bản bạn là một người gọn gàng thái quá.
Bạn rất thích gọn gàng,
và cũng muốn người yêu của mình
giống như vậy
Nhưng giả sử B hơi khác bạn một chút.
Anh ta trả lời rằng mình rất gọn gàng,
nhưng lại chỉ cần người yêu của mình
"khá gọn gàng" thôi
và câu hỏi này thì cũng không quan trọng mấy đối với B.
Giờ hãy nhìn vào câu hỏi thứ hai,
Đây là câu mà lúc trước tôi đã sử dụng:
" Bạn có muốn là trung tâm của sự chú ý không?"
Câu trả lời chỉ có thể là có hoặc không.
Bạn trả lời là "không"
Bạn cũng mong người yêu tương lai của mình trả lời "không"
và câu hỏi này theo bạn cũng không mấy quan trọng.
Với B, anh ấy trả lời là "có"
nhưng lại tìm kiếm một người trả lời "không"
vì anh ấy chỉ muốn mình là trung tâm của sự chú ý thôi
và câu hỏi khá quan trọng với anh ấy.
Bây giờ hãy thử tính toán tất cả những gì mà chúng ta thu được.
Bước đầu tiên,
vì chúng ta sẽ dùng đến máy tính để tinh toán,
nên chúng ta cần phải gắn những giá trị số
cho những câu trả lời kiểu như "khá quan trọng" hay "rất quan trọng"
bởi vì máy tính chỉ có thể làm việc với những con số cụ thể mà thôi.
Cũng vì thế, OK Cupid quyết định gắn cho
"không quan trọng chút nào" giá trị bằng 0,
"quan trọng một chút" giá trị bằng 1,
"khá quan trọng" giá trị bằng 10,
"rất quan trọng" giá trị bằng 50,
và "vô cùng quan trọng" giá trị bằng 250.
Tiếp theo, thuật toán sẽ thực hiện hai phép tính đơn giản.
Một là mức độ hài lòng của bạn với những câu trả lời của B
hay nói cách khác là số điểm mà B có thể đạt được trên thang điểm của bạn.
Bạn đã nói rằng câu trả lời của B
cho câu hỏi đâu tiên về mức độ luộm thuộm
là rất quan trọng với bạn.
B đã trả lời đúng như bạn muốn vì thế anh ấy có 50 điểm.
Câu hỏi thứ hai chỉ đáng giá 1điểm
vì bạn nói nó chỉ quan trọng một chút,
và B đã trả lời không như bạn muốn.
Vì thế B đạt 50 trên tổng số 51 điểm mà anh ấy có thể dành được.
vậy mức độ hài lòng sẽ là 98%.
Khá cao.
Điều thứ hai mà thuật toán cần
là mức độ hài lòng của B với các câu trả lời của bạn.
B chỉ đặt giá trị cho câu trả lời của bạn
về sự luộm thuộm là 1
và 10 điểm cho câu thứ hai.
Vì thế trên tổng số 11,
bạn đã đạt được 10 điểm,
cả hai người đã trả lời đúng như mong muốn của người kia ở câu thứ hai
vì thế câu trả lời của bạn đạt 10 trên tổng số 11 điểm
có nghĩa là mức độ hài lòng của B với những câu trả lời của bạn là 91%.
Cũng khá tốt.
Việc cuối cùng cần làm là ghép hai phần trăm về mức độ hài lòng này lại
và tìm ra một con số chung cho cả hai người.
Để làm như vậy, thuật toán sẽ nhân hai số phần trăm đó lại
sau đó lấy căn bậc n,
với n là tổng số câu hỏi.
Bởi vì s là tổng số câu hỏi
trong ví dụ này chỉ là 2
nên để tính phần trăm hài lòng của cả hai bạn về người kia
ta sẽ lấy căn bậc hai của tích 98% và 91%
và có kết quả là 94%.
Đó chính là mức độ phù hợp của bạn với B
Đây là một cách diễn đạt kiểu toán học
về mức độ hạnh phúc mà hai bạn có thể có nếu kết đôi với nhau
dựa trên những thông tin mà bạn cung cấp cho chúng tôi.
Bây giờ, câu hỏi bạn có thể đặt ra là tại sao chúng tôi lại nhân hai mức độ hài lòng với nhau và lấy căn bậc n,
chứ không lấy trung bình cộng
rồi lấy căn bậc n?
Nói một cách đơn giản thì công thức này gọi là cấp số nhân
và nó là một cách rất tốt để ghép những giá trị
mà có nhiều khác biệt
và đại diện cho nhiều khía cạnh
Nói cách khác, đây là một cách hoàn hảo cho việc tìm sự phù hợp trong tình yêu.
Khi mà chúng ta thường có nhiều lựa chọn
có vô số quan điểm khác nhau,
như tôi đã lấy ví dụ ở trên về phim ảnh
về chính trị
tôn giáo,
hay tất cả những thứ khác.
Ngoài ra, nếu chỉ bằng trực giác thì chúng ta cũng có thể thấy
một cặp đôi mà mức độ hài lòng của người này về người kia đều là 50%
thì sẽ tốt hơn
là một cặp đôi mà tỉ lệ này là 0 và 100
vì sự hấp dẫn thì phải đến từ cả hai phía
Sau khi thêm vào môt vài sửa chữa nhỏ cho sai số,
cho trường hợp chúng ta chỉ có rất ít câu hỏi
như ở ví dụ trên
thì chúng tôi thấy thuật toán hoàn toàn có thể được sử dụng.
Bất cứ khi nào OK Cupid ghép đôi hai người lại với nhau,
chúng tôi lại tiến hành làm theo những bước như trên.
Đầu tiên là thu thập dữ liệu từ câu trả lời của bạn
sau đó so sánh những câu trả lời và những mong muốn của bạn
với câu trả lời và mong muốn của một người khác, bằng những phép toán đơn giản.
Khả năng chuyển đổi một hiên tượng mang tính thực tế
thành những số liệu mà một vi mạch có thể xử lý được
theo tôi
là kĩ năng quan trọng nhất mà một người có thể có trong thời đại ngày nay.
Cũng giống như việc bạn sử dụng các câu để kể một câu chuyện cho người khác nghe,
thì ở đây bạn sử dụng những thuật toán để kể câu chuyện ấy cho một máy tính.
Nếu bạn học được ngôn ngữ thích hợp
bạn có thể bắt đầu kể những câu chuyện của minh.
và tôi mong clip này sẽ giúp bạn làm được điều ấy.
大家好，我叫 Christian Rudder,
我是 OKCupid 网站的创办人之一。
这个网站现在已经是 全美最大的交友网站。
就象这网站上大多数其他人一样,
我是学数学的， 正如你所期待的那样，
我们擅于分析。
我们把这方法也应用在爱情上。
我们把它叫做“配对算法”。
基本上 OK Cupid 的配对算法
帮助我们决定 两个人是否应该约会。
我们的整个业务都是基于这一点。
“算法”这个词说起来专业而高级，
大家喜欢把它想成很大的一件事，
但其实,算法只不过是一个系统的,
一步一步的解决问题的方法。
根本没有那么复杂。
现在，我将为大家解释
我们怎样得出这一个特殊的算法。
你会在这看到它是怎样成形的。
为什么算法如此重要？
为什么我们要有这堂课？
请注意我刚才提到的一个很重要的词:
它们是一种"逐步"解决问题的方法，
你或许也知道，
电脑擅长于一步一步的运算过程。
没有算法的电脑，
基本上只是一个昂贵的镇纸。
既然电脑已经普及到我们的日常生活，
算法是无处不在。
OK Cupid 配对算法背后的数学逻辑
是非常简单的。
就是一些加法，
乘法，
再来一点平方根。
不过，设计这套算法的关键部分，
在于要找出那些神秘的
人与人之间的相互吸引力，
并把它解构成电脑可以工作的部分，
我们要做的第一件事 就把人和数据关联起来,
这样算法才能生效。
要最快的从人们那里得到数据，
最好就是直接询问他们。
我们决定 OK Cupid 应该向用户问问题，
比如说：“你会想要小孩吗？”，
“你多久刷一次牙？“，
”你喜欢看恐怖电影么？”。
也有严肃些的问题， 比如：“你相信上帝么？”。
目前有很多问题
在进行同类型配对上都很合适，
就是当双方的答案相同时。
比如，两个人都喜欢看恐怖电影
可能配对得更成功。
而一个人喜欢,
另外一个人不喜欢的情况下, 适配度就差点。
但如果碰到下面的问题 ：
“你喜欢成为关注的中心么?”
如果交往中的双方都回答是，
那他们可有大问题了。
我们很早就意识到了这一点，
所以我们觉得需要
在每个问题再收集多一些数据。
我们不仅要人们回答自己的看法，
也要他们回答 他们期待对方如何回答。
这方法很有效，
不过我们还要再多加一个维度。
有些问题能表达人们的与众不同之处。
比如，关于政治的问题，
“ 焚烧书籍或者国旗， 哪个更糟糕 ？”
这能展露人们电影口味之外的东西
同时，并不是所有问题都同等重要的，
所以我们最后增加了一个数据点。
任何 OK Cupid 的问题，
你都可以告诉我们
这问题对你的重要性，
它的程度从“无关”到“必要”。
现在，每一个问题，
我们有三个资讯提供给算法:
第一,你的答案;
第二,你希望别人怎么回答;
也就是你潜在的对象,
的答案;
第三，这个问题对你有多重要？
有了这些信息，
OK Cupid 可以知道 两个人相处和谐程度如何。
算法吃进数字,吐出答案。
实际举例来说吧，
看我们怎样把你和另外一个人进行配对，
暂且称他为 “B”。
你和 B 的适配度是基于
你们双方都进行过回答的问题。
姑且把这些共同问题称之为 “s”。
简单举例，我们用小样本的 “s”，
只需两个共同回答过的问题
电脑会根据它算出适配度。
这里是我们的两道简单问题：
第一个是,“你有多杂乱无章?”
可供选择的答案选项有
非常杂乱无章,
一般，
和非常有条理。
我们假设你回答的是“非常有条理”,
你期待别人的回答是“非常有条理”,
并且对你来说，这个问题非常重要。
基本上你就是个井井有条的怪胎。
你是整洁有条理的人，
你也希望对方同样如此,
就这样。
我们假设 B 有些不同。
他的回答是自己非常有条理,
但是他也接受“一般”，
如果别人是这样回答的话，
这个问题于他而言不太重要。
我们看第二个问题，
就是我们最开始举例的：
“你喜欢成为关注的中心么?”
答题项只有“是”或者“否”。
现在你的回答是“否”，
你希望别人怎样回答这栏答的是“否”
这个问题对于你不太重要。
而B呢,他自己的回答是“是”,
他希望别人回答“否”，
因为他希望所有焦点都在他身上，
而这个问题对他还算重要。
现在，我们让电脑来处理一切。
我们的第一步是，
既然我们要用电脑来处理它，
我们就需要给一些数值
来定义比如“还算重要”和“非常重要”，
因为电脑需要把所有资料都转化成数字。
在 OK Cupid 上我们按如下级别：
“无关”是 0，
“不太重要”的值是1,
“还算重要”的值是 10，
“非常重要”的值是 50，
“绝对必要”的值是 250.
接下来,算法要做两个简单的计算。
第一个是你对B的回答给多少分,
另外一个是,你给对方答题的满分是多少?
你可以指定 B 的答案
在第一个有关条理性的问题上，
对你是非常重要。
它值50分，B 答对了。
第二个问题只有1分，
因为你说这问题对你不太重要,
B 答错了。
所以B的回答在51分满分里拿到了50分。
适配满意度是 98%。
非常好。
算法的第二个问题是看
B 对你的满意程度。
B给对于你有关条理性的回答
给1分，
对于第二个问题的答案给10分。
满分11分，就是1+10.
你得到了10分，
在第二个问题上，你俩彼此都满意。
你的回答在B的满意度分数是10/11,
百分比是91%。
还不错。
最后一步是把两个适配度百分比放在一起，
为你们两打一个分数。
为得到这点， 算法把你们两人的得分相乘，
然后开n次方根,
n 就是问题的数目。
因为“s”-- 也就是问题的数目，
在这个例子里,只是“2”,
我们得到的适配度百分比等于
98% 乘以 91% 再开平方根。
结果等于94%。
94%就是你和 B 之间的适配度百分比。
这是通过数学方法来表达--
你们彼此之间相处的愉快程度是怎样。
基于我们所知道的信息。
为什么算法要相乘，而不是除？
比如，把两个分数求平均值以后
再开平方根？
总的来说，这个公式叫几何平均数，
它很适合处理
差异很大的数据，
以及代表不同属性的数据。
换句话说，它能完美的 计算出浪漫爱情适配度。
你有大范围的,
数不清的数据值,
就像刚说过的，有关电影的，
有关政治的，
有关宗教的，
有关所有的一切。
凭直觉讲，以下情况很有道理。
两个人彼此的满意度是50%，
会好过
那些两个人彼此满意度是0或者100的。
因为爱慕应该是互相的。
在增加了对误差幅度的小修改后 --
这种情况在问题量很小的时候会出现,
就像我们刚举的运算实例一样－－
这套算法就可以运作了。
任何时候当 OK Cupid 将两个人配对时，
它按照我们刚介绍的步骤来運作，
首先它收集你的答题的数据，
然后它比较你的选项和 你期待的对方选项，
以简单的，数学的方法来进行。
这种能将现实世界的现象，
转化为电脑芯片能读取的数据的能力，
我认为，
是现代最重要的一种技术。
就像你用话语来给一个人讲故事，
你是用算法来跟电脑讲故事。
如果你学会了这种语言，
你就可以去讲故事了。
我希望我刚才的介绍能帮助你做到这点。
大家好，我的名字叫 Christian Rudder，
我是 OK Cupid 的創辦者之一。
現在它是美國 最大的交友網站之一。
跟這網站的其它負責人一樣，
我主修數學，而就如你所預期的，
我們較為人知的是
用分析方式研究戀愛行為。
我們把它叫做 速配演算法。
基本上，OK Cupid 的速配演算法
幫助我們決定 某兩個人該不該去約會。
這是我們事業的技術核心。
演算法聽起來很花俏，
而人們放棄搞懂因為它太複雜了
但說真的，演算法只是一個 有系統的、
一步一步 解決問題的方法。
不複雜也不花俏。
這個課程裡，我將會解釋
我們是怎麼設計我們的演算法
而它是如何運作的。
為什麼演算法如此重要？
又為什麼要有這個課程？
這個，請注意我剛用的那個 非常重要的字：
演算法是一步一步 解決問題的方法，
而就像你可能知道的，
電腦很擅長做一步步 規劃好的程序。
一臺沒有演算法的電腦
基本上只是一個很貴的紙鎮而已。
由於電腦在日常生活中 已經非常普及，
所以演算法也是無所不在。
而 OK Cupid 演算法背後的數學
其實異常地簡單。
只是一些加法、
乘法、
還有一些些開根號。
而要設計它比較麻煩的部份，反而是
想辦法把一些神秘的東西，
像是人類的吸引力，
把它變成電腦可以運算的東西。
好，要將人配對 所需要的第一樣東西是數據，
也就是要讓演算法計算的東西。
要快速取得人們資料 最好的方法
就是直接問他。
所以，我們決定 OK Cupid 應該要問 使用者一些問題，
像是：「你未來希望有小孩嗎？」
還有「你多常刷牙？」
「你喜歡恐怖片嗎？」
以及較大的問題 像是「你相信神嗎？」
而很多問題都有助於
將喜歡的人和喜歡的人 配在一起，
這是當雙方都回答了同一個答案的情況。
舉例來說，兩個都喜歡恐怖片的人
也許就是不錯的配對，
比起將喜歡
和不喜歡的人配在一起好。
但如果是像這樣的問題：
「你喜歡成為眾人的焦點嗎？」
如果一對情侶的兩個人都說「喜歡」
那麼他們就有大問題了。
我們很早就知道這點，
所以我們決定
每個問題都需要再多一點資訊。
我們要求使用者 不只是回答問題本身，
同時也回答他們對別人的期望。
這效果真的很好，
但我們還須要另一個思維。
有一些問題比其它問題 更能提供一個人的個性。
比如說，像是政治的問題：
「哪一個比較糟：燒書或是燒國旗？」
比起對電影的品味，這可能透露更多 這個人的個性。
而每個人看事情的輕重大小都不同
所以我們加入了最後一個資料點。
每一個 OK Cupid 問你的問題，
你都可以告訴我們
它在你生活中扮演的角色，
而選項是從「不相關」到「極重要」。
所以現在，每一個問題，
我們都有三筆資訊 可以給我們的演算法：
第一，你的答案；
第二，你對別人期望的答案，
就是可能會跟你配對的人；
第三，這問題究竟對你有多重要。
有全部這些資訊，
OK Cupid 就可以算出 這兩個人相處有多融洽。
這演算法會把數字吃進去 然後給我們答案。
舉一個實際的例子，
我們來看看你和另一個人有多速配，
估且叫他作 B 君。
你和 B 君的速配指數 是基於
你們雙方回答的答案。
我們把同樣的問題這集合叫做 s。
一個非常簡單的例子， 我們用很小的集合 s，
只有兩個相同的問題，
然後由它算出速配程度。
這是兩個可能的問題。
第一個是：「你有多不愛乾淨？」
而可能的答案是
「很髒亂」、
「普通」、
「很愛乾淨」。
假設你的答案是「很愛乾淨」，
而你期望別人也回答「很愛乾淨」，
並且這問題對你來說「非常重要」。
基本上你有潔癖。
你愛乾淨、
你也希望別人愛乾淨，
就是這樣。
又假設 B 君回答有點不一樣。
他回答自己「很愛乾淨」，
但別人回答是「普通」
對他來說就可以了，
並且這問題對它只有「些許重要。」
接著我們來看第二個問題，
是我們先前說過的例子：
「你喜歡成為眾人的焦點嗎？」
而答案只有「是」或「否」。
假設你的答案是「否」，
而你希望對方回答「否」、
並且這問題對你只有「些許重要」。
換 B 君，他回答「是」，
而他希望對方回答「否」，
因為他希望焦點是在他身上，
而這問題對他「蠻重要的」。
好，讓我們試著來算看看。
第一個步驟，
因為我們是用電腦算，
我們必須給不同答案 相對應的數字，
比如說「蠻重要的」和「非常重要」，
因為電腦須要每件事都是數字 才能運算。
在 OK Cupid 裡我們訂定了這樣的量表：
「不相關」是 0、
「些許重要」是 1、
「蠻重要的」是 10、
「非常重要」是 50、
而「極重要」是 250。
接著，演算法會進行兩個簡單的運算。
第一是 B 君的答案 有多符合你的期望。
也就是，B 君在你的量表上會得到幾分？
嗯，你在第一個愛乾淨的問題中
表示 B 君的答案
對你非常重要。
它佔 50 分而 B 正好符合。
而第二個問題只佔 1 分，
因為你說它只有些許重要，
而 B 君答得不對。
所以 B 君的答案 在總數 51 分裡得到 50 分。
這樣是 98% 的滿意度。
相當不錯。
而演算法第二步要做的是
你有多符合 B 君。
嗯，B 君認為你對整潔問題
的答案佔 1 分，
而第二個問題的答案佔 10 分。
總共是 11 分，也就是 1 + 10，
你得到 10 分，
你們雙方在第二個問題 符合兩方的條件。
所以你的答案是 11 分裡得 10 分，
相當於 B 君 91% 的滿意度。
也是不錯。
而最後一步， 是把這兩個數字
變成你們兩個速配指數。
要完成這件事， 演算法會把你們的分數乘起來，
然後開 n 次方根， （譯註：在 OK Cupid 官網中都是開根號。）
這裡 n 是問題的數目。
因為在我們例子的 s 裡，
問題數只有 2，
我們就算出速配指數
是 98% 乘 91% 的開根號。
也就是 94%。
這 94% 就是你和 B 君的速配指數。
這是基於我們的了解，
你們兩個相處融洽的程度
的一種數學式。
而，為什麼演算法要用相乘
而不用相加，
並且要取平方根呢？
一般來說，這個公式叫作 幾何平均數，
它是將範圍很廣、
並表達不同特性的數據合在一起的
一種很棒的方法。
也就是說，它對浪漫的配對來說 是很完美的。
你會有很廣的數據、
你也許多不一樣的資訊，
比如說，關於電影、
關於政治、
關於信仰、
關於所有事。
直覺來說，這也合理。
兩個人互相有 50% 的滿意度
應該會比
一人是 0% 另一人是 100% 來得好，
因為感情是互相的。
再加上一些邊界錯誤的修正，
就是說當問題數很少的時候的修正，
像是我們這個例子，
我們就完成了。
每一次 OK Cupid 在幫兩人配對時，
都經過了我們所講的那些步驟。
首先從你的答案收集資訊，
然後用簡潔的數學方法
來將你和其它人的偏好作比較。
這樣把真實世界的現象
變成微晶片能運作的一種能力，
我認為，
是我們現今可以擁有的 最重要的技能。
就像是你用句子來 向別人說故事一樣，
你會用演算法來 對電腦訴說故事。
如果你學會這種語言，
你就可以把你的故事告訴別人。
這就是我希望幫助你達成的事情。