透明思考


Transparent Thoughts


  1. 机器学习项目如何管理:工作内容

    前一篇文章介绍了机器学习的基本过程,然后讨论了如何对机器学习项目设置期望的问题。我们了解到,度量准确率的指标可以有多种,需要根据应用场景来选择。一旦选好了度量指标,接下来就可以围绕这个指标来划分任务、监控进度、管理风险。

    机器学习项目涉及哪些工作

    站在非常宏观的角度,机器学习系统工作的方式是:你有一个模型,你把一堆数据输入给它,然后你以某种方式使用它提供给你的输出。所以机器学习项目要完成的任务也是三大块:处理输入;获得模型;提供产出。

    1. 处理输入
      a. 你需要获得已有的数据
      b. 你需要对数据做矢量化操作,把原本丰富多样的数据变成有若干列的矢量
      c. 你需要对数据做特征工程,找出可能蕴涵了知识、值得被学习的那些特征项
    2. 获得模型
      a. 实际上很多时候你可以使用现成的模型,包括:(i)下载现成的离线模型,或者(ii)使用在线的人工智能服务
      b. 如果没有现成的模型,你也可以考虑使用现有的数据来自行训练模型
    3. 提供产出
      a. 机器学习的结果可能通过某种人-机(UI)或机-机界面(API)被用户直接使用
      b. 作为项目的产出,机器学习模型需要被嵌入到整个数据流水线中
      c. 作为项目的产出,机器学习模型的开发、测试、部署需要有DevOps的支撑

    在所有这些任务中,只有2.b“自行训练模型”(上图右下角标星星的部分)需要新的技能和管理方法,其他都是传统的软件开发任务,可以用标准的Scrum等敏捷方法拆分任务和管理。也就是说,如果你需要的人工智能能力已经有一个现成的模型提供,那么整个项目就是一个传统的软件开发项目,只是需要使用一些新的工具或API而已。

    下面我们聚焦讨论需要自行训练模型时,这部分工作应该如何拆分、如何管理进度和风险。

    自行训练模型的流程

    在自行训练模型的情况下,如上图所示,你会用历史数据(X和Y)来训练一个模型,然后用这个模型对未来的生产数据(X-hat)做预测(算出Y-hat)。不论采用什么指标来度量准确率,模型在训练数据上的表现一定好于在生产数据上的表现,这是因为模型从训练数据中“学到”的知识不一定在生产数据中完全重现,或者用黑话来说,模型在训练过程中“拟合”了训练数据的特征。也就是说,如果一个模型对训练数据表现出了95%的准确率(先不管采用哪个准确率指标),其实你并不知道这个模型对生产数据会表现什么水平的准确率,于是你也不知道这个模型是否好到可以上线运行。

    为了更有效地衡量模型的表现,我们会在开始训练模型之前先拿出一小部分历史数据(例如全部历史数据的10%)用于测试,整个训练过程不接触这部分数据。于是我们就有了“训练集”(training set)和“测试集”(test set)。很多时候我们还会分出一小部分数据作为“验证集”(validation set),为了简化问题,我们可以先采用“训练集+测试集”这种设置。

    把历史数据分成训练集和测试集以后,可以预期,模型在训练集上的表现会优于在测试集上的表现,这两个表现通常都会低于项目期望值。我们把“【模型在训练集上的表现】与【期望值】之间的差距”叫做Bias,把“【模型在训练集上的表现】与【模型在测试集上的表现】之间的差距”叫做Variance。

    于是就有3种可能的情况:

    1. High Bias:模型在训练集上的表现远低于期望,模型还不能实用(此时Variance如何并不重要);
    2. Low Bias, High Variance:模型在训练集上表现好,但是在测试集上表现差,模型还不能实用;
    3. Low Bias, Low Variance:模型在训练集和测试集上表现都好,可以投入实用。

    我们通常会从简单的机器学习算法、手边立即能获得的数据开始尝试。这时候通常Bias会高,因为过于简单的模型不足以呈现数据背后的知识,这时我们说模型“拟合不足”(Under-fitting)。在这种情况下,可以采用的措施包括:

    • 使用更复杂的机器学习算法
    • 使用更复杂的神经网络架构

    用更复杂的机器学习算法和神经网络训练出来的模型,通常能更好地拟合训练集,进入“Low Bias”的状态。这时我们再关注模型在测试集上的表现,如果测试集的表现远差于训练集的表现,就说明模型过度地针对训练集的特征做了优化,我们说模型“过度拟合”(Over-fitting)训练数据。在这种情况下可以采用的措施包括:

    • 引入Regularization通常能降低over-fitting的程度
    • 通过特征工程可以避免一些over-fitting的情况,例如排除掉一些严重过度拟合的特征
    • 引入更多的训练数据,包括数据量和特征量

    最终我们的目标是得到Bias和Variance双低的模型。

    潜在风险点

    从上述的工作流程中,我们可以预先识别一些潜在的风险:

    • 在Under-fitting的状态下,如果人员能力不足,就无法应用更复杂的算法
    • 在Under-fitting的状态下,如果计算资源不足,就无法训练更复杂的模型
    • 在Over-fitting的状态下,如果数据质量不足,就无法开展有效的特征工程
    • 在Over-fitting的状态下,如果数据数量不足,就无法训练高效的模型
    • 如果整个项目涉及的数据基础设施不足,就无法快速迭代实验

    于是,训练一个机器学习模型就不再是一个神秘的、盲目的、随机的过程。借助Bias、Variance、迭代实验的频率等量化数据,IT管理者和不懂技术的业务代表能更清晰地看到项目的进展,整个团队能更好地判断接下来需要做什么:是需要尝试更高级的神经网络呢?还是需要想办法获得更多的数据?或者是需要更多的计算资源?还是需要寻找某些特定的知识和技能?这样就避免了业务代表怀有不切实际的期望、又不知道技术团队在做什么而感到恐慌。

    在下一篇文章里,我会更加具体地介绍,如何借鉴Scrum和看板等敏捷方法的思路,把训练一个机器学习模型的工作拆分成更小粒度、更易于管理的任务,以及如何对机器学习项目进行可视化管理。


  2. 精准投放的原理及其担忧

    从WWW网站发源之初,网站的经营者们就清楚地认识到,自己经营的是一份媒体,就跟报刊杂志一样。媒体的收入,第一是来自读者付费,第二也是更主要的,是来自广告。于是站长们在自己的网站页面上开辟出或大或小、或纵或横的广告位,广告主则可以采购广告位。据笔者亲眼所见,迟至2001年,中国很多网站的广告销售方式仍然是由销售人员拿着一份打印出来的“刊例”(这个词也同样是来自报刊出版领域),直接向广告主介绍。购买广告位的方式,也通常是一家广告主承包一个广告位一段时间(通常是几天,有时长达几周),只有在最热门的广告位(例如首页顶部Banner)才有简单的轮换机制。广告收费是按照广告位与放置时长计算,网站几乎不向广告主反馈投放的效果。简而言之,这是在线广告的初创阶段,网站基本上是被当做报刊来经营的。

    这种投放方式显然是很原始的,最大的问题有两个:首先,广告主需要自己接洽多家媒体,分配各家媒体的投放预算,媒体则要自己管理多家广告主的投放排期,这对于广告主和媒体都是个很大的工作量;而且,广告投放出去以后效果如何,哪些媒体效果更好,后续投放应该如何调整,这些信息广告主无法获得,即使媒体有回馈数据,其中有多大成分的数据夸大,广告主也无从知晓。在这两个痛点的催生下,就出现了“媒体采买平台”的服务形式:经营这个平台的广告代理公司向大量媒体(即网站)购买广告位,广告主只要把广告投放到这一家代理公司,代理公司自会通过软件程序把广告派发到媒体。如此一来,广告主和媒体不用彼此一对一接洽,工作量都减少很多。并且在这个阶段,广告收费模式也改为按点击付费(通常会承诺一定浏览流量),广告主可以更准确地知道广告的效果,按实际效果付费。

    在媒体采买平台的基础上,相关的技术与业态又不断升级,逐渐形成了广告交易平台(ADvertisement eXchange,ADX)、供给方平台(Supply Side Platform,SSP)和需求方平台(Demand Side Platform,DSP)三大类平台协作的格局。供给方平台(SSP)为媒体服务,它负责汇集媒体广告位资源,尽量把广告位卖出最高价;需求方平台(DSP)为广告主服务,它负责汇集广告投放诉求,尽量以最低价格投放达到最佳效果;广告交易平台(ADX)则保持中立态度,为供需两方撮合交易,就像股市一样:只要有一个最高买价能匹配到一个符合条件的最低卖价,就会完成一次广告交易,DSP就会向SSP进行一次投放。

    IT技术创造的奇迹在于,这一系列看似复杂的竞价采购、交易撮合,可以在极短的时间内完成,因此交易的单元可以极小、交易量可以极大。在ADX发生的一次交易,标的物通常是“一次投放”,或者说是“一次浏览”。当你轻点鼠标,打开一个网页时,这个页面上的几个、十几个广告位就分别被SSP发送给ADX“叫卖”,匹配到出价最高的DSP“卖主”,然后把广告呈现在你面前。这整个投放决策的过程,业界标准要求在0.4秒以内完成。

    由于广告投放已经被细化到按次采购,于是广告位本身是否热门变得不再重要,竞价采购的对象变成了流量本身。当然,即使在网站发展初期、甚至在报刊杂志上,广告主和广告代理也会选择流量。例如雷克萨斯不会选择在城市晚报上投广告,而是会更多地在时尚杂志和飞机杂志上出现,这就是对“流量”(也即读者)做过筛选的结果。在这个例子里,丰田公司(或者其广告代理)从媒体属性上对读者的身份、职业、收入水平(统称为“流量属性”)有一个大致的推测,基于这个推测做了投放决定。然而受限于纸媒的技术特质,这个投放决定是非常粗糙的:第一,它能够获得的流量属性信息非常有限;第二,它只能对相当大的人群、在相当长的时间段上做决定;第三,它能得到的效果反馈非常少。

    而程序化的广告投放则完全克服了这三个局限:投放决定是基于每一次浏览、每一个流量来做出的;投放效果(有多大比例的用户点击广告)可以当天回馈给广告主;最重要的是,在线广告业务的经营者能够获得空前丰富的关于“流量”的信息。比如说,当你在微信中点开一个带广告的页面,DSP就有可能获得下列关于你的信息:

    • 你是谁:你的微信ID,你的手机号,你的性别、生日、星座、身高、体重、血型……
    • 你是个什么样的人:你的收入,你的生活方式,你的价值观世界观,你的意识形态,你的观点态度……
    • 你做哪些事:你上网看什么内容,你喜欢什么品牌,你买什么东西、在哪里买,你跟谁交朋友……
    • 你身边的环境:你在什么地方,你周围在发生什么,你在什么时间上网,你在乘坐地铁、公交车、还是滴滴专车……

    在线广告行业里把这些信息都称为“标签”,DSP就是基于这些标签来判断,现在点开网页的这个流量值多少钱,并在0.4秒内决定是否要投标竞价。所以当你听到“流量经济”、“流量就是钱”这样的说法,你应该意识到:这说的就是字面上的意思,每次浏览、每个流量都是有价的。

    也许你会怀疑,DSP怎么会知道我这么多信息?笔者可以透露,上面列举的这些标签,都是一个真实的IT系统中已经存在的标签,实际上DSP能获得的信息比这个列表只多不少。而且DSP非常有意愿知道更多流量属性,因此又衍生出了“数据管理平台”(Data Management Platform,DMP)。这些平台专门从各种来源收集与用户相关的信息,并把这些信息汇集起来形成“统一客户视图”(Single Customer View)——也就是给这个用户、这个流量贴上更加丰富的标签。

    举个例子来说明DMP的工作方式。当你在机场连上免费WIFI,你会看到一个登录页面,你输入手机号获得验证码,连上网络,这时WIFI热点背后的程序已经知道你的手机号、你用的手机款式、你所在的地点,这些信息马上被发送给一个DMP。这时你的朋友从微信发给你一篇文章,是介绍大明星的座驾,你细细欣赏了贝克汉姆的腹肌和他的奔驰G系越野车,于是这个网页背后的埋点程序知道了你对汽车品牌的偏好,这个信息和你的微信ID一起也被发送给一个DMP——很可能是同一个DMP。看完文章,你打开购物软件,买了几样水果送到家里,于是电商平台知道了你的消费能力和居住的小区,这些信息和你的手机号一起同样被发送给DMP。通过手机号、微信ID、身份证号……这些唯一身份标识,DMP建立起了关于你的统一顾客视图,可能会给你贴上成百上千个标签。

    基于这些标签,DSP就可以展开非常精确的广告投放。例如对于奔驰投放的Banner广告,DSP可能会优先考虑这样一些标签:30~40岁,年收入40~60万,居住在一二线城市,本科以上学历,从事IT、金融、房地产等职业,现在车龄6年以上,近期流露换车意向……一旦高度符合这些标签的流量出现,DSP就会高价拍下广告位。一些技术领先的DSP已经开始使用机器学习技术,不用人手挑选投放目标标签,而是由人工智能自动识别目标流量,使广告投放更加精准。

    然后,当你开始跟老婆讨论是不是该换台新车的时候,你无意间发现,手机上打开的网页里有一辆漂亮的奔驰C200休旅车,你点开广告链接,跟老婆一起左看右看,觉得这辆车既有面子又实惠,跟你家的风格简直是天作之合,于是你开心地按下了“预约试驾”。你大概不会多想,这个广告出现的时机怎么那么恰到好处。最终你买下了这辆车,就好像这完全是你自己的决定一样——就在你快要付款的一刻,你又瞥见手机网银的界面上有一个刷信用卡买车免息分期的活动,多巧呀。

    既然广告可以定制,有什么道理媒体上呈现的内容本身不能被定制呢?感兴趣的话,你可以自己做一个实验:首先看看你的知乎首页上有哪些内容,一般来说不会出现跟火影忍者相关的问答,毕竟火影大结局也有段日子了;然后下载腾讯动漫,每天看上几十话火影,用不了几天,你的知乎首页上就会出现一堆讨论鸣人和佐助的帖子。笔者亲身观察到这个现象,好奇地搜索知乎的投资方,腾讯果然在列。大胆猜测一下,知乎即使不是直接使用腾讯的DMP“广点通”,技术原理也相去不远。既然都看见“小樱的实力能到影级吗”这么有吸引力的帖子,怎么能不打开看看呢?于是现在笔者的知乎首页上,各种忍术已经连绵不绝了。

    内容定制正在成为数字化营销的主流工具。和纸媒不同,数字化产品的每次打开、每次浏览都可以是动态的、个性化的。DMP已经掌握了如此丰富的用户洞察,媒体没有道理继续保持一成不变的内容呈现,一定会利用DMP的数据来达成更高的转化率——可能是转化为购车的消费者,也可能是转化为支持某个政策的变革、某种意识形态的观点。于是我们看到,像今日头条这样的媒体,呈现内容的原则不是“外面在发生什么”,而是“读者喜欢看什么”——当然纸媒也有过度迎合读者的风险,但纸媒毕竟只能面向大群读者做一个粗糙的推测,而互联网媒体(和社交网络)则在技术的推动下形成了一个完美的、牢不可破的回音壁。至于传统意义上媒体要客观中立地展现世界样貌的职责,在转化率这个KPI的驱动下显得有些苍白无力。

    精准投放可能带来什么危害呢?数据科学家Cathy O’Neil在《数学大杀器》(Weapons of Math Destruction)一书中介绍了一些已经现实发生的场景。其一,基于数据的精准投放如果被用于教育、医疗、保险等与生活休戚相关的“商品”上,就可能造成对特定人群、尤其是弱势人群的歧视和损害。在美国,有一些质量低劣的教育机构,把自己的广告定向投放到收入低、教育程度低、并且新近遭遇人生重大打击的人群——例如刚离婚、或刚被解雇。这样的人群、处于这样的心理状态下,更容易被这些心灵鸡汤式的广告吸引,从自己原本就已经拮据的经济中再拿出一笔不菲的资金,来参加一个对自身能力没有提升、也不被人才市场承认的培训计划。在中国我们也看到,尽管百度宣称其中立性,但莆田系在百度上投放的医疗广告同样精准地找到了教育程度较低、经济状况较差、已经饱受疾病损害的那些弱势家庭。

    另一方面,当精准投放被应用于政治目的,它能够强化大型利益团体对群众观点和政治议程的操控。2011年奥巴马的竞选团队与IT咨询公司埃森哲合作,首次在美国总统选举中引入了大数据和精准投放技术。在2015年的大选中,“共和党犹太人联盟”的领导者们在拉斯维加斯的威尼斯人酒店开会,在酒店上网时他们看到候选人泰德·克鲁兹承诺加大对以色列安全支持力度的广告宣传。他们不知道的是,这条广告只在这家酒店、只在他们开会的这几天播放。当政治家和利益团体可以不必保持连贯统一的公众形象、而是可以针对受众“定制”其形象和政治观点,这种变化究竟会给公共生活带来什么影响,可能答案还并不清晰。

    在《数学大杀器》中,O’Neil提出了一些限制大企业过度利用个人数据的途径,例如效仿欧洲对互联网数据的管制模式:只有在用户明确同意的情况下,企业才能采集用户数据,且采集到的数据不能用于其他用途。“明确同意”的规定,可能仍然容易通过隐晦的用户协议等方式来绕过;但“不作它用”的规定,对于数据滥用是一个很好的预防措施。至于国内的相关管制会在何时、以何种形式出现,目前仍是未知。在可见的将来,恐怕我们还得继续享受互联网提供给我们的精准得有点细思极恐的广告和内容。


  3. 机器学习项目如何管理:设置期望

    我在之前的一篇文章中提到,机器学习项目如何管理,目前在行业内是一个普遍存在的难题。具体而言,对于这类项目,我们需要一套行之有效的工作办法,帮助一线工作者:(1)知道什么时候该做什么事;(2)知道什么时候该看什么指标;(3)知道什么时候可能有什么风险。这样一套工作办法的第一步,就是对一个机器学习项目设置合理的期望。

    机器学习到底是在做什么

    机器学习的基本过程可以用下面这张图来呈现:

    拿到已有的历史数据作为训练数据,我们需要对训练数据进行矢量化处理,把输入的不论什么形态的数据(例如文本、音频、图片、棋盘盘面)都转化成包含若干列的矢量。从矢量中我们再分出特征(X)和结果(Y),通常特征的列数远多于结果。

    我们把X部分交给一个模型,算出与每一行训练数据对应的预测值Y’。所谓模型,就是一系列的权重系数,把这些权重系数用在一行输入数据上,就会得到针对这一行输入数据的结果预测。我们把Y’与Y对比,评判这一轮预测的效果。这个效果,我们用损失来度量。

    然后我们用一个机器学习算法来尝试优化损失。所谓优化,就是不断尝试调整模型中的权重参数。调一次,再计算出一组新的Y’,再与Y比较效果。如此迭代,直到损失不再降低,或者达到预设的迭代次数。

    所以,首先必须要记住:机器学习是一种优化任务。优化任务的目标不是找到“正确”的答案,而是找到一个“看起来不错”的答案。这一点会对我们看待这类项目的方式产生深远的影响。

    如何为优化任务设置期望

    传统意义上的软件开发(例如开发一个电商网站、开发一个社交app)是能够得到确定结果的:只要需求分析得够细致、原型设计得够保真、测试进行得够周全,你就可以准确地框定一个软件开发过程的产出结果,点击哪个按钮得到什么效果都是可以预先定义的。而机器学习项目则不然:不论分类、回归、聚类,本质上都是对某个损失函数迭代优化的过程。它没有唯一正确的答案,只是有希望得到看起来不错的答案。优化任务的逻辑不是因果,而是概率。

    对于优化任务,我们不能问“是否正确”这个问题。有意义的问题是,模型的预测准确率能达到多少。一个缺乏经验的管理者可能会说“越高越好”,或者拍脑袋说出一个数字“90%”,显然这都不太有助于合理地管理期望和把控进展。暂时放下“准确率”的定义不谈,我们如何知道对于一个机器学习得出的模型应该期望什么样的准确率呢?显然大多数情况下预测准确率不可能达到100%,那么这个期望应该如何设置?

    我们需要引入一个概念:贝叶斯错误率。简单说,贝叶斯错误率是对于一个问题有可能达到的最好的预测效果。贝叶斯错误率通常不是那么容易直接获得的,所以我们用人类的判断作为一个代理指标:一般来说,我们认为人类的判断错误率高于贝叶斯错误率,但是也相差不大。于是前面的问题变成了:对于一个机器学习得到的模型,我们期望它的预测准确率与人类的判断相比如何?

    这个问题没有唯一正确的答案。有些时候我们希望模型的准确率高于、甚至远高于人类的判断;另一些时候,我们只需要模型的准确率勉强接近人类的判断,这样的模型就可以帮人类完成大量繁琐的工作量。对模型的期望设置不是一个技术问题,而是一个业务问题,在开始一个机器学习项目之前,就需要先与业务的负责人展开相关的对话。

    如何定义“准确”

    仍然以最简单的分类问题为例,模型的判别分为阳性(positive)和阴性(negative)两种,两种判别都有正确和错误的可能,于是总共就有了四种可能的情况:

    • True Positive(TP):判别为阳性,实际也是阳性
    • False Positive(FP):判别为阳性,实际却是阴性
    • True Negative(TN):判别为阴性,实际也是阴性
    • False Negative(FN):判别为阴性,实际却是阳性

    一种朴素的“准确率”定义方法是“判别正确的比例”,即:

    但是当样本的分布极其不均衡时,这个对准确率的定义会很有误导性。例如我们假设10000人里有150人患胃癌(阳性),经过对血样的分析,一个模型识别出100名患者(TP),有50名患者没有发现(FN),同时误报了另外没有患病的150人(FP);另一个模型则不做任何判断,直接宣称所有人都没有胃癌。我们直觉会认为前一个模型优于后一个,但朴素的准确率定义却给了我们相反的结论:

    因为朴素的准确率定义有这样的问题,实践中更常用的指标是“精确率”(Precision)和“召回率”(Recall)。它们的定义分别是:

    • Precision = TP/(TP+FP):在预测的阳性个例中,有多少是预测正确的?
    • Recall = TP/(TP+FN):在所有的阳性个例中,总共找出了多少?

    可以看出,Precision和Recall往往是互相矛盾的:如果追求找出更多阳性个例(提高Recall),那么阴性个例被误判为阳性的情况也会增加(降低Precision),反之亦然。在不同的业务场景下,需要追求的指标也会不同。例如在前面的体检场景下,我们会追求更高的Recall:尽量找出所有患病的人,有一些人被误报也没关系。而另一个极端场景是推荐顾客可能会卖的商品,这时我们会追求更高的Precision:推荐位只有5个,我们必须保证推荐的每一件商品都打中用户的兴趣点,至于还有几千个他可能感兴趣的商品没有被推荐,那并不重要。

    以上我们看到的只是最简单的分类问题的场景。对于其他场景,可能需要引入其他度量准确率的指标。所以我们再次看到,采用什么指标来定义“准确”、应该如何权衡指标的取舍,这同样是一个与场景高度相关的业务问题。项目的管理者和业务代表需要清晰理解指标的含义、并合理设置对指标的期望。

    然后呢……

    如果项目的管理者和业务方代表能懂得机器学习是一类优化任务、能理解优化任务的度量方式、能针对这类任务设置合理的期望,在理解和把握项目进度与风险的路上他们就迈出了第一步。在下一篇文章里,我会拆解出机器学习类项目涉及的工作内容。读者将会看到,看起来高大上的机器学习、人工智能,实际上需要特殊技能和高中以上数学能力的只有极小一部分,其他都是普通的、确定性的软件开发工作,可以用典型的软件开发过程和管理方法来对待。针对份额极小、但有时非常重要的“自行训练模型”部分,我会给出更加细化的工作内容拆解,并提出任务拆分、进度管理、风险管理的相关办法。


  4. 数字化企业的数据自服务

    前文中我们说到,传统企业在逐步建设自己的数字平台过程中,需要抓住交付基础设施、API和架构治理、数据自服务、创新实验基础设施和监控体系、用户触点技术这五个支柱。今天我们讨论的主题是“数据自服务”,看看一个倡导消除摩擦、建设生态、推动创新的数字化平台如何处理数据。

    前情回顾

    什么是数据自服务

    数据在企业中的处理过程,能清晰地映射出康威定律对IT系统的影响。在各个部门分别建设IT系统、组织内部大量存在信息筒仓(silo)的年代,数据的操作由OLTP应用系统的开发团队同步开发,那时几乎每个政府信息化、企业信息化系统都会有一块“报表需求”。随后众多组织认识到筒仓系统导致信息在组织内不能拉通,不能产生对整体业务流程的洞察,于是开始建设以数据仓库为代表的OLAP系统。

    这些系统在支撑更高级、更复杂的数据分析的同时,也对应地在组织中造就了一支专业的“数据团队”。这些人使用非常专业的技术和工具对数据进行提取、转换、装载、建立数据立方、多维钻取、生成报表。这些专业的技术和工具,普通的软件开发人员并不掌握,因此对数据处理、分析和呈现的变更都必须归集到这个数据团队来完成。结果是,数据团队的backlog里累积了来自各个部门的需求,需求的响应能力下降,IT系统从上线到获得市场洞察的周期变长。

    微服务架构鼓励小型的、全功能的团队拥有一个完整的服务(及其对应的业务)。这样的全功能团队不光要开发和运维IT系统,还要能从数据中获得洞察——而且要快,不然就会跟不上市场变化,甚至使一些重要的业务场景无法得到支撑。因此他们不能坐等一支集中式的、缓慢的数据团队来响应他们的需求,他们需要数据自服务能力。

    要赋能数据自服务,企业的数字化平台要考虑“两个披萨团队”的下列诉求:

    • 需要定义数据流水线,使数据能够顺畅地流过收集、转换、存储、探索/预测、可视化等阶段,产生业务价值。
    • 需要用实时的架构和API在短时间内处理大量、非结构化的数据,从中获得洞见,并实时影响决策。
    • 为了提高应变能力,系统中的数据不做ETL预处理,而是以“生数据”的形式首先存入数据湖,等有了具体的问题要回答时,再去组织和筛选数据,从中找出答案。
    • 更进一步把数据包装成能供外人使用的数据产品,让第三方从数据中获得新的洞见与价值。
    • 为了支持数据产品的运营,需要实现细粒度授权,针对不同的用户身份,授权访问不同范围的数据。

    数据自服务解读

    下面是ThoughtWorks的数字平台战略第三个支柱“数据自服务”中所蕴涵的具体内容。

    数据流水线设计

    所谓流水线,是指用大数据创造价值的整个数据流。流水线从数据采集开始,随后是数据的清洗或过滤,再然后是将数据结构化到存储仓库中以便访问和查询,这之后就可以通过探索或预测的方式从数据中找到业务问题的答案,并可视化呈现出来。

    一条运转良好的数据流水线,能有效处理移动/物联网等新技术制造出的极其大量的数据,缩短数据从获取到产生洞见的反馈周期,并以开发者友好的方式完成数据各个环节的处理,赋能一体化团队。

    数据流水线的实现有两种可能的方式。一种方式是在各个环节采用各种特定的工具,例如前面介绍的数据流水线,各个环节都可以用开源的工具来实现。当然,选择这种方式也并非没有挑战:组织必须自己编写和维护“胶水代码”,把各种专用工具组合成一个内聚的整体。对组织的技术能力有较高的要求。

    除了基于开源软件实现自己的数据流水线,也可以考虑采用云上的数据流水线PaaS服务,例如DatabricksAWS Data PipelineAzure Data Factory等。这个方式的优点是对技术能力要求较低,缺点则是造成对特定云平台/PaaS提供商的依赖。

    实时架构和API

    实时的数据架构和API支持短时间内处理大量、非结构化的数据,从中获得洞见,并“实时”影响决策。正如Mike Barlow所说:“这是关于在正确时间做出更好决定并采取行动的能力,例如在顾客刷卡的时候识别信用卡欺诈,或者当顾客在排队结账的时候给个优惠,或者当用户在阅读某篇文章的时候推送某个广告。”

    Cloudera的一篇文章中介绍了实时数据处理的4个架构模式,整个流水线架构在Flume/Kafka基础上:

    • 数据流吸收:低延迟将事件持久化到HDFS、HBase、Solr等存储机制
    • 近实时(100毫秒以下)的事件处理:数据到达时立即采取警告、标记、转换、过滤等初步行动
    • 近实时的事件分片处理:与前一个模式类似,但是先对数据分片
    • 复杂而灵活的聚合或机器学习拓扑,使用Spark

    数据湖设计

    数据湖概念最初提出是在2014年Forbes的一篇文章中。它的概念是:不对数据做提前的“优化”处理,而是直接把生数据存储在容易获得的、便宜的存储环境中;等有了具体的问题要回答时,再去组织和筛选数据,从中找出答案。按照ThoughtWorks技术雷达的定义,数据湖中的数据应该是不可修改(immutable)的。

    数据湖试图解决数据仓库几方面的问题:

    • 预先的ETL处理终归会损失信息,如果事后才发现需要生数据中的某些信息、但是这些信息又没有通过ETL进入数据仓库,那么信息就无法寻回了。
    • ETL的编写相当麻烦。数据仓库的schema发生改变,ETL也要跟着改变;应用程序的schema发生改变,ETL也要跟着改变。因此数据仓库通常由一个单独的团队负责,于是形成一个function team,响应速度慢。
    • 数据仓库的分析需要专门的技能,大部分应用程序开发者不掌握,再度强化了数据仓库专门团队;而数据仓库团队其实离业务很远,并不能快速准确地响应业务对数据分析的需求。

    在数据湖概念背后是康威法则的体现:数据能力与业务需求对齐。它要解决的核心问题是专门的数据仓库团队成为响应力瓶颈。当IT能力与业务需求组合形成一体化团队以后,数据的产生方不再假设未来要解决什么问题,因此也不对数据做预处理,只是直接存储生数据;数据的使用方以通用编程语言(例如Java或Python)来操作数据,从而无需依赖专门的、集中式的数据团队。

    数据湖实施的第一步是把生数据存储在廉价的存储介质(可能是HDFS,也可能是S3,或者FTP等)。对于每份生数据,应该有一份元数据描述其来源、用途、和哪些数据相关等等。元数据允许整个组织查看和搜索,让每个一体化团队能够自助式寻找自己需要的数据。任何团队都可以在生数据的基础上开发自己的微服务,微服务处理之后的数据可以作为另一份生数据回到数据湖。维护数据湖的团队只做很少的基础设施工作,生数据的输入和使用都由与业务强关联的开发团队来进行。传统数据仓库的多维分析、报表等功能同样可以作为一个服务接入数据湖。

    在实施数据湖的时候,有一种常见的反模式:企业有了一个名义上的数据湖(例如一个非常大的HDFS),但是数据只进不出,成了“数据泥沼”(或数据墓地)。在这种情况下,尽管数据湖的存储做得很棒,但是组织并没有很好地消化这些数据(可能是因为数据科学家不具备分析生数据的技术能力,而是更习惯于传统的、基于数据仓库的分析方式),从而不能很好地兑现数据湖的价值。

    数据即产品

    数据产品是指将企业已经拥有或能够采集的数据资产,转变成能帮助用户解决具体问题的产品。Forbes列举了几类值得关注的数据产品

    • 用于benchmark的数据
    • 用于推荐系统的数据
    • 用于预测的数据

    数据产品是数据资产变现的快速途径。因为数据产品有几个优势:开发快,不需要开发出完整的模型,只要做好数据整理就可以对外提供;顾客面宽,一份数据可以产生多种用途;数据可以再度加工。数据产品给企业创造的收益既可以是直接的(用户想要访问数据或分析时收费)也可以是间接的(提升顾客忠诚度、节省成本、或增加渠道转化率)。

    在实现数据产品的时候,不仅要把数据打包,更重要的是提供数据之间的关联。数据产品的供应者需要提出洞见、指导用户做决策,而不仅仅是提供数据点。数据产品需要考虑用户的场景和体验,并在使用过程中不断演进。

    细粒度授权

    当数据以产品或服务的形式对外提供时,企业可能需要针对不同的用户身份,授权访问不同范围的数据,对应不同的服务水平和不同的安全级别。一些典型的细粒度授权的场景可能包括:企业内部和外部用户能够访问的数据范围不同;供应链上不同环节的合作伙伴能够访问的数据范围不同;付费与免费的用户能够访问的数据范围不同;不同会员级别能够访问的数据范围不同;等等。

    允许访问的数据范围属于数据产品/服务自身的业务规则。《微服务设计》的第9章建议,“[服务]网关可以提供相当有效的粗粒度的身份验证……不过,比允许(或禁止)的特定资源或端点更细粒度的访问控制,可以留给微服务本身来处理”。

    小结

    为了加速“构建-度量-学习”的精益创业循环,业务与IT共同组成的一体化团队不能依赖于集中式的数据团队来获得对业务的洞察。他们需要规划适宜自己的数据流水线,在必要时引入实时数据架构和API,用数据湖来支撑自服务的数据操作,从而更快、更准确地从数据中获得洞察,影响业务决策。更进一步,数据本身也可以作为产品对内部用户乃至外部用户提供服务,并通过细粒度授权体现服务的差异化和安全性需求。通过建设“数据自服务”这个支柱,企业将真正能够盘活数据资产,使其在创新的数字化业务中发挥更大的价值,这是企业数字化旅程的第三步。


  5. 2017年读过的好书

    今年读了66本书,不过有很大部分是工作需要。而且不知道什么原因,中间读的很多关于内亚性的书都只标了四星……

    仅存的内亚性

    科技与社会的交集

    早就想看的好故事

    • 恶棍列传 - 超级漂亮的小故事,最爱博尔赫斯的故事了
    • 傅科摆 - 太博大了…艾柯编造的神学阴谋论让达芬奇密码就像刺客信条一样直白
    • 麦田里的守望者 - 这才叫中二嘛……我是为素子姐来看塞林格的。
    • 月亮和六便士 - 所谓四十不惑的“不惑”,大概就该是这样的形式吧,知道自己要做什么而不惑于其他,多么令人羡慕。
    • 刀锋 - 求财的得财,求死的得死,求解脱的得解脱,真是一场欢喜大戏。
    • 荒原狼 - 最后终于和荒原狼和解了,这还真是一个美好的故事。

    比日系推理更好的国产推理

    • 暗黑者外传:惩罚 - 这个故事比欧门尼德系列还好,诡计设置很妙
    • 长夜难明 - 推理其实稍微有点弱,但是故事设置得好,抓人。
    • 真相推理师:幸存 - 这已经甩东野十条街了好吗!瞬间爱上这个作者!(虽然感情戏写得很挫…)
    • 红手指 - 谜题很棒,对人性的描写更是精彩,看完心里堵得慌。


  6. 机器学习项目如何管理:现状

    Atlassian今年4月的一篇博客提出,到2020年有87%的Jira用户认为他们的工作会被AI改变。具体到项目管理上,Atlassian的观点是,AI首先会作为项目管理助手进入我们的视野,然后透过数据拓展我们对项目的理解,更进一步还能通过主动猜测、倡导优秀实践、创造新的元数据层等方式弥补数据的缺失,最终对项目提出有益的建议。

    然而愿望是美好的现实是骨感的。还不要说在项目管理中使用机器学习,关于机器学习的项目应该怎么管理,业界似乎已经有很多不甚圆满的经历。例如一位创业者谈他们如何用自然语言处理技术推动销售。看起来他们尝试了各种不同的数据源、多种特征工程的方法、以及多种算法,接下来还有很多想要尝试的东西。从这个故事中我们看不到的是,他们给自己设置的目标是什么、目前的进展是什么、基于什么原则在指导每一次的尝试。简而言之,这位创业者的机器学习项目并没有任何有效的管理。

    另一个同样缺乏管理的机器学习项目就没有那么幸运。年薪百万的数据科学家被认为“没有给公司带来实际价值。高管们不知道他们具体做了什么,业务人员每周都给他们提出预测需求,却很少能在短时间得到回应”。与前面一个故事相比,这里的数据科学家需要在别人的管理之下开展工作,管理方法的欠缺无疑是矛盾累积和激化的原因之一。针对这个故事,作者提出了五点非常抽象的建议:1.从最简单的模型开始;2.探索更多问题;3.用全部的数据和特征训练模型;4.业务驱动模型;5.专注于自动化。我认为这几点并不能引导这家公司的管理者更有效地管理他们的数据科学家。

    这种缺乏管理方法的现象,一个重要的原因是典型的IT管理者对机器学习缺乏必要的了解(甚至更糟糕,有一些似是而非的半吊子的了解)。目前而论,咨询公司和商业/科技传媒在普及“必要的了解”方面并没有起到很好的作用。麦肯锡2015年的文章说,关于机器学习,企业领导层需要了解的问题还是“传统行业能通过机器学习获得什么新的洞察”这种高层面的,提出的建议也是“机器学习要分描述、预测、处方三步走”这样的宏观建议。当然麦记的建议历来是面向CxO级别的,不落到项目管理层面也很正常。

    HBR也在2015年讨论“每个管理者都需要了解的机器学习知识”,提出了一些很重要的点:不光需要大数据、还需要广泛的数据;机器学习只是做预测、不提供因果性;要区分信号与噪音(还提到了特征提取、规则化、交叉验证等具体技术);以及一些容易犯的错误(例如强行归因、不恰当的期望、迷信大数据量、对人的判断利用不足等)。但这篇文章的问题在于,它没有提供一套成型的工作方法。这些技术应该什么时候用,这些错误会在什么时候犯,文章没有提供出来,于是读者仍然被置于一个“等你该知道的时候你就知道了”的状态,很难对项目管理带来立竿见影的改变。

    2014年的一篇博客着重谈机器学习项目的布置,包括应该有哪些目录、数据怎么管理、代码怎么组织等非常具体的实践。作者提出了项目流程的几个原则:透明;可维护;模块化;可迁移;可复制;效率。关于项目的可复制性,作者也从工程实践角度提出了10条原则。在工程实践这个角度,这位作者给出的指导原则具有很好的可操作性。

    但是在项目管理角度,行业仍在继续探索。今年7月InfoQ的一篇文章讨论如何开发机器学习的MVP,作者总结了四个思考步骤:第一问题是否能转化成分类/回归的问题;第二目标是否是容易获取、客观无偏差的数据;第三是问题的预测目标,因果关系是什么;第四是这个问题是不是一个真的业务需求。这也是几个很重要的思考点,不足之处仍然是缺乏系统性,并且缺落地的方法指导。

    有一篇博客提出了很有意义的问题:机器学习项目为什么未实现敏捷开发?作者发现算法类项目流程漫长,并结合之前实践Scrum的经验,提出了一些可能可以优化的方面,尤其是在团队组织形式上,是否可以参考敏捷的全功能团队经验。作者并且提出了一个重要的问题:对算法模型的评估是否必须在线上进行?或者换个角度来问这个问题:如何降低线下模型评估的偏差程度?

    敏捷软件开发之所以成为一种被广泛接受的软件开发方法论,不仅仅是因为它有高阶的思想支撑和指导原则,更重要的是它有一系列非常具体、非常可落地的实践。这些实践对于一线工作者的意义在于:(1)知道什么时候该做什么事;(2)知道什么时候该看什么指标;(3)知道什么时候可能有什么风险。机器学习类的项目要真正普及,也会需要这么一套具体可落地的实践指导。


  7. 保持现状与有意为之的无知

    (本文同时发表于土逗公社

    1970年9月,萨尔瓦多·阿连德当选智利总统。智利人民用自己的选票,选择了他倡导的社会主义路线。执政之后,阿连德政府开始收购智利最重要的工业企业,将它们纳入国家控制。到1971年底,国家开发公司已经必须负责指导下属150多家企业,包括智利20家最大企业中的12家。国有经济的高速发展创造了一个笨重的、智利政府从未见过的怪兽,管理已经成为国有化进程的一个核心问题。为此,阿连德政府联系到了英国控制论学者斯塔福·比尔。比尔发现,控制论中关于反馈与掌控的思想能够指导开发一套新的科技系统来改善国有经济的管理,从车间直到国家开发公司办公室。这样一个系统将会搭建起实时信息交换的网络,管理者和政府官员将能够基于实时数据来做决策,并能够快速调整行动。这个系统,就是传奇的Cybersyn,距今半个世纪前出现在智利的大数据系统

    按照比尔的构想,这个基于他的“自由机器”和“可生存系统模型”理论构建起来的大数据系统,将能够兼顾国家经济整体方向的一致性与企业的自主性,并且充分调动一线工人参与企业管理体制的设计与执行。然而在Cybersyn系统实施的过程中,智利科技专家们的实践与政府的政治理念并不吻合。虽然阿连德坚持要系统鼓励工人参与管理,但工人在Cybersyn实施中扮演的角色实际上是被边缘化的。更多时候,技术官僚主义在基层车间压倒了意识形态。尽管收到明确的指示要与工人委员会协作,但工程师们经常并不这样做,而是带着优越感看待工人,或是完全忽视工人、只和管理者打交道。

    1973年9月,皮诺切特的军事政变推翻了智利社会主义政府,阿连德本人丧生于总统官邸。政变之后,军队中止了Cybersyn项目,团队的工作成果要么被抛弃、要么被破坏。在新的军政府和新自由主义“休克疗法”背景下,Cybersyn没有任何意义。然而客观地说,即使没有军事政变,Cybersyn是否就能如起初设计的成为对劳工赋权、鼓励工人参与管理、兼顾民主与集中的信息系统,比尔对此也并非没有怀疑。为何科技系统——甚至是那些原本为了革命的目标而建立的科技系统——常常倾向于维持社会与经济的现状,这是Cybersyn留下的值得反思的若干问题之一。

    1973年,比尔反复思考了Cybersyn遭遇的各种问题,包括项目团队在科技上花的心思多过组织变革、智利工人没能用Cybersyn来辅助生产组织和管理等,并把自己的思考写成了《现状》(Status Quo)一文。他在文中写道:

    对于马克思而言,资本是邪恶的敌人;对我们而言,资本仍然是邪恶的,然而敌人是保持现状

    比尔认为,科技的发展,尤其是通信与计算机领域的发展,使得资本主义已经发展出了新的生产形式与新的剥削关系。在这个新的关系中,不仅有资本家与劳动者的对立,受过高等教育的专业人士扮演了一个重要的角色。比尔从控制论的角度指出,官僚体系总是偏爱保持现状,而专业人士扮演的则往往是保持现状的力量、而非推动革命的力量。

    仍然以Cybersyn为例:尽管顶层设计把它视为一个“革命的装置”,但在科技团队内部,很多人认为应该把意识形态放在一边,专注于科技性的目标,例如提升政府监管经济的能力、解决经济的效率问题、消灭官僚主义。Cybersyn项目主管埃斯佩霍说,很多科技专家想要加入这个项目是因为它“充满智力挑战”,这些科技专家对于科技与政治之间的关系有着不同的解读,并非所有人都赞同阿连德的政治理念。这个团队得以持续“健康”运转的基础,也许就是——如埃斯佩霍所做的——搁置意识形态的目标,专注于科技的目标。于是,专业人士团队基于自身利益角度出发的“求生意志”,就成为了一种保持现状的动力。

    时隔四十多年以后,我们在今天的科技-社会的讨论中看到,这种来自专业人士角度的保持现状的动力变得更加强大,甚至时常被称为“科技本身的逻辑”(凯文·凯利还专门写了一本书来讨论“科技要什么”)。比尔在1970年代的反思让我们看到,这种“科技本身的逻辑”,经常是来自专业人士有意而为之的对意识形态、对社会问题的搁置。专业人士倾向于将自己的工作描述为纯粹科技的、“政治中立的”,使得自己不必接受“我的工作对社会有何影响”的追问。在快播案、魏则西案等一系列关于互联网伦理的讨论中,我们皆听到了这种纯粹科技论的辩解。我把这种“将自己的专业工作与社会/政治/伦理问题划清界限”的努力,称为“有意而为之的无知”(minded unmindedness)

    这种有意而为之的无知,部分出自科技本身的复杂性与抽象性。例如广为讨论的人工智能技术,无论是向读者推荐视频、还是在读者的搜索页面显示广告,从技术的角度都可以归约为一系列在高维矩阵上进行的线性代数运算(以及与之相关的特征工程、算法优化等工作)。这种高度的复杂性与抽象性,使得科技专业人士能够埋头于诸如“计算稀疏矩阵中向量间的欧氏距离”这样的纯技术问题,而毫无愧疚地无视技术的应用对社会产生何种影响,并且在面临来自人文社科领域的置疑时轻易地给自己构建起坚固的保护壳。

    然而问题并非只出在科技专业人士这一边。人文社科领域的专业人士同样有自己的有意而为之的无知,表现为对新技术的盲目恐惧,或者说是“将自己的专业工作与科技问题划清界限”。于是我们看到,来自人文社科领域的关于科技伦理的讨论经常流于表面,例如用科幻小说的方式讨论“强人工智能”,而缺乏对机器学习、神经网络等核心技术及其应用场景和局限性的基本了解。其结果是,来自人文社科领域对新科技的批评要么“脱靶”,要么在科技人士实用主义的反问“那你说该怎么办”面前黯然失语。像Cathy O’Neil这样能准确地指出科技系统中问题所在、能提出行之有效的解决方案、能持续量化监督科技公司改进的跨学科左翼人士,实在是太稀缺了。

    解决这个困境需要科技与人文社科两边专业人士的共同努力。科技的专业人士当然需要更多地了解社会的问题及其渊源、更多地反思自己工作与社会/政治/伦理问题之间的关系。另一方面,我在这里想强调的是,人文社科的专业人士应该打破自己对新技术的盲目恐惧,不能坐等科技专业人士的觉醒,他们需要立即开始学习编程和人工智能的基础,使自己掌握有效批判的武器。

    实际上这两项技术的门槛比很多人想象的要低得多。除了克服入门时的恐惧与不适,Python编程需要的理科知识基础约等于0——我曾经与同事半开玩笑地说,我们开发的软件只需要小学高年级数学水平,四则运算都用不全,主要是除法不怎么用。另一个学习编程的门槛是英语,然而人文社科领域的年轻学者大多具备相当良好的英语读写能力。自学一门编程语言(例如Python)这件事,我认为每位人文社科学者应该都能做到。

    人工智能技术所需的理科基础则更高一些:如果想要比较深入地了解其原理(而不止是使用几个工具),需要微积分和线性代数的基础知识。以高中水平的数学能力,在一学期时间里重新捡回这两门课应该是可以做到的。(听说一些高校的文科院系大一已经不上高数课,我认为这是一个错误的导向。)

    除了这一点数学基础以外,大部分数据处理和机器学习算法可以说是出人意料地简单。John Foreman的Data Smart一书教它的读者用Excel(是的,你没看错,就是你每天用的Excel)实现分类、推荐、预测等典型的机器学习算法,我认为这本书非常有助于破除笼罩在“人工智能”这个概念之上的神秘感。另外我也强烈推荐人文社科学者在学了一点Python基础之后尝试一下华盛顿大学的机器学习公开课。学完它的第一门课程,你就会发现,机器学习(乃至“人工智能”)其实是一件很简单、毫不神秘的事情——这一点,对岸的科技工作者们其实一直都知道。

    科技与人文社科的失联,会导致整个左翼运动陷入一种尴尬的境地:对于资本用以牟利并同时制造社会不公的科技工具,科技工作者看不到其社会危害所在,人文学者又无法提出有效的批判和改进方向。无形之中,双方对于对方专业领域的有意为之的无知,都在帮助保持当前科技-社会结构的现状。要打破这种现状,需要双方都开始努力了解对方的专业领域,包括——我今天特别想强调的——人文社科学者学一点编程和人工智能技术。


  8. 数据管理平台(DMP)综述

    在线广告技术生态

    ADN(广告网络)批量地运营媒体的广告位资源,按照人群或上下文标签售卖给需求方,并用竞价的方式决定流量分配。广告网络的结算以按点击付费(Cost per Click,CPC)的方式为主。面向多个ADN或媒体按人群一站式采买广告并优化投入产出比的需求方产品叫交易终端(Trading Desk,TD)。

    在ADN中,核心的竞价逻辑是封闭的,不能满足需求方越来越明确的利益要求,于是市场上产生了大量聚合各媒体剩余流量并采用实时竞价方式为他们变现的产品形态——广告交易平台(AD Exchange,ADX)。

    在ADX上通过实时竞价的方式,按照定制化人群标签购买广告,这样的产品就是需求方平台(Demand Side Platform,DSP)。对应的管理媒体广告位的产品就是供给方平台(Supply Side Platform,SSP)。

    DSP会向DMP(数据管理平台)寻求数据支持,达到更精准的投放。

    在线广告业务中数据的价值

    对精准广告业务产生直接贡献的数据有以下几类:

    1. 用户标识。对广告而言,如何确定哪些行为来自于同一个用户是非常关键的问题。
    2. 用户行为。转化、预转化、搜索广告点击、展示广告点击、搜索点击、搜索、分享、页面浏览、广告浏览等在线行为是可以被广泛采集并且对于受众定向或广告决策有明显作用。这些行为又可以分为决策行为(转化、预转化)、主动行为(广告点击、搜索、搜索点击)、半主动行为(分享、网页浏览)、被动行为(广告浏览)。
    3. 人口属性。一般来说只有与用户实名身份绑定的服务可以得到此信息,也可以利用网络行为数据进行人口属性标签的预测,但准确程度有限,而且仍然需要标定的数据用于训练。
    4. 地理位置。地理位置信息随能获得的精度不同,其用途也有相当大的差异。
    5. 社交关系。社交关系可用于用户兴趣的平滑。

    数据管理平台的功能

    DMP日渐火爆源于广告主对投放效果的更高追求以及对营销浪费更低的容忍度,DMP即是为解决这些问题而生。广告主希望更精准的对目标人群进行广告投放,如果投放的对象对某些广告不感兴趣,却反复被广告轰炸只会适得其反。如果企业能够在投放广告或其他营销手段前就能对受众进行具体、精准的识别,广告投放的效果会因此增强。

    数据的来源分为三类:

    • 第一方数据:广告主自有用户数据,包括网站/APP监测数据、CRM数据、电商交易数据等。
    • 第二方数据:广告商在广告投放过程中积累的业务数据,如DSP平台业务中积累的受众浏览广告、点击广告等相关数据。
    • 第三方数据:非直接合作方拥有的数据,如运营商数据等。

    第三方数据中,BAT的数据只能应用于各自的生态圈,实际产生效果并不容易;运营商的数据不一定总能通过商务关系得到,又有各地军阀割据的问题、有流量劫持等争议问题,而且越来越多网站和APP采用加密,运营商看不到了;垂直领域的数据相对比较细和专,质量高。

    DMP有下面几个核心的产品功能:

    1. 它可以为网站(可以是媒体也可以是广告主网站)提供受众定向功能,并将得到的用户标签应用于网站业务。
    2. 如果媒体网站授权,DMP可以提供接口对加工出来的用户标签进行变现,并与网站分成。
    3. 广告主网站可以通过DMP广告采买渠道进行更方便的数据对接。

    可以从以下几个角度对DMP进行评估:

    1. 数据来源。有多少优质的数据源可以利用。在中国能使用BAT的数据是一个重要因素,腾讯广点通和阿里达摩盘在这方面有优势。
    2. 数据处理。进入DMP的数据(包括结构化的和非结构化的)能多灵活地处理。
    3. ID联结。DMP能多准确地联结来自不同数据源的用户信息。
    4. 受众区分。对受众分群的多样性和准确性。受众定向标签可以分为人口学标签、上下文标签、行业定制标签三类。
    5. 数据建模。通过对数据的分析提供look-alike或其他更深度的洞察和投放指导。
    6. 与程序化广告平台的整合度。

    这里有一个国外DMP产品的排名。Oracle收购的BlueKai排名第一。SalesForce收购的Krux紧随其后。

    针对BAT各自DMP的功能,这里有一个分析对比

    为何企业要自建DMP

    自建程序化广告系统的主要目的是增加透明度、控制力和效率:

    • 透明度:企业希望清楚知道广告投放的效果,不想被欺诈。据ANA的统计,可能有多达37%的在线广告点击是虚假的。
    • 控制力:企业拥有越来越多的第一方数据,希望有更强的数据掌控,尤其不希望自己的第一方数据被广告平台用来帮助竞争对手投放(以增强广告平台DMP能力的形式)。
    • 效率:企业希望基于DMP能做更复杂的分析、更多的实验、与市场营销更紧密配合。

    Target选择自建DMP,分析师认为除了以上理由之外,Target还希望充分利用自己已有的客源流量,把自己变成数字化媒体。

    自建DMP需要有以下功能模块:

    • 数据的获取入口
    • 数据的清洗,整合
    • 标签的计算,挖掘
    • 打标签及标签的展示
    • 用户分群

    前三块是DMP的基础,虽然看不见,但是决定了一个DMP的质量。后两块是比较偏产品前端的内容,DMP是否简单易用,是否友好易懂就是这部分体现出来的。

    参考资料


  9. 智能技术的伦理风险:研究框架

    前一篇文章中我们已经提到,当下常见的关于智能技术伦理危害与风险的讨论总体上强调人工智能对人类整体的影响,并不凸显其对当前社会不同人群造成不同影响的情况,并且在分析这些风险时往往聚焦于技术层面,而并未将社会和政治层面的因素纳入考虑。从这个角度出发的分析难免失于片面,无法充分认识智能技术的潜在风险。由于缺乏一个全面的、结合科技与人文视角的研究框架,使得对于这一问题的研究普遍零散而不成体系,且容易陷入“机器 vs. 人类”的未来学视角。

    例如在分析智能技术对就业造成的影响时,以Kevin Kelly为代表的未来学家认为人工智能取代人类工作是必然趋势,并乐观地相信“被失业”的人群能找到更有价值的工作。另一些研究者则认为应对大规模结构性失业的关键是社会保障,例如在就业之外提供全民最低收入保障。然而更早的计算机伦理学、乃至科技伦理学研究已经指出,就业对于人而言不仅是提供生活保障的方式。正如维纳在70多年前就已经指出的,人需要发挥创造力和灵活性,人需要做决策、需要感受到自己为社会与他人做出的贡献,而工作是满足这些需求、使人获得尊严与成就感的重要途径。如果只看到失业对收入的影响,忽视智能技术在其他方面对人的影响,便无法全面理解智能技术的潜在风险。

    Peter Cullen提出了一个用于讨论伦理问题的框架。在这个框架中,抽象的“伦理”被表述为“价值观”——即个人与群体定义人生意义或集体目标所基于的核心信念与理想,随后价值观再以“原则”的形式具体表述出来,从原则引申出“政策”或“指导方针”,最后通过规则、流程、评估、培训、工具等方式得以“实现”。

    早在1950年代,维纳就已经指出,在与自动化机器并存和协作这个上下文中,需要关注人的一些核心价值,例如生命、健康、快乐、安全、资源、机会、知识等。基于对这些价值观的重视,他提出了计算机伦理的4条基本原则:

    • 自由原则:人应该有选择各种可能性的自由。
    • 平等原则:不同的人群应该享有同样的权利。
    • 博爱原则:人与人之间的善良愿望应该得到鼓励。
    • 最小侵犯自由原则:团体对个人自由的侵犯应当限制在最低程度。

    基于类似于这些被普遍认同的价值观和基本原则,在智能技术的上下文里,不同的研究者提出了大致相似的一些指导原则。例如IBM在“大数据与分析的伦理要求”中指出,技术本身可能是技术中立的,但技术的使用者不仅应该考虑技术的可能性、组织的诉求和法律的约束,还应该考虑一系列伦理的指导原则,包括适应社会环境、给人们选择的权利、使用合理的数据深度和广度、适当的数据和分析结果所有权、公正性、访问权、可追责等。再例如,King和Richards提出了几条大数据伦理规范

    1. 隐私应该是信息规则的基础
    2. 分享出来的私人信息应该仍然保密
    3. 大数据需要透明性
    4. 大数据可能导致身份泄露

    针对“隐私”这个受到广泛关注的话题,Rijmenam提出了几条大数据隐私指导原则:企业应该更主动地提供透明度;从系统设计之初就考虑简明性;为潜在的安全事故做好准备;在所有环节全面关注数据隐私。英国商业伦理研究所(IBE)则提出了6个与隐私相关的问题,包括数据如何使用、如何采集个人数据、如何评估风险、如何保护数据等。

    除了隐私之外,另一个重要的问题是智能技术的可追责性(accountability)。正如Harpin所说,在社会越来越多地由算法运转的同时,机器学习等智能技术使支撑社会运转的算法变得越来越不透明MIT的两位研究者指出,智能算法可能在人无法理解的情况下强化结构性歧视、拒绝为某些人群服务、甚至破坏民主制度的根基。因此他们提出了算法可追责性的五项指导原则:算法应该负责任、可解释、精确、可审查、公平。围绕着这五项指导原则,他们又提出了更加具体的实施策略,建议至少在系统设计、上线前和上线后分别进行一次评估,并列举了一些基本的评估问题。

    这种将“系统生命周期”作为一个维度纳入伦理框架的方式,在Etlinger这里得到了进一步发挥,形成了一个二维的大数据伦理框架:数据使用的伦理原则(例如有益于人群、推动进步、可持续、尊重、公平)构成一个坐标,数据的生命周期(例如数据采集、处理、分析、存储、治理、使用、交流)构成另一个维度,两个维度交织形成一个完善的伦理框架。

    伦理框架的落实仍然是一个难题。在层出不穷的新技术和新挑战面前,传统的机构审查委员会(IRB)明显缺乏大数据时代伦理判断的能力。与此同时,又有像ORCAA这样专门从事算法审计的企业。“数据与社会”研究机构的建议是,应对智能技术带来的伦理问题,需要政策、教学和业界网络共同努力。在“平等、可追责和透明的机器学习”研讨会上,研究者指出:平等和偏见等问题不是抽象的概念,而是与实际的人和人群相关的,因此智能技术的伦理问题必须由科技专家与人文学者共同研究,包括有意图地设计实验,才能深入理解问题并找到解决办法。


  10. 智能技术的伦理风险

    (旧文一篇,已发表于土逗公社

    人工智能的风险已经不再是一个新话题。在过去几年中,很多研究者提及了人工智能(以及与之紧密相关的技术,尤其是机器学习和大数据技术)可能带来的危害与风险。值得注意的现象是:在公众话语空间中流行的关于智能技术伦理危害与风险的讨论,大多将“人类”整体视为潜在的被损害的对象。大量的叙事被构建为“机器 vs. 人类”的形式。而关于智能技术如何被当前社会的权力结构主导、并反过来强化当前社会的权力结构、加深对弱势边缘群体的压迫,这一方面的讨论数量较少,且较缺乏系统性。本文将介绍一些关于智能技术伦理危害与风险的讨论,并着重介绍一些智能技术强化社会与经济不公正的案例。

    一些关于智能技术伦理危害与风险的讨论已经进入了流行文化空间,吸引了大众的兴趣。这类讨论通常呈现未来学的形式,试图推测人工智能技术成熟、尤其是具备了自我完善的能力之后可能的未来图景。如超级智能人工智能毁灭人类技术奇点等讨论吸引了大众对于智能技术的伦理问题的广泛关注。

    比起这些事关人类存亡、略带科幻感的宏大叙事,另一些由智能技术带来的伦理危害与风险正在更加现实地发生。例如智能技术对就业的影响,是一个经常被提及的主题。Kevin Kelly认为,机器在工作中对人的取代是一个不可逆的过程,有一些工作暂时只有人类能做或做得比机器更好,但机器终将胜过人类,绝大多数人类在几十年后将不再需要从事生产工作。麦肯锡的一个研究则更具体地列出了各种职业被机器取代的可能性,其中生产线工作、准备食物、包装物品等“可预测的物理工作”是最容易被机器取代的。

    除了造成大面积、结构性失业,对人工智能的常见担忧还包括赛博空间和物理空间的战争:控制了大量资源甚至自动化武器的人工智能是否会攻击它们本不应该攻击的对象?这种危险甚至不必以战争的形式出现:人工智能的错误行为、甚至只是不恰当的优化,考虑到它们已经在社会经济中扮演如此重要的角色,是否会造成极端恶劣的结果?

    可以注意到,以上几类常见的关于智能技术伦理危害与风险的讨论总体上强调人工智能对人类整体的影响,并不凸显其对当前社会不同人群造成不同影响的情况。同样的趋势也出现在对智能技术的风险进行的分析当中。众多这类分析聚焦于技术层面,而并未将社会和政治层面的因素纳入考虑。例如一位斯坦福大学的研究者认为,通过机器学习尤其是深度学习得到的统计学模型具有以下特征,使得它们存有安全隐患:

    • 不透明:很难、甚至根本无法看懂其中的逻辑;
    • 整体不可分:无法通过局部分拆理解输入输出之间的关系;
    • 脆弱:输入的微小变化可能引起输出的重大且无法预测的变化;
    • 不被充分理解。

    作为对比,《Weapons of Math Destruction》一书的作者Cathy O’Neil也提到了广泛影响人们日常工作与生活的众多智能算法工具的几个危险的特征

    1. 它们是秘密的,经常是某家公司的商业秘密;
    2. 它们是不透明的,被它们影响的人群不了解这些算法如何运行;
    3. 它们应用的范围很广;
    4. 它们对“成功”的定义值得置疑,被它们影响的人们未必赞同
    5. 它们制造了有害的反馈环。

    相比前一组特征,O’Neil识别的这一组特征具有一个值得注意的要点:她在其中提及了特定的人群。尤其是在第4点中,O’Neil指出了一个极其重要、但绝非总是明显的问题:智能技术对人的影响是有区别的,同一个技术可能让一部分人受益、同时让另一部分人受损。她举了这样一个例子:2010年在伊利诺伊州开始实施的教师绩效评估算法引发了芝加哥教师的广泛反对乃至游行抗议。正如Linnet Taylor不无洞见地指出的,在进行伦理评估时,人们倾向于抽象地谈论智能技术可能造成的伤害,而具体地谈论它带来的收益,于是实在的收益总能压倒模糊未知的伤害,从而使项目通过评估。通过将社会和政治因素纳入讨论范围,O’Neil提出的对具体人群的关注给了我们一个重要的视角,来重新审视智能技术可能带来的损害和风险。

    透过这个视角,我们首先可以注意到,智能技术对劳动力市场的影响并非均质。正如Erik Brynjolfsson和Andrew McAfee在《与机器赛跑》一书中指出的,教育程度较低、薪酬较低的劳动者更易被智能技术取代,同时也是这部分劳动者更难以获得新的职业技能,从而加重他们在结构性失业中受到的损害。正如Paul Krugman一针见血地指出的,全能且高效的工作机器人(workbot)的出现未必会让世界变得美好,因为没有能力拥有机器人的那些人的处境将非常悲惨。尽管这方面的研究还很少,但一些现有的研究显示:在高度自动化、智能化的工作环境下,教育和技能水平较低的劳动者正在面临劳动环境恶化、劳动强度增大、收入降低、缺乏劳动和社会保障等挑战。此种现象在“分享经济”形态中普遍可见。在一些极端的情况下,劳动者被异化成“数字机器上的幽灵”和“生产线上的奴隶”。

    实际上,智能技术可能正在加深对社会弱势群体的偏见和歧视。正如Wendy Chun所说,“机器学习就像偏见的洗钱”。通过机器学习,偏见和歧视被包装成模型和算法,使不公正变得更加隐秘而影响深远。职场社交网站LinkedIn的搜索引擎更青睐男性求职者,Google的广告平台Adsense存在种族偏见,饱受争议的“预测性执法”(predictive policing)对非裔美国人和穆斯林形成结构性歧视,低收入人群会因为智能技术更难从贫困中逃脱。性别、种族、宗教信仰、收入……现实中的各种偏见与歧视,似乎都在智能技术中找到了落脚点。

    智能技术不仅被用于实施对弱势群体的损害、歧视和隔离,而且被用于控制大众情绪。通过操控用户从新闻订阅渠道看到的信息,Facebook成功地调节了用户发帖的情绪,从而证明情绪可以在大量在线用户之间传染。一份曝光的材料显示,JTRIG(联合威胁研究智能小组,隶属于英国情报和国家安全机关政府通信总部)已经在通过Youtube、Facebook、Twitter、博客、论坛、电子邮件、短信、自建网站等渠道操纵大众情绪,从而消除“犯罪、安全和国防威胁”。当用于政治领域,正如Cathy O’Neil指出的,智能技术可以诱导选民做出片面的判断;当用于商业领域,邱林川则指出,智能技术可以向消费者灌输消费理念,使他们成为对不断更新换代的消费品上瘾的“被制造的奴隶”(manufactured slave)。

    早在1980年代中期,研究者们就围绕“计算机伦理是否具有独特性”这一问题展开了讨论。Johnson认为,计算机伦理只是把标准的道德问题以新形式呈现,逼迫我们在新的领域中延续旧的道德规范,它本身不是一个独特的新题目。而Moor则认为,计算机会大幅度转化/强化现有的伦理问题,并且造成过去未曾出现过的新的伦理问题,因此计算机伦理本身就是一个独特的新题目。这两种观点对于我们全面认识智能技术的伦理问题有着重要的启发意义。我们既需要充分了解智能技术的独特性、及其对伦理问题带来的独特影响,又必须认清新技术背后潜藏的旧有的冲突、斗争和伦理准则,这样才能准确把握智能技术的伦理方向,使其向着对广大民众有益的方向发展。