当法律遭遇人工智能

在当今的法律体系中,法律条文的制定往往跟不上时代前进的脚步,落后的条文(或者判例)有时反而会成为新生事物的制约;部分领域的法律条文或者判例卷帙浩繁,即使是专业的法律人也得耗费数年的学习和实践才能慢慢掌握法条的场景和使用;而即便是这么多的法律条文也难以将现实发生的所有复杂情况一一枚举,因此根据案件的实际情况参考哪些法条和如何定罪与量刑是法官、律师、陪审团等法律程序参与者的任务。这种人工干预有巨大操作和斡旋空间,也就出现了各种州级法院和联邦法院判断不一致的情况—— 明明案件内容是明确的,法律条文是明确的,然而判断却是不清晰的。

这也引发了我几年前的一个脑洞:既然现实情况如此复杂,法律条文迭代缓慢且难以穷尽,为什么我们不能让机器代替我们去学习历史上那些庞大的案件判例和法条规则,然后对每一个新的法律案件或纠纷做一个定罪的多分类,这样产生的”机器判官”,其判案准确率或许要比法官要准确的多。无论法官多么经验丰富,在面对一个新案件时,其援引的判例也是有限的,而一个训练好的模型或许能将历史上所有相关的案件都考虑进来。

我以为我有了一个好主意,兴冲冲地去网上搜索,才发现 AI 和法律领域的结合早在1987年就有人开始做了,而且他们几十年来不断尝试的领域和方法也是我未曾料想到的。然而,他们也经历了一个艰辛的过程。

历史

说到 AI and Law (以下简称 AIL), 就不能不提 ICAIL (International Conference on Artificial Intelligence & Law),这是国际唯一一个关注于 AI and Law 领域的会议,自1987年第一举办以来已有31个年头。一部 ICAIL 的历史,其实就是整个 AIL 领域的发展史。

(图 来源[17]:随着时代变迁,ICAIL会议主题云图的变化,从中可以看出 expert system, knowledge base 等的淡出)

对法律条文、案件建模的尝试,早在上个世纪八十年代就开始了。那个时候就已经诞生了基于逻辑的形式化方法进行法律推理 (legal reasoning) 以及人工神经网络的数值方法。还有一些借着专家系统的东风, 通过一些 基于法律条文(rule-based),基于案例(case-based) 和 基于知识(knowledge base) 的手段帮助法律从业者进行辅助推断以及其他工作,这其中比较著名的案例是 HYPO, 一个基于案例的法律推理系统,它几乎引领了基于案例的法律推理潮流。

随着 AI 领域本身的发展,近年来基于专家系统的方法日趋势微,基于统计机器学习的方法则开始大行其道。 比如使用贝叶斯网络等图模型进行证据推理(evidential reasoning);在 E-Discovery 使用 SVM 等方法进行法律文档分类;以及与NLP的结合,如法律领域限定的命名实体识别 (NER), 信息抽取与信息检索等等;基于逻辑的形式化方法也并没有完全消散下去,而是继续在诸如计算法律(computational law) 等子领域贡献着光热。

已有工作

目前围绕 AI and Law 的工作,从功能上大体上可以分成两类: 一类尝试直接对法律本身、案件、推断过程建模,涉及到诸如道义逻辑(Deontic Logic), 非单调逻辑(non-monotonic logic) 等传统基于逻辑的形式化方法,也有基于神经网络,贝叶斯网络等的统计学习方法;另一类则选择了绕行,既然前者困难重重,那么我们不妨退而求其次,利用专家系统、自然语言系统等手段, 通过法律文档化、文献文书检索、实体识别等方法来提高法律人的工作效率,让他们从繁重的重复性工作中解脱出来从而聚焦到更有意义的事情上去,这同样是一件有价值的工作。下面简单地从几个方向分别举例说明。

Reasoning (Rule based Reasoning vs Case based Reasoning)

顾名思义,该领域主要研究法律推理的各种方法。从派系来分,可以分成基于法律规则的推理(rule based reasoning) 和基于案例的推理(case based reasoning)两派。如果说 基于法律规则的推理是将已有规则应用于案件进行推断的话,那么基于案例的推理更侧重于寻找已有比较类似的案件来进行归纳推理。从方法上来说,两者都曾经偏好使用基于逻辑的方法来进行形式化。相关逻辑理论的讨论也是领域焦点。比如考虑齐硕姆悖论(Chisholm paradox),即道义逻辑对法律形式化是否是真正可用的等等。近来基于案例的推理更加偏向主流,其原因可能是支撑基于规则推理的一些传统方法(比如专家系统, knowledge base)渐渐淡出视野,也可能是后者与统计学习的天然联系,毕竟基于案例的推理就是靠对以往大量判例的分析进行推断。

e-discovery

全称 Electronic Discovery。其目标在于为法律诉讼,政府调查等领域提供专门的信息化服务。与传统的纸质信息提供服务不同,E-Discovery 比较注重信息检索的“结构化”,也就是 metadata。比如一个信息条目的时间、地点、涉及领域,甚至事件的形式化描述等。这些信息可以大大优化相关人员的查找效率,节约成本。

由于 eDiscorvery 的本质就是从基于纯文本的文档中提取有价值的结构信息用于从业者的检索和查阅分析; 因此从解决方案上目前基本上与 NLP 联系较紧,比如之前提到的命名实体识别、自动生成文摘、情感分类等。通过这些方法,可以从法律文本中自动提取信息,自动化生成相关专业领域的文件,推动法律文档化等。

computational law

计算法律可以说几乎是与法律人工智能的最终态—— AI判官最为接近的领域了, 其目标是法律本身以及案件的形式化表达和自动推理。

The Computational Law project focusses on formalization of governmental regulations and enterprise policies, development of automated reasoning procedures for compliance checking, legal planning and regulatory analysis, and developing user-facing computer systems

该领域涉及到的方法暂时还主要偏形式化( Computational Logic ),分两部分:第一部分是事实和规则的形式化表达;第二部分是使用一些机械推理技术来分析案件自动产生推断结果。目前计算法律的发展暂时还没有成熟到可以完全使用的程度,原因是逻辑方法很多都是基于规则的,很难 case-by-case 地对复杂判例做去完全表达,这对于使用英美法系的国家来说尤为严重。

当代:与 NLP 的结合

目前在 AIL 领域应用的最多的还是自然语言处理等相关技术。因为无论是对法律本身建模还是建立一些帮助法律从业者的辅助系统,都需要我们从现有的法律条文,案件描述卷宗等资料出发,将其信息化和结构化,这是必须的第一步,而解决该问题的方法还需从 NLP 入手。比如我们可以根据主题模型(Topic Model) 将案件通过涉及到不同的法律法规或者量刑的不同进行聚类;通过信息抽取来生成案件的结构化描述信息;通过自动文摘加快从业者浏览文件的效率;通过QA来建立法律领域的自动问答系统来尝试在线法院等等。这也与当下推动“智慧法院”,将法院数字化,自动化的主旨相符。下面举出几个例子。

1 EBravia

EBravia 是一家致力于法律文档结构化的公司。它通过先端的机器学习技术,可以从非结构化的原始文本中提取里面蕴含的时间,地点,以及法律领域相关的关键词,短语,句子。大幅度节约法律工作者从文本里人工挖掘信息的时间。

(图:来自EBrevia 官网[19] 的视频简介)

2 Legal Robot

这家名为 Legal Robot 的公司则更侧重法律文档审校和合同文本分析。它推出的合同文本分析工具不仅能帮助相关工作者校对领域文法的错误;还能基于海量的合同样本数据,生成一些常用的领域短语和句子, 帮助人写出更加符合领域需要的法律文书。同时,对于已有的合同文书,它还能捕捉到里面表示模糊,给当事人带来隐性法务风险的词句,从而在风险管理领域发挥强大的作用。

(Legal Robot 样例, 来源[20])

3 LUIMA

Luima, 即 Legal UIMA, 是一个由 IAAIL 及 CMU 等相关领域的研究员共同研发的法律检索系统。它专注在疫苗伤害事故相关的法律文本,对用户搜索的 query 给出包含对应法律条文或者类似案件信息的文档用于参考和对比分析。具体而言,Luima 系统整体上分成四个模块:法律语义标注,文档存储与索引,文档搜索,搜索结果排序。

(图: 来自[13] LUIMA,一个 法律文档检索系统的 Pipeline)

对一个法律文档,Luima 会先将其拆成句子级的文本。对每个句子做 Term, Mention, Formulation 三个级别的标注,然后通过这三中标注将每个句子分为 LegalRuleSentence, EvidenceBasedFindingSentence 和 other 三个分类。对于该分类任务,Liuma 使用了句子的 n-gram TF-IDF 和上述的法律语义标注信息做特征,使用 朴素贝叶斯,逻辑回归,决策树等方法训练出一个分类模型。这样输入的原始文档就会转化成多个带有语义标注即句子级分类标签的句子集合,并存入数据库中。当用户执行查询操作的时候,Luima 会先通过 Lucence 引擎找出 Top-30 个文档结果作为预选的“专家文档”,然后对这30篇文档的 candidates 做二次重排进而筛选出更符合条件的搜索结果。进行二次重排是为了避免那些“仅仅文档的文本相似但是实际语义毫不相关”的情况。该过程综合考虑了之前产生的相关法律语义匹配情况以及文本相似度等多个特征,使用逻辑回归对文档排名进行打分,返回最终的文档结果给用户。

从 Luima 我们可以看到基于自然语言处理的技术(TF-IDF 等特征),机器学习模型(逻辑回归等)是如何与法律专业知识(领域级语义标注)结合起来并发挥作用的。

除了这三者之外,还有一些通过机器学习来做法律推理的方法,不过目前还是停留在 Paper 级别的居多,就不加赘述了。

问题

当然,AIL 的发展也并非前景大好。有一些内部本身以及涉及到跨行业的矛盾仍未得到解决。

法理学的角度

从笔者对法理学最浅薄的理解,一切法律都是依据所处国家,所处文化,道德导向等种种因素的基础上,对“自然法”——这一正义的基本和终极的原则的集合的诠释。而随着法律人工智能的进行,无论是逻辑还是模型,是否真的能体现法理学精神;是否能被传统法律从业者所接受;法律行业与人工智能领域这两个职业的最佳契合点到底在哪里,这些问题仍待解决。“人工智能能做哪些事,不能做哪些事,机器判官是否能为人所接受”;其包含的技术风险和伦理风险,可能不再是公众号和媒体的纸上谈兵。

法律过程与事实抽象的困难

法律不是数学规律,她不仅仅包含那一个个孤零零的发条。一些与现实紧密结合的法律过程和事实,比如陪审团,比如对抗式刑事审判,这些实际过程如何进行数学或者模型的抽象,都不是一个好解决的问题。

对AI本身发展的巨大依赖

从 ICAIL 的历史可以看出, AIL 的发展,几乎是强依赖与AI本身的发展的。90年代前 knowledge base 以及专家系统是主流的时候,大量基于它们的论文也如同雨后春笋,而现在则门可罗雀,统计学习和 NLP 则甚嚣尘上。这不由得不令人怀疑 AIL 是否仅仅只是 AI 的一个附庸。 到底 AIL 能不能独立出一套与其他领域无关的方法论,然后将其他领域的方法接纳进来为我所用,也可能是一个今后需要解决的问题。

展望

AIL 的理论在上个世纪得到了巨大发展,而具体的落地则刚刚开始。从“智慧法庭”和法律文档化的潮流上看,AIL 至少是一个到处都需要填坑的朝阳产业。但是计算法律的理论,AI判官是否还能继续前进下去,ICAIL 能否不再是一个两年一届的C类会而真正走向 AI 的大家庭之中,就看之后的发展了。

(图: Research – Practise Paradox, 来源[17])

Reference

  1. codex
  2. History: 50 best papers of ICAIL
  3. Connectionist expert system
  4. computational law
  5. HYPO: A Process Model of Legal Argument with Hypotheticals
  6. NLP-E-discovery
  7. conceptual retrieval and case law
  8. Formalizing Arguments, Rules and Cases
  9. Law and Logic: a Review from an Argumentation Perspective
  10. Deontic Logic
  11. Constructing and Understanding Bayesian Networks for Legal Evidence with Scenario Schemes
  12. NEST: A Compositional Approach to Rule-Based and Case-Based Reasoning
  13. LUIMA: Introducing LUIMA: an experiment in legal conceptual retrieval of vaccine injury decisions using a UIMA type system and tools
  14. 法律智能十大趋势
  15. AI and Law, 人工智能与法律(一)
  16. Law Department Artificial Intelligence Survey Report
  17. 25 Years of AI & Law ICAIL 1987 – 2013
  18. AI in Law and Legal Practice
  19. EBrevia
  20. Legal Robot
  21. 美国最高法院网上新判例
Share

人件 – 是什么在阻塞智能与智能化进程

智能进程与智能化进程

《人件》作者汤姆·迪马可、蒂姆·李斯特在他们的书中,曾推崇人本管理思想,指出知识型企业的核心是人,而不是技术。而今天我希望从智能系统设计的角度,讨论一些“人件”相关的设计陷阱。

如果说“I/O(输入/输出)”是阻塞“系统进程”的最主要原因,那么在“智能进程”中,“人件”即“I/O”,它也常常阻塞智能进程的执行。在企业智能化过程中,通过重新设计人机交互,规避“人件”带来的效率阻塞,已经越来越常见,例如RPA(机器流程自动化)就是一种常见的技术方向,将原有的人工操作,转化为机器人自动流程,以提高流水线效率。而另一方面,过多地规避“人件”甚至完全去除“人件”,也可能因此错过许多智能化的推进机会,例如难以积累足够的原始数据和标注数据训练集,用于监督学习和模型测试。

因此企业智能化的核心问题之一,就是如何巧妙地取舍人在系统中所扮演的角色。Intelligence process(智能进程)与Intelligence empowerment process(智能化进程),这两者之间,存在着一些方向上的矛盾,也需要精心的设计来平衡两个目标,下面的几个例子,会着重谈谈观察到两者的矛盾点和一个常见的重构设计思路。

智能客服的数据采集难题

“智能客服”是AI技术的一个常见应用场景,非常多的企业在构建智能客服的过程中,几乎无一例外地面临一个难题,“数据从哪里来?”,我们发现在很多企业中,由于效率优先的人机设计,数据常常采用结构化的方式采集而来,而丢失原始数据,这无疑给智能化进程增加了难度。

例如,ThoughtWorks的请假系统在设计初期,支持员工通过Email直接发送请假邮件。系统中设计了简单的NLP模式识别,用于将文字转换为信息。原有流程为:(其中圆括号内的模块为智能化模块,而方括号的部分则是人件)

而由于HR频繁修正标注带来的工作量问题,现有的系统被设计成了如下的流程:

我们可以看到请假系统效率的提升,是来自人机交互的重新设计减少了软件中的人件模块。

但是从另一方面看,由于不再积累原始数据,我们错失了训练模型的机会,因而原本计划的“发个短消息请假”、“使用微信语音请假”的宏远目标也遭遇了滑铁卢。

针对这样的矛盾,我们看到在某些系统中,别出心裁地设计了巧妙的流程来采集原始数据。

例如Expensify提供了SmartScan功能,用户可以将发票上传至服务器进行OCR图像识别,完成数据结构化。而为了避免该功能完全阻塞用户提交报销申请的流程,Expensify同时也保留了结构化数据表单,鼓励用户对不准确的图像识别结果进行人工标注。

通过这样的巧妙设计Expensify完成了一个完整的“智能化”反馈环,并解决了智能进程阻塞的问题。

类似的重构设计有很多,它的一个常见思路,就是在保证原有进程效率的同时,非侵入地改变“人件”在系统中扮演的角色,例如将“数据填充者”,通过修正表单工具的支持,转变为“数据修缮者”,通过职能的转变,优化智能化反馈环。

去中心系统运营中的投票难题

EOS曾经是史上最大的ICO,也是号称采用性能最好DPOS共识的区块链之一,它通过投票的方式选举出21个节点,并在其之上构建起具有超高TPS的分布式账本。

然而,恰恰是这样一个设计了各种高效机制的系统,在主网上线的过程中,让众多超级节点头疼的问题,竟然是让社区引以为傲的“投票”机制:尽管EOS拥有非常多的投资人,最初却只有15%不到的用户知道应该如何使用交易所购买的通证参与超级节点的票选,而社区需要花费大量的人力物力,“去中心地”教育每一个用户,应该如何操作提币、使用钱包投票等事宜。

尽管如此,我们依然欣慰地看到EOS的社区有着远大的愿景,以吸引更多个体参与到社区运作和账本背书当中,避免传统POW机制下的算力集中带来的安全隐患和信任问题。

EOS保留了传统区块链的work-in机制,并且将其放大到整个社区运作当中,而几乎完全抛弃了don’t make me think的设计方向,因而实际的运转中,“投票”处处阻塞着平台的智能进程,这很类似《人件》这本书中谈到的“会议上瘾”,过多的人工决策点严重影响着运营效率。

在设计同样致力于群体性智慧的“雷达网络”时,我也在寻找一些手段来减少这种低效的沟通,使用一些智能模块来替代掉一部分重复劳动,包括按照媒体曝光度输出技术候选项列表等,并设计更顺畅的反馈环,让参与者在享受服务的同时,也可以贡献到智能化进程中。

人件的价值

最近的两年里,非常多的文章开始鼓吹智能化带来的颠覆性变化,甚至出现了非常多的“抛弃体”,像《人工智能干掉金融民工,他们是第一批被赶走的北漂》、《初中生已经会用人工智能识别水果了,你孩子的同龄人正在抛弃你》等等,仿佛社会对于一部分人员职责的定义已经变成了一种“有机验证码识别机”。

诚然,现实也确实如此,非常多的l工种都正被数字化、智能化浪潮影响到,而不管是《人件》中强调的人应该专注在知识与价值创造,还是《增强人类》中的利用科学技术克服人体局限性的想法,都在反复呼吁一件事,就是关注人在整个生态或系统中发挥的作用,和其本身的诉求。

我们渴望看到人类在系统中,经由设计的改良,不断发挥更大的价值,而非沦为智能化进程中的阻塞或可替代品。人类可以也应当驾驭智能,只因智能本就是人类的造物。

Share

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

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基础之后尝试一下华盛顿大学的机器学习公开课。学完它的第一门课程,你就会发现,机器学习(乃至“人工智能”)其实是一件很简单、毫不神秘的事情——这一点,对岸的科技工作者们其实一直都知道。

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


更多精彩内容,请关注微信公众号:软件乌托邦

Share

建立属于你的智能客服

本文首发于Gitchat,原作者王晓雷,经作者同意授权转发。转载请联系作者或GitChat。

背景

很多人问,对话式交互系统就是语音交互么?当然不是。语音交互本身真的算不上新概念,大家可能都给银行打过电话,“普通话服务请按1,英文服务请按2……返回上一层请按0” 这也算对话式交互系统,我想大家都清楚这种交互带来的用户体验有多低效。那么对话式交互系统已经可以取代人类提供服务了么?也没有,图灵测试还没有过呢,着什么急啊。

不过,随着人工智能的发展,对话式交互穿着语音和文本的外衣,携手模糊搜索引擎,怀抱计算科学和语言学的内核,带着定制化推荐的花环,驾着深度学习和大数据的马车乘风破浪而来——我们就知道,大约是时候了。至少,我们已经可以在十分钟内创造自己的对话式客服了。今天的文章大致分为三部分:历史,今天(chatbot api)和未来(深度学习和智能问答)。

先定义一下交互系统,wiki给出的定义是

Interaction is a kind of action that occurs as two or more objects have an effect upon one another.

即双方或者多方相互影响的过程,那么在咱们的上下文中,我们不妨限定为人机交互。先来讲讲是什么,再来讲讲怎么做吧。

历史和现在

广义上的对话式交互实际上包括所有一问一答形式的人机交互,自始至终,我们都需要从机器拿到信息。在最早的时代用的是文本交互系统TUI,其实直到今天,我相信程序员们在Linux下面完成大部分操作时还是会选用Terminal,这种文本交互非常简洁高效,但是有一个缺点:不熟悉操作的人上手非常困难,需要记住大量的指令和规则,才可以有效的告诉机器想要它做什么——正如一个笑话:“问:如何生成一个随机的字符串? 答:让新手退出VIM”。

直观的,既然“以机器的交流方式告诉机器想要做什么”这件事情给人类带来了很差的用户体验,那我们可以让机器提供可能的选项来让人类选择。所以,人类用了几十年,把交互系统升级成了图形化交互GUI。大家今天看到的桌面系统就是特别典型的一个体现。包括后来的触摸屏幕和智能手机的发展,其实都是图形化交互的不同表现。

现在一切都好了么?并没有。虽然机器可以在瞬间呈现大量的信息,但是人类在同一时刻可注意到的信息却极为有限。心理学研究发现,人类的注意广度其实只有5-9个对象。想象一下上面那张图,如果我在桌面上放100个应用程序呢?1000个呢?随着数据量的发展。如何在大量的信息中,迅速呈现出有效的信息呢?

搜索系统,或者再具体一点——推荐系统,在选项过多的时候,承担起了给用户尽可能高效率的提供想要的信息的任务。如果我们做好了智能搜索,我们就能做好智能交互。本质上都是一样的:在浩瀚的已知数据里,基于一定模型和经验,总结出用户最想要的答案并及时的呈现出来。我问Google一个问题,Google将我想要的答案排在第一个位置返回给我,谁又能说这不是对话式交互呢?

当然,我们希望的对话式UI不仅是一问一答,我们希望对话系统能够有自己的知识数据库,希望它保有对上下文的记忆和理解,希望它具有逻辑推演能力,甚至,颇有争议的,希望它具有一定的感情色彩。

所以,我们有了今天的Conversational UI,对话式交互只是一个壳子。其中的本质是智能和定制化服务,在一段时间的训练之后,你拿起电话拨给银行,应答的智能客服和人类的交互方式是一样的。抛开繁琐的从1按到9的决策路径,直接告诉他你要做什么,银行会直接给你提供最符合你需求的服务。而完成这个任务,我们主要有两条路可以走,一条是专家系统,这里也会给大家介绍几个网络上的引擎,争取在十分钟之内让大家学会建立一个属于自己的智能客服系统。而另外一条,则是智能问答系统,需要一点机器学习和深度学习的知识——教机器理解规则,比教机器规则,要有趣的多。

输入和输出

前面都在讲输入,就是机器如何理解人类的指令。是因为输出这个问题,可以说已经被解决了很久了。文本、图像和语音三大交流方式中,语音被解决的最晚,但是20年前的技术就已经足够和人类进行交流了,虽然我们还是能很容易的听出来语料是不是电子合成的,但是这一点音色上的损失并不影响我们交流的目的。

而语音到文本的识别便要复杂得多。这类工作确切来说始于1952年。从读识数字从1到0,然后把数字的声音谱线打出来,识别说的是哪个数字开始。这个模型虽然达到了98%的精度,但是其实并不具有通用性:数据源空间和目标空间都实在是太小了。

我们都知道当下最著名或者说最好用的语音识别模型是深度学习模型。但是在此之前呢?举一个典型例子:开复老师的博士论文,隐马尔科夫模型,大约三十年前发表,如下图所示:

简单说就是一个时间序列模型。有时间状态,隐藏状态,然后有观测状态。比如我有两个色子,一个六面体色子,从1到6。一个四面体的,从1到4。两个色子之间进行转换的概率都是0.5。现在给出一段极端一点的序列 111122224441111555566666666,大家觉得哪一段是四面体色子、哪一段是六面体色子呢?同理,听到一个语音,我想知道后面隐藏起来的那句话,原理也是和扔色子一样的:根据观测到的状态(声音)来推理后面隐藏的状态(文本)。这类概率模型的效果相当不错,以至于今天还有许多人在用。

chatbot api

按照人工干预的多少,推理引擎的实现大致可以分为两类。一类是人工定义规则,一类是机器从数据里面自动学习规则。对于前者,我们都知道wit.ai和api.ai这两个著名的chatbot开放api, 分属于Facebook和Google两大巨头。先来看一下实现的效果:

(图片来自:http://t.cn/RS17j6U

这里的+表示得分,机器准确的理解了人类的意图。o表示不得分,机器并没有理解。我们可以看到,其实表现并没有想象中的那么好,一些很简单的案例‘i would like to order pizza’ 都没有得分,离普通人类的智能还有些距离。

那么背后的逻辑是怎样的呢?举一个api.ai的例子,我们会定义不同的类型和变量,然后把他们和相关的值与回答链接起来。从而在和用户进行交互的时候,能够按照已知的(人类定义的)规则来存储相应的值,并调用相应的方法。

可能大家会觉得英文读起来比较慢,这里介绍一个中文版api.ai——yige.ai. 并不是广告,我了解这个平台还得益于我的朋友——有一天他跑来跟我说:夭寿啦!你知道吗,有个相亲网站,拿人工智能代替女性用户和人聊天!之后,官方辟谣说并不会这么做。但是yige.ai在新手入门方面的友善程度,实在是我见过中文chatbot API中数一数二好的。

(具体参见:http://t.cn/RcjU8w8

但是也正如图中所示,我们依旧需要人工定义很多事情包括词库,场景,规则,动作,参数等等。在买鞋这样一个小的场景和确定范围的交互期待里面,这样做还是可以为大部分人群所接受的。毕竟简单而直观,精准的实现了“十分钟制作属于自己的chatbot”这一需求,更不需要强大的计算资源和数据量。但我们并不太可能在这样的系统里面,得到定义好的域以外的知识。如果我们的时间和人力足够多的话,能够有专门的一些领域专家来完善这个提问库,将会使得搜索的精度非常高。因为所有可能的提问都已经有了专业的答案。但是,当场景复杂之后,这样做的工作量就会变成很大的压力了。

所以,我们需要深度学习。

深度学习想要达到一个好的表现,需要有两个前提。一个是足量的计算资源,一个是大量的数据。

计算资源不用说,如果没有GPU,图片/语音这种非结构化的原始数据训练的时间基本需要以“周”来作单位。

数据集设计

关于大数据,一个很常见的问题就是,多大才算大,学术一点的说法是:大到包含区分目标值所需要的所有特征就可以了——我们都知道在实践中,这句话基本属于废话。那么举个例子,一般来说训练一个语音识别的模型,数据是以千小时为单位计算的。

而且很抱歉的是,很多商业公司的数据集基本是不公开的。那么对于小型的创业公司和自由研究者,数据从哪里来呢?笔者整理了一些可以用来做自然语言处理和智能问答的公开数据集,这里由于篇幅和主题所限,就不展开讲了。改天会专门开主题介绍免费可用的公开数据,以及在公开数据集上所得到的模型应该如何迁移到自己的问题域当中来。

图片来自:https://rajpurkar.github.io/SQuAD-explorer/

这里用斯坦福大学的著名问答数据集作为例子,SQuAD,可以被称为业内用于衡量问答系统的最棒最典型的数据集。我们可能在高中时代都做过阅读理解,一篇文章带有几个问题,答案来自于文章的信息。那么有了这样一个数据集,我们能做的事情是什么呢?这样一个数据集所训练出的模型可以解决什么样的问题?在各个问题中,人类的表现和机器的表现有什么样的差异?为什么?

我们很高兴的看到,在最新发表的一篇基于r-net的论文中,机器的表现已经可以和人类媲美了。人类在这个数据集所得到的EM得分约82.3,F1得分约91.2。而微软发表的框架EM得分高达82.1,和人类相差不足0.2%。

深度学习

好的,现在数据有了,计算资源有了,模型从哪里来呢?我们很高兴的看到算法正在进化,人工的干预随着技术的进步越来越少。在DeepMind于2017年12月5日发表的最新版本中,AlphaZero没有用到任何人工的特征就打败了用了一堆特征的前任AlphaGo,也打败了人类历经千年沉淀下来的珍珑棋谱。

直观一点,在图像识别的深度网络中,计算机难以理解原始图像像素值的含义,然而神经网络每层的权重实际上学习到了图像的高级特征。越高层的神经网络,成分越具体。第一层可以通过比较像素的亮度来识别边缘,基于此,第二层可以检测边角的集合,第三层可能是小的色泡或者面,第四层可能是嘴巴这类更复杂的对象,再往下可能是更具体的特征,直到物体本身。 神经网络和人脑一样,将原始信号经过逐层的处理,最终从部分到整体抽象为我们感知的物体。图中所示的是一个从图像到物体的感知过程,或者说是一个图像到标签列表的映射模型。

图片来自:http://www.deeplearningbook.org/contents/intro.html

语音转文本或者问题到答案,也是一样的,可以用sequence2sequence作为学习的模型设计。前面说到的api.ai也好,yige.ai也好,规则和变量都是倾向于人工定义的。机器会对未经定义的语法规则给出一些通用的支持,但是正如我们看到的,一旦遇到定义域之外的交互场景,表现就很难尽如人意。

而在端到端的识别中,我们不关心所有的语法和语义规则,所有的输入直接定向为问题,所有的输出直接是答案。当数据足够多,我们就可以做到端到端的识别,而不受人工定义的语义规则的干扰。这件事情,既是好事情,也是坏事情。基于人工规则的机器永远都不可能超过人类的表现,但是纯基于数据的机器学习模型,却可以打败人类——这点在AlphaGo的所向披靡之中,已经被证实过了。

图片来自:http://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf

如同图示,seq2seq的模型可以基于Sutskever在2014年发表于NIPS的一篇文章设计 ,模型用recurrent neural network每次读入一个token作为输入,并预测应答的token。我们假设第一个人说了ABC,而第二个人回答了WXYZ,那么模型将会建立一个从ABC到WXYZ的映射。模型的隐变量,我们可以叫他“thought vector”,表明在这里机器理解了这个ABC的想法,或者说概念。这个模型在简化程度和通用程度上都是极好的,后面的实验也证明了这一点。

下图是LSTM(一种神经网络)所产生的翻译结果样例,大家可以参考一下效果,并和百度翻译以及谷歌翻译对比一下。

图片来自:http://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf

深度学习Chatbot开源实现

相信通过前面的介绍,大家对于对话式交互系统,以及现有的api都有了初步了解,那么对于剩下一部分想要自己实现模型的人们,感谢github和arxiv,我们在源代码和原理级别都可以知道当今最聪明的那批人在做什么。

这里是一个颇具代表性的开源框架,纯基于seq2seq,由机器学习实现,并没有任何人工规则干预:https://github.com/Conchylicultor/DeepQA

文章参见:https://arxiv.org/pdf/1506.05869.pdf

和Google一直以来的风格相符,整个代码都是在TensorFlow和python3.5上实现,支持各种开源数据库以及定制化对话数据库,甚至拥有本地的web界面。有现成的权重文件可以下载(无需自己耗时训练),通过 TensorBoard我们也可以轻松监测系统的表现,虽然在部分对话的表现上差强人意,有着诸如在上下文中对同一个问题的回答不统一这种明显的bug,离通过图灵测试更是很遥远,但是其设计原理和实现方式对入门者实在是再友好不过。至少,这个模型告诉了我们,深度学习模型是可以自动从有噪声的开放领域内提取相应知识,并全自动生成答案的。

总结与展望

总结一下,如果我们有更多的领域专家和业务分析师,并且业务上需要进行对话式交互设计的场景相对有限,变量关系都比较简单,那么毫无疑问,各式各样的chatbot API将会是你最好的选择——它设计直观,接口简单,集成容易,而且大多数时候,它在特定问题下的精度将会比端到端的深度学习要高。如果我们有更多的数据科学家和大数据工程师,对和机器一起学习数据中的规则有很大的兴趣,同时业务场景又比较复杂,需要支持更多非结构化的原始数据以及自动化提取特征和规则,那么建议大家借势深度学习,搭建属于自己的智能问答系统。

篇幅所限,这里不再啰嗦,祝大家玩的开心!


更多精彩洞见,请关注微信公众号:思特沃克

Share

机器与人的战争,还是人与人的战争?

人工智能的风险讨论已经不再是新话题。在过去几年中,很多研究者提及了人工智能(以及与之紧密相关的技术,尤其是机器学习和大数据技术)可能带来的危害与风险。值得注意的现象是:在公众话语空间中,所流行的关于智能技术伦理危害与风险的讨论,大多将“人类”整体视为潜在的被害对象,大量的叙事被构建为“机器VS人类”的形式。

人类VS机器的讨论层出不穷,相关的小说、电影等也被大量的创作出来。

关于智能技术如何被当前的社会权力结构所主导,并反过来强化该结构,从而加深对弱势边缘群体的压迫,相关的讨论数量较少,且缺乏系统性。本文将展开关于智能技术伦理危害与风险的介绍,并着重讨论其如何强化社会与经济的不公正。

想象未来世界:全人类被毁灭的讨论

有关智能技术伦理危害与风险,部分讨论已进入流行文化空间,引起了大众的兴趣。通常,其以未来学的形式示人:试图推测人工智能技术成熟、尤其具备了自我完善的能力之后的未来图景。如超级智能、人工智能毁灭人类技术奇点等讨论,引发了大众对其中伦理问题的广泛关注。

相关的讨论占据畅销行列,大众对人工智能的伦理问题也开始关注。

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

麦肯锡的报告更近一步,分析了哪些职业将被替代。

除了造成大面积结构性失业外,人们还担忧,赛博空间和物理空间的战争:控制了大量资源甚至自动化武器的人工智能,是否会攻击它们本不应该攻击的对象?这种危险甚至不必以战争的形式出现:考虑到它们已经在社会经济中扮演如此重要的角色,其错误行为(甚至只是不恰当的优化)是否会造成极端恶劣的结果?可以注意到,以上几类常见的讨论,总体上强调人工智能对人类整体的影响,并不凸显其对当前社会不同人群所造成的不同影响。

同样的趋势,也出现在对智能技术风险的分析中。众多此类分析聚焦于技术层面,而并未将社会和政治因素纳入考虑。例如斯坦福大学的研究者认为,通过机器学习尤其是深度学习得到的统计学模型,具有以下特征及安全隐患:

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

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

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

未来世界也在折叠?

相比前一组特征,O’Neil识别的特征具有一个值得注意的要点:特定的人群。她指出了一个极其重要、但绝非总是明显的问题:智能技术对人的影响是有区别的,同一个技术可能让一部分人受益、同时让另一部分人受损。2010年在伊利诺伊州开始实施的教师绩效评估算法,引发了芝加哥教师的广泛反对乃至游行抗议,这就是一个实例。

正如Linnet Taylor不无洞见地指出,在进行伦理评估时,人们倾向于抽象地谈论智能技术可能造成的伤害,而具体地谈论它带来的收益,于是实在的收益总能压倒模糊未知的伤害,从而使项目通过评估。通过将社会和政治因素纳入讨论范围,O’Neil所提出的对具体人群的关注,给了我们一个重要的视角,来重新审视智能技术可能带来的损害和风险。

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

作者邱林川讨论了新形势下的奴隶—i奴

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

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

JTRIG(Joint Threat Research Intelligence Group)是GCHQ(Government Communications Headquarters政府通讯总部)的一部分

早在1980年代中期,研究者们就围绕“计算机伦理是否具有独特性”这一问题展开讨论。Johnson认为,计算机伦理只是把标准的道德问题以新形式呈现,逼迫我们在新的领域中延续旧的道德规范,它本身不是一个独特的新题目。而James Moor则认为,计算机会大幅度转化/强化现有的伦理问题,并且造成过去未曾出现过的新伦理问题,因此计算机伦理本身就是一个独特的新题目。

这两种观点,对于我们全面认识智能技术的伦理问题,有着重要的启发意义。我们既需要充分了解智能技术的独特性,及其对伦理问题带来的独特影响,又必须认清新技术背后潜藏的旧有冲突、斗争和伦理准则,这样才能准确把握智能技术的伦理方向,使其向着对广大民众有益的方向发展。


更多精彩文章,请关注微信公众号:软件乌托邦

Share