全世界只有3.14 % 的人关注了

数据与算法之美


欣赏 TED-Ed 带字幕视频, 或者看下面编写的文字版.

01

交友网站的背后是算法帝国

大家好,我叫 Christian Rudder,我是 OKCupid 网站的创办人之一。这个网站现在已经是全美最大的交友网站。

就象这网站上大多数其他人一样,我是学数学的,正如你想象的那样,我们擅于分析。我们把这方法也应用在爱情上。我们把它叫做"配对算法"。

基本上 OK Cupid 的配对算法帮助我们决定两个人是否应该约会。我们的整个业务都是基于这一点。

"算法"这个词说起来专业而高级,大家喜欢把它想成很大的一件事,但其实,算法只不过是一个系统的,一步一步的解决问题的方法。根本没有那么复杂。

现在,我将为大家解释我们怎样得出这一个特殊的算法。你会在这看到它是怎样成形的。

为什么算法如此重要?为什么我们要有这堂课?请注意我刚才提到的一个很重要的词:它们是一种"逐步"解决问题的方法,你或许也知道,电脑擅长于一步一步的运算过程。没有算法的电脑,基本上只是一个昂贵的镇纸。

02

简单原理

既然电脑已经普及到我们的日常生活,算法是无处不在。OK Cupid 配对算法背后的数学逻辑是非常简单的。就是一些加法,乘法,再来一点平方根。

不过,设计这套算法的关键部分,在于要找出那些神秘的人与人之间的相互吸引力,并把它设计成电脑可以计算的步骤,我们要做的第一件事就把人和数据关联起来,这样算法才能生效。

要最快的从人们那里得到数据,最好就是直接询问他们。我们决定 OK Cupid 应该向用户问问题,比如说:

  • "你会想要小孩吗?",

  • "你多久刷一次牙?",

  • "你喜欢看恐怖电影么?"。

  • 也有严肃些的问题,比如:"你相信上帝么?"。

目前有很多问题在进行同类型配对上都很合适,就是当双方的答案相同时。比如,两个人都喜欢看恐怖电影可能配对得更成功。而一个人喜欢,另外一个人不喜欢的情况下,适配度就差点。

但如果碰到下面的问题 :"你喜欢成为关注的中心么?"如果交往中的双方都回答是,那他们可有大问题了。

我们很早就意识到了这一点,所以我们觉得需要在每个问题再收集多一些数据。我们不仅要人们回答自己的看法,也要他们回答所期待未来意中人如何回答。

这方法很有效,不过我们还要再多加一个维度。有些问题能表达人们的与众不同之处。比如,关于政治的问题," 焚烧书籍或者国旗,哪个更糟糕 ?"这能展露人们电影口味之外的东西.

同时,并不是所有问题都同等重要的,所以我们最后增加了一点判别数据权重的维度。任何 OK Cupid 的问题,你都可以告诉我们这问题对你的重要性,它的程度从"无关"到"必要"。

现在,每一个问题,我们有三个资讯提供给算法:

  1. 你的答案;

  2. 你希望别人怎么回答;也就是你潜在的意中人的答案;

  3. 这个问题对你有多重要?

有了这些信息,OK Cupid 可以知道两个人相处和谐程度如何。算法吃进数字,吐出打分后的结果。教你如何用数学找到真爱,推荐阅读《爱情数学》

03

举例说明

实际举例来说吧,看我们怎样把你和另外一个人进行配对,暂且称他为 "B"。你和 B 的适配度是基于你们双方都进行过回答的问题。姑且把这些共同问题称之为 "s"。

简单举例,我们用小样本的 "s",只需两个共同回答过的问题电脑会根据它算出适配度。

这里是我们的两道简单问题:

第一个是,"你有多杂乱无章?". 可供选择的答案选项有非常杂乱无章,一般,和非常有条理

我们假设你回答的是"非常有条理",你期待别人的回答是"非常有条理",并且对你来说,这个问题非常重要。

从你的回答可以认为, 基本上你就是个井井有条的有点洁癖的人。所以你也希望对方同样如此, 就这样简单。

我们假设 B 有些不同。他的回答是自己非常有条理,但是他也接受意中人回答"一般",并且这个问题于他而言不太重要。

好, 现在我们再看第二个问题,就是我们最开始举例的:"你喜欢成为关注的中心么?"

答题项只有"是"或者"否"。现在你的回答是"否",你希望别人怎样回答这栏答的是"否", 这个问题对于你而言, 显得不太重要。而B呢,他自己的回答是"是",他希望别人回答"否",因为他希望所有焦点都在他身上,而这个问题对他还算重要。

04

计算匹配度

现在,我们让电脑来处理一切。我们的第一步是,既然我们要用电脑来处理它,我们就需要给一些数值来定义比如"还算重要"和"非常重要",因为电脑需要把所有资料都转化成数字。

在 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 将两个人配对时,它按照我们刚介绍的步骤来運作,首先它收集你的答题的数据,然后它比较你的选项和你期待的对方选项,以简单的,数学的方法来进行。

这种能将现实世界的现象,转化为电脑芯片能读取的数据的能力,我认为,是现代最重要的一种技术。就像你用话语来给一个人讲故事,你是用算法来跟电脑讲故事。如果你学会了这种语言,你就可以去讲故事了。我希望我刚才的介绍能帮助你做到这点。

来源:遇见数学

版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。

精品课程推荐:

选购数学科普正版读物

严选“数学思维好物”

送给孩子的益智礼物   |   办公室神器

算法工程师成长阅读   |   居家高科技

理工科男女实用型礼物精选   

----点击头像关注----

超级数学建模

数据与算法之美

少年数学家

数锐学堂

惊喜酱(个人号)

玩酷屋COOL

在线交友背后的数学原理相关推荐

  1. 解析深度神经网络背后的数学原理!

    作者 | Piotr Skalski 译者 | 巧克力 编辑 | Jane 出品 | AI科技大本营 [导读]为了更好地理解神经网络的运作,今天只为大家解读神经网络背后的数学原理.而作者写这篇文章的目 ...

  2. 人工神经网络背后的数学原理!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:贾博文,浙江大学,Datawhale原创作者 本文约8000字,建 ...

  3. 梯度下降背后的数学原理几何?

    来自 | 深度学习这件小事   编辑 | Datawhale 对于诸位"机器学习儿"而言,梯度下降这个概念一定不陌生,然而从直观上来看,梯度下降的复杂性无疑也会让人"敬而 ...

  4. 模拟上帝之手的对抗博弈——GAN背后的数学原理

    模拟上帝之手的对抗博弈--GAN背后的数学原理 深度学习 人工智能 机器学习 神经网络 神经网络与机器学习-英文版 阅读1984  作者:李乐 CSDN专栏作家 简介 深度学习的潜在优势就在于可以利用 ...

  5. 一文读懂梯度下降背后的数学原理几何

    (给视学算法加星标,修炼编程内功) 来源:AI科技评论 对于诸位"MLer"而言,梯度下降这个概念一定不陌生,然而从直观上来看,梯度下降的复杂性无疑也会让人"敬而远之&q ...

  6. 深入卷积神经网络背后的数学原理 | 技术头条

    参加「CTA 核心技术及应用峰会」,请扫码报名 ↑↑↑ 作者 | Piotr Skalski 译者 | Monanfei 编辑 | 十月Rachel.Jane 出品 | AI科技大本营(id:rgzn ...

  7. 【深度学习】解析深度神经网络背后的数学原理

    来源:产业智能官 解析深度网络背后的数学 如今,已有许多像 Keras, TensorFlow, PyTorch 这样高水平的专门的库和框架,我们就不用总担心矩阵的权重太多,或是对使用的激活函数求导时 ...

  8. 深入卷积神经网络背后的数学原理

    来源:AI科技大本营 摘要:在计算机神经视觉技术的发展过程中,卷积神经网络成为了其中的重要组成部分,本文对卷积神经网络的数学原理进行了介绍. 文章包括四个主要内容:卷积.卷积层.池化层以及卷积神经网络 ...

  9. 转载:强化学习中Bellman最优性方程背后的数学原理?

    一. Bellman最优 贝尔曼方程在强化学习(RL)中无处不在,它是由美国应用数学家理查德·贝尔曼(Richard Bellman)提出,用于求解马尔可夫决策过程. 贝尔曼最优性方程 贝尔曼最优性方 ...

最新文章

  1. OpenCV3的机器学习算法-K-means-使用Python
  2. 让用户更改自己的帐号
  3. BZOJ 1845三角形面积并
  4. 网站集成QQ登录功能
  5. 量化交易入门读物列表
  6. 基于NodeJS的HTTP server Plus 2:防盗链(referer)
  7. 软件设计模式之单例模式
  8. CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告
  9. 《重构-改善既有代码的设计》读书笔记
  10. 演化博弈论----gyy参考总结
  11. 经典卷积神经网络---VGG16网络
  12. 三款常用IP发包工具介绍
  13. c语言次方函数,C 求n次方函数
  14. web期末网站设计大作业:动漫网站设计——龙猫(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 动漫漫画网页设计...
  15. Windows 应用商店无法打开解决办法
  16. Linux——vi/vim文本编辑器、用户管理、关机重启的相关命令
  17. 设计模式之禅【代理模式】
  18. git如何安装aur_Linux┊一个好用的AUR工具yaourt | 简单.生活
  19. 438. 找到字符串中所有字母异位词【异位词-哈希数组】
  20. 2021年新安装的Win7系统,Windows Update无法更新,提示错误代码80072EFE

热门文章

  1. 身边的设计模式(一):单例 与 RedisCacheManager
  2. 短信验证码“最佳实践”
  3. 蒋金楠:200行代码7个对象《ASP.NET Core框架揭密》苏州.NET俱乐部课程分享
  4. ASP.NET Core 网站运行时修改设置如何自动生效
  5. IdentityServer4实战 - 基于角色的权限控制及Claim详解
  6. Orleans稍微复杂的例子—互动
  7. 记一次分布式B站爬虫任务系统的完整设计和实施
  8. 在.Net项目中使用Redis作为缓存服务
  9. 基于CefSharp构建基于Chromium的应用程序
  10. 怎么查看mysql正在运行的语句_MySQL如何查询当前正在运行的SQL语句