设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

从逆向工程说起:科技和文化融合没那么简单

2014-2-24 10:45| 发布者: joejoe0332| 查看: 3094| 评论: 0|原作者: ahxxm|来自: tech2ipo

摘要:   “只有在公司发言人描述成功时,才会说产品从理念到执行一帆风顺。”有时候我们会简单地认为,了解某项成功产品的运行原理,就等于知道了它成功的原因,然而这种逆向工程分析忽略了科技在发展过程中遇到的各种意 ...
  “只有在公司发言人描述成功时,才会说产品从理念到执行一帆风顺。”有时候我们会简单地认为,了解某项成功产品的运行原理,就等于知道了它成功的原因,然而这种逆向工程分析忽略了科技在发展过程中遇到的各种意外因素——放弃的发展道路,某项功能背后不同寻常的故事,功能和产品演绎过程,随意做出的决策,以及低谷和失败时期。它能告诉我们产品背后的技术原理,而非设计哲学和打造过程。Nick Seaver 为我们讲述了一些他对逆向工程的思考——


  2014 新年伊始,The Atlantic 网站增加了一项新功能:电影微风格生成器,该功能来源于编辑亚历克西·马德里加尔(Alexis Madrigal)对 Netflix 电影分类算法的逆向工程。



  Netflix 开发了一套给电影添加标签的系统(“altgenres”),它能够整合电影的各个标签,为用户提供细致的电影分类名,比如:令人动情的·运动题材·独立电影,上世纪三十年代出品的·谍战题材的·动作冒险影视剧,上世纪七十年代出品的·在欧洲拍摄的·令人伤感的·故事片,视觉震撼的·国外的·怀旧剧……等等。


  有时候这些分类会准确得有种荒谬感,光是看它们就是一种独特的乐趣,它们让人怀念早期的互联网目录和 Usenet 新闻组,当时,有人说互联网会变成一个希尔伯特旅馆,为任何能够想象到的内容提供空间。

  
  Netflix 这些分类名引起了编辑马德里加尔注意,他设法抓取了所有分类名。获取工作从 2013 年底开始进行,光是用脚本读网站上的分类信息和生成文件就耗费了超过 24 个小时,最终统计结果是,Netflix 共有 76897 种“微风格”。显然,这些微风格是通过某种未曾见过的算法生成的。


  马德里加尔对算法非常好奇:它们是怎么生成微风格的?生成过程中有什么普遍要遵守规律吗?为什么效果那么好,最终整合的结果会显得合理、具体而且贴切?


  他开始进行语料分析,并采访了 altgenres 系统设计者,最后他将分析结果写成了一篇文章,此文堪称当代网络新闻典范,由多人协作编写,有干货有深度,长达 5000 多词,文章不仅描写了(按流量排行)最大的网络公司之一 Netflix 的关键系统运行原理,还反应了人与机器是怎样打交道的。文章开头嵌入了由马德里加尔和佐治亚理工学院教授伊安·博古斯特(Ian Bogost)共同编写的微风格生成器,接下来的内容是他兴趣产生、获取数据、分析和最终得出结论的整个过程。


  作为一个参与了过滤算法系统研究项目的人,我非常感兴趣人们心中 Netflix 地位如何,这家公司成功地将科技实践与文化相结合。大众通常认为这两者是不兼容的:软件工程注重的是普遍规律,比如运行效率、合理性、算法,文化则是主观而具体的东西,比如个人喜好、创造力和艺术表达。大众自然就觉得,科技和文化走不到一起,工程师涉足文化必然会搞糟。路透社专栏博客作者菲利克斯·萨尔蒙(Felix Salmon)抱怨道,马德里加尔的微风格生成器“把那些不可言喻的事物给系统化了”。


  尽管软件工程行业有着这样糟糕的名声,我们还是发现,科技和文化正渐渐交织在一起。Netflix 这样文化向的软件公司就是一例,还有许多其他例子,就电影行业来说,电影这种文化形式依赖着一整套复杂的高科技设备,摄像头、视频编辑设备、数字电影分发系统等等,这一整套实用科技的产生,也离不开电影产业的需求和影响。可以这么说,科技的直率和文化的随性使两者交融在一起。


  这一事实,使得我们更难讨论科技与文化之间的联系,有人会认为科技对文化是一种入侵:“这些定量分析者和定性分析者,简直捞过界了啊!我们所敏感的人文情怀,居然要被技术名词表示了吗!”倘若两者事实上已经混合在一起了,那这种小资感叹也就不成立了:定性分析者不也是在表达自己关于文化的意见吗?定量分析者开发的工具也不会妨碍任何人表达自己情绪啊?




  如今像 Netflix 这样行走于科技和文化之间的公司数量激增,让科技和文化相结合的实例也在激增,我的一部分研究内容就是这些案例,它们代表了科技行业在不同方面的实践,包含着各种系统的设计、建设流程,评估标准和运行原理。


  马德里加尔把 Netflix 的故事归类为“逆向工程”,Netflix 并没有干涉文化的运行,而是对其进行逆向工程,最终理解了电影文化是怎么运作的。为了弄清楚 Netflix 的逆向工程,马德里加尔自己也对 Netflix 进行了逆向工程,所以这里有两种逆向工程:首先是 Netflix 工程师为了解电影而进行的文化研究,然后是网站编辑为了解工程师对其算法工作进行的研究。


  那么,到底什么是“逆向工程”呢?什么东西能进行逆向工程研究?研究者又会作出一些什么假设?


  就像其他所有分析框架一样,逆向工程对现成案例的解释都有优势和不足,我想说的是逆向工程有着局限性:它只能告诉帮助我们了解某个现成科技产品是如何运作的,却难以让我们知晓它为什么要这样运作,因为逆向工程从完成品入手,忽略了科技在发展过程中遇到的各种意外因素——放弃的发展道路,某项功能背后不同寻常的故事,功能和产品演绎过程,随意做出的决策,以及低谷和失败时期。从历史发展的角度看起来,这些一意孤行的决策产生都有其特定原因,然而从逆向工程角度却看不出原因。


  在讨论文化与技术时,这一点体现得尤其明显,“技术”让我想到的是性能优化、打造功能和是否存在必要性,“文化”则让我想到相反的一面:多样性、演绎过程和随意性。逆向工程仅会狭义地从技术角度分析运行原理,它不能告诉我们工程师有着怎样的人文情怀。很明显,“文化”一词在本文中绝不是用于描述当代文化产业的状态。


  受到马德里加尔的文章启发,我想到了一个大众眼中逆向工程师形象的电影。随着文化和科技的发展进一步脱离自身范围所限、相互重叠,我们应该重新审视这个话题,不再分开看待两者。



  《记忆裂痕》是一部关于逆向工程的恐怖片,改编自编剧菲利普·迪克(Philip K. Dick)所写的一个短故事。主角是“业内最好的”逆向工程师詹宁斯,各种公司都高价雇佣他,以挖掘竞争对手的秘密,但条件是事后必须抹除相关记忆。詹宁斯就像是知识产权的导管:从设备中提取秘密,然后公司从他身上提取这些秘密。


  接下来的转折情节你也许猜到了,有一回詹宁斯醒来时没有得到任何报酬,而是一个装有“自愿放弃酬劳”的申明和一个小饰品,随后发现原雇主想要杀人灭口,小饰品成为了他恢复记忆的线索,一场阴谋渐渐浮出水面……


  《记忆裂痕》中对于逆向工程的描写符合人们最常见的认知:了解某个事物,就是了解它如何运作的,而这些运行原理就像客观存在的物体一般,可以藏得很深,但终究会被人挖掘出来。在人们的认知中,通常会假设有障碍存在解事物过程中,逆向工程就是越过障碍获取真相。


  所以在科学界,科研人员会用“逆向工程”比喻接近自然界真相的研究工作,生物学家可以对细胞进行逆向工程,其实他们是在研究细胞某个功能的机理,这种工作也常常被称为“拉开自然的帷幕”。在古代,人们把自然界拟人化、把她当作一种意识生命体存在,她掌握着科研人员想要了解的秘密。


  从更传统的角度上来说,逆向工程与字面意思一致,是个揭开工程设计者掌握的秘密的过程。不像科学界,“逆向工程”指挖掘未知真相,也不是罗生门效应一般,不同人对同事物有多种解释,在传统意义上,逆向工程前提是对某个已知事物进行、假设它的秘密由某个人或群体掌握,然后揭开这些秘密,这样做最终并不会产生新知识。


  传统逆向工程并不能让我们了解一切:为什么工程师选择这项技术,而不用另外一个相同功能的?如果说技术一直在变动(比如 Netflix 的算法和数据结构),那它为什么会变动?


  最好的情况是,逆向工程能告诉我们这些技术的运行原理,而非设计哲学和打造过程,但有时候,连运行原理都无法得出。


  Netflix 以及当今大多数公司都有着一层人为制造的帷幕:一系列保密协议和知识产权。这层帷幕遮掩了算法的秘密,也引起了马德里加尔的兴趣。对公司内部来说,马德里加尔的文章并没有任何吸引人之处,但文章中提到,“在公司以外甚至从未有过收集这些数据的人”,这就是文章新闻价值所在。帷幕造成的后果是,关于 Netflix 的知识在公司内部不足为奇,而外部所有人都一无所知。


  所以当马德里加尔的逆向工程工作堪堪停止时,故事高潮来临了,Netflix 产品创新部门副总裁、电影微风格标签系统设计者托德·耶林(Todd Yellin)出现,他掌握着连接科技与文化的 altgenres 系统的秘密,按照逆向工程的逻辑,他能够揭开帷幕,告知我们想要知道的一切。


  对耶林采访后,马德里加尔了解了电影微风格标签的一般规律,了解了一些不能公之于众的事情——长达 36 页的微风格分类员训练指南的内容。但当文章讲到这些电影分类数据与 算法、数据结构等智能基础设施结合时,他是这么写的:

“Netflix 做到了真正的结合:基于机器学习和算法的微风格分类语法。我们有一群愿意深入研究问题的 Geek 们。”




  这话和“我们用电脑解决了问题”一样没诚意,这种张嘴就来的套话侧面反应了逆向工程会遇到的问题:帷幕是一层接一层的。马德里加尔只是稍微了解了 altgenres,Netflix 就开始云山雾罩的勾勒自家技术,只谈大局不谈细节了。如果能与技术社区、学术研究团体合作研究,也许能够稍深入到技术细节实施的过成,但永远无法获知背后原因。


  这一事实并不意味着我们想知道的一切都是商业机密,逆向工程师看到耶林含糊的前半句“基于机器学习和算法的微风格分类语法”会感到受挫,不过后半句“一群愿意深入研究问题的 Geek 们”还是给出了一些思考的线索和方向:Geek 们是怎么设计算法,以“深入”了解文化的?他们对这项工作的喜爱,能够起到什么促进作用?


  这些问题的答案不像算法一样藏得那么深,我们往往可以从工程师们的工作方式和对项目的描述中看出答案来。但逆向工程本身局限性所在,它的重心是揭露科技方面的秘密,无法与工程师对于文化的想象和参与相结合。对于我们这种研究算法过滤系统的文化后果的人,这些想象和参与比技术执行细节更有意义,它们通常不被列为秘密,但它们经常变化、还比较难以获知,而且随时有可能被成为机密。

“我的首要目标是:分离内容!”


  虽然耶林没有告诉我们足够多技术细节(足以产生一个竞争对手的那么多),但他还是透露了一些自己关于电影的见解,以及他理解电影的方式。如果你对推荐系统算法比较熟悉,你会发现他描述的系统,是典型的基于内容的推荐系统。“传统”推荐系统依赖于用户评分,对其他信息的依赖不那么强烈,而基于内容的推荐系统在人工和算法分析帮助之下,能够“试图理解自己推荐的内容”。要提供这些帮助需要做的工作量不小,但过去十年中,随着数据和相应分析工具的增长,基于内容的推荐系统也变得普及起来。当今多数大型推荐系统都是混合型,一方面参考用户评分,一方面对推荐内容进行分析。


  Netflix 对于好莱坞的逆向工程,就是对推荐内容进行分析:努力把电影解析成推荐算法所需的形式,录入数据库。马德里加尔把这个解析过程称为“逆向工程”,意味着他认为所有电影背后存在一些普遍而值得挖掘的规律,最后他浓墨描绘了 Netflix 算法的全面:要详细到什么程度才算标签?“每件事,每个人。”


  但耶林描述的解析过程,并不是电影文化唯一的理解方式,它仅仅是一种特定的认知和解释模式而已,这种模式与结构主义非常相似——结构主义是一种文化分析模式,20 世纪中期时在人文学界和社会科学界十分流行。根据罗兰·巴尔特(Roland Barthes)的解释,结构主义的分析模式是将事物先分解再重构,来发现隐藏在奇异表象下的事实。


  显然,托德·耶林就是一位结构主义者。他告诉马德里加尔,他设计微风格分类系统时首要目标就是“分离内容”,雇佣一大批人员,让他们根据训练指南把电影分解成最基本的元素:微风格。然后创造出一个“Netflix 量子理论”,把基本元素重新组合成 altgenres,这个细致异常的电影分类,帮助用户从 Netflix 电影库中寻找适合自己的电影。


  听起来结构主义像是一种分析文化的科学方式,不过它不够客观。在分解和组合过程中,分析者不仅仅做了剪切粘贴工作,还加入了自己创造的内容。不论微风格能够多么细致和准确,它都不等于电影本身,正如巴尔特笔下所写,它是一种“定向而带有主观成见的模拟”,是带有目的而进行的文化再创造。如果不同分析者对于电影内容有异议,那内容分离结果就会有差异。


  这与普通人对工程师的认知并不一致,我们这些人不光冷静理智地追求唯一最优解,还有着大众“意料之外”的创造力,根据不同项目需要考虑的因素,我们会有一系列可行的工程规划选项。巴尔特认为,进行结构主义分析就像诗歌写作,科技工作亦是如此,都极具表现力。Netflix 的 alggenres 系统绝不是电影的唯一分类方式,它只是众多方式中行之有效的一种,是一个由 Netflix 工程师、分类员们根据对电影含义、相关程度和用户口味进行的假设,而共同打造的文化产物。用“逆向工程”来描述这个富有创意的实践不够准确,因为它的前提是真相只有一个,相反,我们可以用一个更准确的词:诠释。


  归根结底,逆向工程有两个存在争议的问题:

  • “逆向工程”这个词,能够准确描述 Netflix 工程师对文化的互动吗?

  • 我们能否通过逆向工程,了解工程师们的产品设计原理?


  在我看来,这两个问题答案都是“不能”,理由相同:逆向工程作为描述事实和逆推原因的研究策略,会忽视工程师们打造产品过程中所放弃的选择。随着文化和科技的重叠,逆向工程这种专注于科技本身的策略就显得过于理想化,策略本身不适于研究意外事件、诠释的原因、随意做出的决断等因素,它还假设工程师仅会关注功能实现和运行效率、假设文化本身和对文化的工程实践都只遵循同一种逻辑,这些假设越发与现实冲突:只有在公司发言人描述成功时,才会说他们的产品从理念到执行是一条直线。


  如尼古拉斯·迪尔科普洛斯(Nicholas Diakopoulos)所写,逆向工程有助于了解艰深晦涩的科技运行原理,但它不能解释其原因。这些复杂的科技——搜索引擎,推荐系统,其他算法过滤系统——一直在改变,我们需要从其他方面来了解改变的原因和过程,而不仅仅是科技本身运行。


  逆向工程的风险在于,我们会认为 Netflix 公司唯一有价值的东西是技术细节,但根据我的研究,我认为如果想要理解这些系统的改革历程,技术细节并不比帷幕后工作者的文化生活和创造力重要,而且后者通常不是公司机密,相对技术技术更容易获取。


  所有工程都是文化和科技的结合,即使是马德里加尔对 Netflix 微风格的逆向工程也超过了科技界限:在制作分类生成器的时候,他会浏览 altgenres,与人交谈,采访设计者听他解释,然后做出自己的解释……不论是逆向工程师还是其他工程师,都有着文化生活,我们需要认识到这一点。而且如果想要理解 Netflix 这种公司的话,不仅需要认识到文化和科技——人类和计算机——是不可分的,更重要的是去理解它们的融合过程。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部