本文摘自杰夫·霍维茨(Jeff Horwitz)的新书《破碎的代码:Facebook 的内幕和揭露其有害秘密的斗争》。经企鹅兰登书屋旗下的 Doubleday 出版社授权转载。杰夫·霍维茨版权所有。
2006 年,美国专利局收到了一份申请,专利内容是“自动生成的展示页面,其中包含用户所在社交关系网络中的另一用户的信息”。该系统可以避免人们在“分散且无序”的内容中搜索感兴趣的东西,而是会主动按“偏好顺序(preferred order)”生成“与其相关的”信息列表。
专利申请上列出的提出者是“扎克伯格等人”,对应产品是新鲜事推送(新闻推送,News Feed)。
向用户展示活动流的想法并不新鲜,照片共享网站 Flickr 和其他网站一直在尝试这种展示方式,但当时在 Facebook 上带来的变化是巨大的。在那以前,Facebook 用户主要通过通知、戳一戳或查看朋友的个人资料来与网站互动。
随着新鲜事推送功能的推出,用户可以看到不断更新的帖子和状态变化。这一转变令当时使用 Facebook 的 1000 万用户感到震惊,他们不喜欢自己的活动被监控,也不喜欢自己曾经“沉寂已久的”个人资料被重新挖掘出来以更新信息流上的内容。
面对广泛的投诉,扎克伯格写了一篇帖子,向用户保证,“你们所做的一切不会被所有用户看到,而是与关心你近况的人和朋友分享。”
听见用户的抱怨和倾听他们的抱怨不是一回事。正如克瑞斯·考克斯(Chris Cox)后来在一次新闻发布会上指出的那样,新鲜事推送在促进平台活跃度和连接用户方面取得了立竿见影的积极效果。
用户参与度迅速翻了一番。在该功能推出后的两周内,超过 100 万用户首次共同对一件事情表现出了兴趣。什么事情能让这么多人团结起来?答案是一份请愿书,要求移除这种“跟踪狂”一样的新鲜事推送功能。
事后看来,用户反感的不透明系统非常简单。内容大多按时间倒序出现,并进行手动调整,以确保人们看到更受欢迎的帖子和一系列其他内容。考克斯说:“一开始,新闻(新鲜事)推送的排名系统就出现了问题。”
在一段时间里,这种推送方式没出现什么大问题。但每个人的朋友列表都在增加,Facebook 也推出了新功能,如广告、页面和兴趣小组。随着娱乐新闻、热梗和商业内容开始与朋友的新鲜事发生竞争,Facebook 需要确保刚刚登录的用户能够在看到营销内容之前看到他们最好朋友的订婚照片,因为后者才是他们更在意的内容。
最初的内容排序工作,最终被命名为“EdgeRank”排序法,是一个简单的公式,根据三个主要因素对内容进行优先排序:帖子的发帖时间、参与度以及用户和发帖者之间的相互联系。作为一种算法,它考虑的东西并不多,只是将“帖子是新的?流行的?还是来自你关心的人的?”这三个问题转化为数学的一次粗浅尝试。
这背后没什么“黑科技”或者“阴谋论”,但用户再次对 Facebook 试图控制他们所看到的东西的举动表示反感。与此同时,Facebook 的活跃度等指标再次全面跃升。
Facebook 当时的推荐系统仍处于初级阶段,但用户一面强烈反对,一面又狂热使用,两者之间出现了巨大且不和谐的反差,这让公司内部出现了一种不可避免的结论:普通人对 Facebook 机制的看法可以被忽视。用户不停地要求“移除”这些功能,但 Facebook 不为所动,一切都在顺利推进。
到 2010 年,该公司希望改善 EdgeRank 背后粗糙的数学公式,转而使用基于机器学习的技术推荐内容,机器学习是人工智能技术的一个分支,专注于训练计算机设计自己的决策(推荐算法)。工程师们不会让 Facebook 的系统根据简单的数学对内容进行排名,而是对其进行编程,分析用户行为并由其自己设计出排名公式。
人们所看到的将是不断实验的结果,该平台提供它预测的最有可能从用户那里获得赞的东西,并实时评估自己预测的结果。
尽管 Facebook 的产品越来越复杂,用户数据的收集规模之大前所未有,但 Facebook 对用户的了解仍然不够,无法向他们展示个性化广告。品牌喜欢在 Facebook 上创作内容所带来的关注和轰动,但他们觉得在该公司的平台和产品上付费没有吸引力。
2012 年 5 月,通用汽车取消了其在 Facebook 上的全部广告预算。一位著名的数字广告高管宣称,Facebook 广告“从根本上说是网络上表现最差的广告服务之一”。
(来源:COURTESY OF THE AUTHOR)
解决这个问题的重任落在了由华金·奎诺内罗·坎德拉(Joaquin Quiñonero Candela)管理的团队身上。奎诺内罗是一名在摩洛哥长大的西班牙人。2011 年,他在英国微软从事人工智能相关工作时,他的北非朋友们开始兴奋地谈论社交媒体上疯狂传播的抗议活动。
他用来优化必应搜索广告的机器学习技术显然可以用在社交网络上。奎诺内罗说:“我加入 Facebook 是因为看到了阿拉伯之春。”
奎诺内罗发现,Facebook 构建产品的方式几乎与他们的结果一样具有革命性。应一位朋友的邀请,他参观了 Facebook 的门洛帕克园区,当他看到一位工程师对 Facebook 的代码进行了一次重要但无监督的更新时,他感到十分震惊。
一周后,奎诺内罗收到了 Facebook 的工作邀请,这说明该公司的流程推进速度比微软快得多。奎诺内罗开始从事广告推荐算法相关的工作,他的时机再好不过了。
机器学习和计算速度的进步使 Facebook 不仅可以将用户分类到细致的人口统计领域,比如“旧金山 20 多岁的单身异性恋女性,对露营和萨尔萨舞感兴趣”,还可以发现他们点击的内容之间的相关性,然后利用这些信息猜测他们更适合看到哪些广告。
最开始,这套系统对如何最大化广告点击率一无所知,它推送的广告几乎是随机的猜测。该系统随后会从点击和未点击的结果中吸取教训,使用反馈来完善其预测哪些广告最有可能成功的模型。它并非无所不知,推荐的广告常常令人费解。
但数字广告的成功门槛很低:哪怕只有 2% 的用户点击了一个广告,就可以算是成功的。由于 Facebook 平台每天提供数十亿条广告,即使是只能产生一般收益的算法调整也可能增加数千万或数亿美元的收入。
奎诺内罗的团队发现,这种算法可以大量地修改和试错。“我告诉我的团队要行动迅速,每周更新。”他说。
快速行动很有效果。该团队的人工智能模型不仅改善了收入,还改善了人们对该平台的感受。
更有针对性的广告意味着,Facebook 可以在不增加广告量的情况下提高自己从每个用户身上赚到的钱,而且不会带来更多问题。就算 Facebook 向青少年错误地推销假牙安固膏,也不会有人因此死掉。
广告是 Facebook 应用机器学习技术的前沿阵地,很快每个人都想从中分一杯羹。对于需要增加用户活跃度的产品高管来说,包括加入群组、添加朋友和发布帖子数量,该技术的吸引力显而易见。
如果奎诺内罗的技术可以提高用户点击广告的频率,那么它们也可以提高用户在平台上参与其他一切活动的频率。
每一个负责内容排名或推荐的团队都争先恐后地对其系统进行全面检修,这引发了 Facebook 产品复杂性的爆炸性增长。员工们发现,最大的收获往往不是来自深思熟虑的举措,而是来自简单的“试错”。
工程师们没有重新设计算法(因为这很慢),而是通过快速而肮脏的机器学习实验获得了好结果。这些实验相当于将数百种现有算法的变体扔到现实世界里,看看哪些版本行不通,哪些版本的用户表现最好。
他们不一定知道为什么一个变量很重要,也不一定知道一种算法在预测评论的可能性方面如何优于另一种算法。但他们可以继续调试,直到机器学习模型产生了一种在统计学上优于现有算法的算法,这就足够了。
很难想象一种构建系统的方法能更具体地体现“快速行动,打破一切”的口号。Facebook 还想要更多。扎克伯格向专注于深度学习的法国计算机科学家杨立昆(Yann LeCun)示好,希望构建能够以受人类思维启发的方式处理信息的计算机系统。
杨立昆因创造了使面部识别成为可能的基础人工智能技术而闻名,他被扎克伯格任命负责一个部门,该部门旨在将 Facebook 置于人工智能基础研究的前沿。
在广告方面取得成功后,奎诺内罗被赋予了同样艰巨的任务:尽快将机器学习融入公司的血液之中。
他最初领导了 20 多名员工,负责构建新的核心机器学习工具并将其提供给公司其他部门的团队,这个团队的规模在接下来的三年里不断壮大。但它仍然远远不够大,无法帮助每一个需要机器学习帮助的产品团队。
从头开始构建模型的技能太专业了,工程师们无法轻易掌握,而且你无法通过四处砸钱来增加机器学习博士的数量。
他们找到的解决方案是构建 FB Learner,这是一种机器学习的“临摹”版本。它将复杂深奥的技术打包成一个模板,供那些完全不了解自己在做什么的工程师使用。
FBLearner 在 Facebook 内部推进机器学习的应用,就像 wordPress/ target=_blank class=infotextkey>WordPress 等服务曾经在网站构建领域所做的那样,它让网站构建不再需要使用 html 或配置服务器。
然而,这些良莠不齐的工程师正在扰乱这个迅速成为全球最大通信平台的内核。
Facebook 的许多员工都意识到公司外的人对人工智能的担忧与日俱增。
由于算法的拙劣设计,本来旨在奖励好医院的算法变成了惩罚治疗重病患者的医院,而旨在量化假释者再次犯罪风险的模型被证明会偏向于将黑人关进监狱。但在社交网络上,这些问题似乎很遥远。
FBLearner 的一位重度用户(员工)后来将机器学习在 Facebook 内部的大规模传播描述为“将火箭发射器送给 25 岁的工程师”。但当时,奎诺内罗和该公司称之为一场胜利。
Facebook 在 2016 年宣布:“工程师和团队,即使几乎没有专业知识,也可以轻松地构建和运行实验,并比以往更快地将人工智能驱动的产品部署到生产中。”Facebook 吹嘘 FB Learner 每天摄入数万亿个用户行为数据点,工程师每月在这些数据点上进行 50 万次实验。
Facebook 收集的大量数据,以及广告定向投放结果如此之好,以至于用户经常(错误地)怀疑该公司窃听了他们的离线对话,甚至引发了“Facebook 了解你的一切”的说法。
这不太正确。机器学习的奇迹掩盖了它的局限性。Facebook 的推荐系统是根据用户行为之间的原始相关性来工作的,而不是通过识别用户的口味和兴趣,然后根据它们提供内容。
新鲜事推送无法分辨你是喜欢滑冰还是骑越野自行车,喜欢嘻哈还是 K-pop,也无法用人的语言解释为什么一个帖子出现在你的推送中,而不是另一个帖子。
尽管这种不可解释性是一个明显的缺点,但基于机器学习的推荐系统表明了扎克伯格对数据、代码和个性化的坚定信念。他相信,Facebook 的算法摆脱了人类的局限、错误和偏见,具有无与伦比的客观性,也许更重要的是,它的高效率。
另一项机器学习工作致力于弄清楚 Facebook 推荐的帖子中到底有什么内容。这些被称为分类器的人工智能系统被训练用于对大量数据集进行模式(规律)识别。
在 Facebook 创立的几年前,分类器就已经证明了自己在打击垃圾邮件方面的重要作用。它使得电子邮件服务商不再依赖简单的关键词过滤器,手段也不仅限于单纯的屏蔽。
通过收集和比较大量的电子邮件,有些被标记为垃圾邮件,有些不是垃圾邮件,机器学习系统可以开发自己的标准来区分它们。
一旦这个分类器被“训练”完成,它就会被部署到现实世界中,分析用户收到的每一封电子邮件,并预测每封邮件属于收件箱、垃圾箱或者应该直接被屏蔽的可能性。
当机器学习专家开始进入 Facebook 时,其分类器要回答的问题列表已经远远超过了“这是垃圾邮件吗?”,这在很大程度上要归功于像杨立昆这样的人。扎克伯格看好该技术未来的进展及其在 Facebook 产品中的应用。
早在 2016 年,扎克伯格就预测分类器将在未来五到十年内超越人类的感知、识别和理解能力,使公司能够及时阻止不当行为,在连接世界方面取得巨大飞跃。事实证明,这一预测过于乐观。
即使技术进步了,数据集增加了,处理速度加快了,机器学习的一个缺点仍然存在:该公司生产的算法一直无法解释它做出的决策。
工程师可以通过测试分类器来评估它的成功,比如通过它的判断结果来评估准确率(precision)和召回率(recall)。(注:这两个是机器学习领域常用的模型评估指标。)
但由于该系统正在教会自己如何根据自己设计的逻辑来识别某些东西,所以当它出错时,很难找到符合人类认知的原因。
有时错误看起来毫无意义。其他时候,它们可能是系统性的,反映出了人为错误。阿尔图罗·贝加尔(Arturo Bejar)回忆道,在 Facebook 部署分类器来检测色情内容的早期,该系统经常试图选出床的图像。
换句话说,模型没有学会如何识别图像中的色情内容,而是教会了自己如何识别人们最经常在哪些家具上进行色情活动。
这个问题很容易解决,工程师只需要用更多正常的床垫场景来训练模型。这听起来有点搞笑,但你仔细想想,这些工程师刚刚搞砸的机器学习形式是 Facebook 内部使用的最基本的形式之一。
类似的根本性错误不断出现,尽管该公司开始依赖更先进的人工智能技术来做出比“判断色情/非色情”更重要、更复杂的决定。该公司全力投入人工智能,既要确定人们应该看到什么,也要解决可能出现的任何问题。
毫无疑问,计算机科学散发着耀眼的光芒,其成果也是清晰可见的。但是 Facebook 采用机器学习的速度、广度和规模是以可理解性为代价的。为什么 Facebook 的“猜你喜欢页面”算法似乎如此专注于推荐某些主题?
一段关于种植牙的计算机动画片段是如何突破一亿次浏览的?为什么一些新闻媒体只是重写了其他媒体报道过的故事,却能经常保持病毒式的传播量?
面对这些问题,Facebook 的沟通团队会注意到,该公司的系统对人们的行为做出了回应,但没有考虑“品味”。
这些都是难以反驳的观点。他们还掩盖了一个令人不安的事实:Facebook 正在以它不完全理解的方式实现其增长。
在宣布开始使用机器学习推荐内容和个性化广告的五年内,Facebook 的系统将严重依赖那些自我训练的人工智能。杨立昆曾自豪地宣称,如果没有机器学习这项技术,该公司的产品不过就是“一地尘土”而已。
支持:Ren