مرحبا، اسمي هوكرستيان دادير أنا أحد مؤسسي "أوك كيوبيد " ( موافق يا ساعي الحب ) و هو واحد من أكبر مواقع " المواعدة " في الولايات المتحدة. مثل أي شخص تقريبا يعمل في الموقع تخصصي الأساسي هو الرياضيات و كما تعلمون نحن - كموقع - معروفون بالنهج التحليلية حينما يتعلق الامر بالحب و نطلق على تلك النهج التي نملكها بخوارزمية المطابقة خوارزمية "أوك كيوبيد" للمطابقة تساعدنا في أن نقرر ما إذا كان ينبغي على شخصين الخروج بموعد أم لا كل عمل الموقع مبني على هذا الخوارزميات هي عالم سحري بحد ذاته والناس عادة تستخدم هذا التعريف لوصف الامور المعقدة ولكن حقاً الخوارزميات تتبع اسلوب منهجي فقط لا اكثر تعمل خطوة خطوة لحل مشكلة ما و ليست سحرية على الاطلاق في هذا الدرس سوف أشرح آلية عمل خوارزمية موقعنا و كيف وصلنا اليها لكي تعي كيف تعمل و كيف نعمل نحن بداية لماذا تعتبر الخوارزميات مهمة ؟ و لماذا أنا أقدم هذا الدرس ؟ ما هي أهميته ؟ حسناً تذكروا العبارة التي استخدمت أعلاه " تعمل خطوة خطوة لحل مشكلة ما " كما تعلمون تتفوق أجهزة الكمبيوتر في عمليات التحليل خطوة بخطوة جهاز كمبيوتر بدون خوارزمية هو أساسا جهاز مكلف لا قيمة له ونظرا لأن أجهزة الكمبيوتر جزء هام في حياتنا اليومية فالخوارزميات إذاً في كل مكان الرياضيات التي تقف خلف خوارزمية "أوك كيوبيد" هي خوارزمية بسيطة بصورة عجيبة انها عبارة عن خليط من عمليات الضرب و قليلاً من الجذور التربيعية يعد تصميم الخوارزميات الجزء الأصعب فيها خاصة ان كانت تتعلق في معرفة شيء غامض مثل الانجذاب بين البشر وتقسيمه -الانجذاب بين البشر- إلى مكونات يمكن لجهاز كمبيوتر أن يتعامل معها حسنا، البيانات أهم ما نحتاجه لكي ندرس الانجذاب بين البشر فهي شيء يمكن للخوارزمية التعامل معه و أفضل طريقة للحصول على البيانات بسرعة هي أن تطرح الأسئلة لذا بداية قررنا أن نطرح الأسئلة على مستخدمي "أوك كيوبيد" أسئلة من مثل "هل تريد أن تنجب الأطفال ذات يوم ؟" و "ما هو تواتر استخدامك لفرشاة الأسنان ؟"، "هل تحب أفلام الرعب؟" واسئلة أعمق من مثل "هل تؤمن بوجود الله؟" الكثير من هذه الأسئلة جيدة و تفيد فيما يخص المطابقة بين شخصين متشابههين عندما يجاوب كلاهما على ذات السؤال بذات الاجابة فعلى سبيل المثال عندما يهتم شخصان بأفلام الرعب فهم على الأرجح أكثر تطابقاً و أقوم للمواعدة من شخص يحب أفلام الرعب و آخر لا يحبها ولكن ماذا عن سؤال من مثل "هل تحب أن تغدو بؤرة الاهتمام لمن هم من حولك ؟" إن كان فردان في علاقة عاطفية و كلاهما أجاب بنعم فتلك العلاقة سوف تتأزم حقاً لاحقاً و نحن في الموقع أدركنا هذا منذ بداية انطلاقنا و عليه قررنا أنه يتوجب علينا حصد المزيد من البيانات حول كل سؤال و كل اجابة مما سبق فبتنا لا نطرح فحسب اسئلة شخصية يجيب عليها المستخدم فحسب بل كنا نطلب منهم الإجابة عن الشخص الذي يرغبون بمواعدته و قد عمل هذا بصورة جيدة حقاً ولكن كنا نحتاج بعداً آخر لاستسقاء المعلومات فهناك بعض الأسئلة تكشف لك المزيد عن شخص دون غيرها على سبيل المثال سؤال حول السياسة أو شيء من هذا القبيل مثلاً سؤال " أيهما أكثر وقعاً عليك حرق كتاب أو حرق علم دولتك ؟ " قد يكشف لك المزيد من المعلومات حول ذوق شخص ما في الأفلام ولا يعقل أن تزن كل الاجوبة من منطلق التشابه و المساواة في الاجابات لذا أضفنا محوراً آخر للبيانات النهائية المستسقاة لك سؤال يطرحه "أوك كيوبيد" سيكون لك الخيار في ان تخبرنا عن اهمية هذا السؤال و اجابته بالنسبة لك و هذه الاهمية تترواح خياراتها من ( غير مهم / لا يتحتم ان تكون الاجابة مشابهة ) حتى ( فائق الاهمية / يتحتم ان تكون الاجابة مشابهة ) لذا الآن لكل سؤال لدينا ثلاثة بيانات لنغذي بها الخوارزمية أولاً : الإجابة الخاصة بم ثانيا : كيف تريد أن يجيب الشخص الآخر الذي قد يكون شريكك المحتمل و ثالثا : مدى أهمية هذا السؤال بالنسبة لك مع كل هذه البيانات يمكن ل "أوك كيوبيد" أن يعي و يدرس كيف سوف يتوافق الشخصان فالخوارزمية تبعثر الاحتمالات والارقام وتخرج بنتيجة لذلك دعونا نطرح مثال عملي دعونا ننظر كيف يمكننا تدبير موعد لك مع شخص دعونا نطلق عليه مسمى "ب". نسبة تطابقك مع "ب" تعتمد على اجاباتكم على الأسئلة ذاتها التي طرحت عليكم دعونا نطلق على مجموعة الأسئلة الشائعة مسمى "س". كمثال بسيط جداً سوف نستخدم مجموعة صغيرة من الاسئلة "س" و التي تتكون من سؤالين مشتركين اثنين فحسب لكي نحسب على اساسها مدى المطابقة و التوافق ها هي اسئلتنا السؤال الاول : " إلى أي مدى تصف نفسك بالفوضوي " و احتمالات الاجوبة هي فوضوي للغاية متوسط الترتيب منظم جداً ولنفترض أن إجابتك كانت "منظم جداً" و تريد من الشخص آخر أن يجيب أيضاً بـ "منظم جداً" وهذا السؤال مهم جداً بالنسبة لك فأنت مهووس بالاناقة و الترتيب أنت أنيق و حتماً تريد شخصا آخر له نفس الأسلوب في الحياة وهذا كل شيء و لنفترض أن "ب" مختلف قليلاً في اجابته فأجاب أنه منظم جداً ولكنه لا يمانع ان كانت اجابة الشريك الآخر " متوسط الترتيب " و هذا السؤال ليس بذات الاهمية لديه عما هو عليه لديك دعونا ننظر في السؤال الثاني هو سؤال ذكرناه مسبقاً "هل تحب أن تغدو بؤرة الاهتمام لمن هم من حولك ؟" الاجابة هنا اما ب نعم أو لا و أنت أجبت بـ "لا" و تريد الشخص الآخر أن يجيب ب "لا" أيضاً و السؤال ليس بذات الاهمية لديك الان "ب" أجاب على ذات السؤال ب "نعم" و يريد من الشخص الآخر أن يجيب بـ "لا" لأنه يريد أن يصب تسليط الضوء عليه فحسب والسؤال مهم إلى حد ما بالنسبة له. الآن ، دعونا نحاول حساب نسبة التوافق من كل هذا. خطوتنا الأولى هي و على اعتبار ان الكمبيوترات يمكنه القيام بعمليات حسابية فنحن بحاجة إلى تعيين قيم عددية للأجوبة من مثل "مهم إلى حد ما" و "هام جداً" لأن أجهزة الكمبيوتر بحاجة إلى أن كل تكون كل البيانات على هيئة أرقام. فقررنا في "أوك كيوبيد" أن نعطي تصنيفاً عددياً تبعاً للقيم التالية : عندما تتم الاجابة ب " غير ذي أهمية " تكون القيمة 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 % لأن المودة تقوم على الأخذ و العطاء من كل الطرفين و يذكر أنه بعد إضافة تصحيح ما لهامش الخطأ الذي قد يحدث في حال كانت الاسئلة التي اجاب عليها الطرفين عددها قليل كما قمنا في هذا المثال، تكون الأمور على ما يرام و هكذا في أي وقت يقوم "أوك كيوبيد" بمطابقة فردين فإنه يمر بكل الخطوات التي ذكرناها فقط أولاً يقوم بجمع البيانات حول إجاباتك ثم يقارن بين اختياراتك و تفضيلاتك عبر دراسة أجوبة أشخاص آخرين بواسطة طرق بسيطة ورياضية وهذه القدرة على تحويل ظواهر العالم الحقيقي وجعلها شيئا يمكن فهمه من قبل شريحة صغيرة جداً هوعلى ما أعتقد أهم المهارات التي يمكن أن يملكها أي فرد في هذه الأيام. مثل حين تستخدام الجمل لكي تروي قصة لشخص ما فيمكنك استخدام الخوارزميات لكي تحول تلك القصة إلى شيء يعيه جهاز الكمبيوتر. و ان كنت تتعلم لغة جديدة يمكنك عبر عمليات مشابهة أن تبدأ بقص قصصك الخاصة أمل أن يكون هذا الدرس قد ساعدك في فهم آلية القيام بذلك
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.