人类社会由工业3.0时代过渡到工业4.0时代,不仅实现了重复性体力工作的自动化,也开始尝试重复性智力工作的自动化,即人工智能技术, 随之而来的是利用计算机实施的发明逐渐渗透到许多行业中,这类发明在各主要国家或者地区的专利申请数量逐年递增。以汽车产业为例,根据EPO的统计数据,利用计算机实施的发明专利申请数量在整个汽车产业专利申请总量中的占比从1998年的36%上升至2014年的63%。 在我国,仅就与软件相关的从事商业活动的方法专利申请数量而言,2008—2010年已呈现井喷式增长的趋势,2010—2014年更是以大约2000件/年的速度飞快上升。 人工智能时代计算机实施的发明具有如下重要特征:
利用计算机实施的发明是将计算机、网络和传感器等硬件与以算法为核心的计算机程序相结合,共同应用于各种不同的领域,如医学、工业生产、金融、商业咨询与决策、通信和模拟预测等,由此形成新兴的“互联网+”领域。这类发明一方面依托于计算机、服务器、通信网络、智能终端等硬件设备;另一方面也应用了分布式计算、大数据计算、仿真建模、人工智能、神经网络等数据处理技术,它们所产生的功能更多的是来自于软件或程序部分而不是机械组件。换言之,软件或者人工智能技术推动着计算机实施的发明的创新与发展。因此,大部分计算机实施的发明专利属于软件改进技术方案。正是这种互联网技术与传统行业的深度融合催生了交互渗透式的新业态,在具体的专利申请案中对应为交叉性技术领域。
研究与创造计算机实施的发明不仅需要计算机专业知识,也离不开相关应用领域的知识。专家系统是人工智能技术中最早发展且最成功的领域之一,开发专家系统必须有人类专家的支持,在系统建设过程中,知识工程师作为专门的工作人员负责从领域专家提供的信息中提取知识,再将之转化为计算机代码并构建知识库。当然,机器学习、数据挖掘和神经网络等自动化知识获取技术的应用,可能获得比人类专家制定的规则更加高效的机器规则,但是领域专家提供了系统开发所必需的基础性启发式知识。例如,大豆作物诊断案例中,基于植物病理学家的原始描述符集和确定诊断的患病植物的训练集,计算机程序合成了诊断规则集,执行机器规则得到的诊断结果准确率高达99%,超出了植物病理学家制定的规则所生成的结果。
计算机实施的发明所具有的跨学科性决定了它们的权利要求书中既包括技术内容(技术特征)也包括非技术内容(非技术特征),二者相互交织在一起,表现为技术创新与模式创新,或者数学算法创新与应用领域创新的并存,甚至在某些情况下,权利要求描述的技术方案与现有技术相比,仅侧重于交易模式和规则或者数学公式、计算方法的改进。例如“一种自助式配送系统,包括电子商务系统和通过网络与所述电子商务系统相连的寄存柜终端,所述电子商务系统包括下单子系统、库房即配送子系统、寄存柜管理子系统”:
所述寄存柜终端用于存放客户订购的商品或者包裹并允许客户从其中提取所订购的商品或者包裹;
所述下单子系统用于客户在线下单,并将订单传送给所述配送系统进行执行;
所述库房及配送子系统用于存储和管理商品,根据订单进行备货、进行商品出库,并由配送员将订单商品或包裹投递到客户所选择的寄存柜;以及所述寄存柜管理子系统用于与所述下单子系统和所述库房及配送子系统进行对接,接收所述寄存柜终端发送的信息和发送指令给所述寄存柜终端以管理所述寄存柜终端。
上述权利要求中涵盖了寄存柜终端等技术特征,与此同时也融入了非技术性的物流配送管理方法特征。除此之外,计算机实施的发明还可能对服务器、传感器等计算机、通信领域常见的硬件设备,和电子商务支付、核算、对冲等经济活动规则进行限定。可以这样认为,权利要求书中技术内容与非技术内容的交织是计算机实施的发明之跨学科性的直接表征和体现。
跨学科性可以被视作计算机实施的发明具有的首要特征,由此引发两个影响其新颖性和创造性判定的关键问题:第一,本领域普通技术人员是谁,能否将由专业人员组成的团队认定为本领域技术人员?第二,本领域一般知识是什么? [4] 目前,申请专利的软件相关发明不少是将常规的计算机解决方案和无线通信技术从一个领域扩大适用于另一个领域,如通过服务器、终端设备和网络等实现个性化定制和远程遥控电饭煲、热水器和搅拌器等工作时间、效果等发明,其中会涉及对于用户输入的数据在不同程度上进行的计算,授予此类发明以专利保护将造成个人垄断物联网常规技术, 而本领域技术人员的范围及其所掌握的技术知识和技能决定了这样的发明在他们看来是否显而易见。
关于算法的定义和性质在理论上仍然存在较大的争议。算法通常表现为用于解决特定问题可以在计算机上执行的指令,也可以自然语言、流程图或者伪代码(pseudo-code)等更加易于理解的方式表达。算法与计算机软件程序的关系是组成部分与整体的关系,它表明了实现计算机程序的功能或目标的步骤。算法具有四个主要特征:(1)有一系列指令,处理器通过执行指令实施一种不需要任何数学运算的方法;(2)不依赖于作为处理器的数字计算机;(3)每个计算机程序至少是一个算法的表达;(4)可以被用于解决许多问题,并不仅仅是数学问题。 [5] 由于算法不受计算机硬件和编程语言等具体因素的限制,它一般仅在一定的抽象程度上被考虑。 Benson 案中,美国联邦最高法院将算法解释为用于解决特定类型的数学问题的过程。 [6] 与之相反,也有观点认为算法本身是十分具体而非抽象的, [7] 因为它描述了人类或者计算机执行的一套操作步骤。CAFC也认为算法根本不会出现在自然界中,它只存在于人类的运算过程中,所以很难界定算法如何以及为何类似于自然规律。 [8]
算法是人工智能技术的核心,是保证软件相关发明实现特定功能或目标的隐喻结构, [9] 多数人工智能都运用了“机器学习”技术,其中使用频率最高的一种机器学习方式为“监督学习”,对此算法可以学习输入数据和相应输出数据之间的关系。另外,在非监督学习中,算法可以从输入数据中学习而不要求相关的输出数据。 [10] 神经网络和支持矢量机等机器学习模型和算法被广泛应用于不同领域的发明创新成果中。比如,斯坦福大学训练的一个用于区分皮肤良性或者恶性病变的深度卷积神经网络,它是以已知的图像为基础,使用图像像素点和疾病标签作为输入。在这项研究中,研究人员从谷歌公司开发的用于执行图像识别的算法入手,进而利用2032种疾病的129450张临床图像进行神经网络训练,从而使之能够识别皮肤癌症。该项神经网络的测试结果与皮肤科医师鉴定的临床图像进行对比,证实二者的判断和分类能力不相上下。 [11] 再如,Fishman、Bar和Loick共同开发的用于预测标准普尔经济指数的反向传播网络,该网络由两层构成,分为n个输入单元,其中n对应的是所使用的经济指标数,以及一个按比例缩放的输出单元,对于未来5天内的标准普尔变化做出预测。
不管是传统软件还是人工智能程序,算法于它们而言均具有决定发明架构的重要意义,只不过在传统软件编程活动中直接由程序员预先设定程序运行的规则——算法;而基于机器学习的人工智能软件发明中,由计算机从复杂的输入、输出数据中提取规则或模式,程序员或AI开发人员对于规则提取或者识别产生的影响较小。故此,大数据在人工智能的研发过程中发挥着关键作用。数据收集、数据工程和数据分析是人工智能系统不可分割的组成部分。于是,美国学者Frank A.DeCosta & Aliza G.Carrano还强调了在人工智能相关发明专利申请中公开训练数据集的重要性。 [12]
计算机程序所包含的算法与数学之间有着紧密的联系。例如,当人们利用Hebb学习规则对联想网络进行训练时,假设在处理相同任务中的处于活动状态的两个神经元应当更加积极地参与到神经网络活动中,所以需要通过公式赋予这两个神经元更大的权重,如对于输入神经元 x 1 和输出神经元 у 1 的权重更新公式为Δ w i j = αx i y i 。离散型霍普菲尔德网络是自联想网络,它能够找到能量函数的局部最小值,因此也需要用到能量函数的计算公式。事实上,算法是将输入数据经过复杂的计算转化为输出数据的过程,与数学运算的本质相似。它之所以能够解决客观世界中存在的诸多实际问题是因为计算机科学家和程序员将客观事物及其状态赋值,不同的计算结果对应不同的行动目标。尽管人工智能算法在不同程度上描述了自然世界的某些方面,但是它的实质是利用数学工具对于人脑结构和功能,或生物进化等基本规律的模拟。 由此出发,外国学者将计算机程序算法定义为“基于一定的数学算法、数学模型、数学公式设计的一种抽象步骤”。 [13] 另外,许多计算机科学家将数学验证方法用于测试计算机程序运行的结果,保证其符合软件说明书。反之,数学家们也利用计算机建模来论证各种理论并自动进行形式证明,也间接说明了这两门学科之间的相互关系。 [14] 在某种意义上,可以将数学理解为计算机科学的起源和基石。
软件承担了计算机实施的发明的主要功能部分,软件创新成果直接决定了发明整体的技术效果。一项计算机程序的开发过程大致可以分为三个阶段:(1)提出基本概念和设想;(2)以书面文件和流程图等方式详细描述概念;(3)实际撰写代码,测试和调试程序。 [15] 不难看出,软件需要经过由抽象到具体逐步发展的过程,其中涉及多个不同专业团队的集体性智慧。在概念层面上,考虑到消费者需求和经济回报,不同的互联网公司和程序员可能提出相似的设计理念,了解其他公司开发的程序中蕴含的思想概念也是行业惯例。 [16] 为了解决共同的问题,程序员们常常会利用相同或近似的软件和硬件工具, [17] 例如,将以某一种汇编语言撰写的程序转换为计算机可执行的代码的汇编器,或者将一种高级编程语言翻译成另一种低级语言的编译器,以及能够转译运行高级编程语言的解释器等。总的来讲,计算机程序的开发与更新通常建立在既存理念和想法的基础上,甚至基于它自身已有代码。软件产业受到有关硬件的结构性限制因素的影响,硬件的优化促使软件功能随之提升。对于现有程序和构思的累积性改进提高了计算机程序运行的稳定性。迭代程序中实际的计算机代码可能重复使用,用于测试的算法和结构也可能在新的程序中再现。迭代改进有助于实现同一程序的不同版本之间以及不同程序之间的兼容性。 [18] 但是,软件研发从顶层设计到编写代码在不同程度上会与行业内其他竞争者的创新活动发生竞合,掌握软件专利的老牌企业可以凭借先前的产品版本扼杀或控制初创软件企业;这种累积性创新活动所带来的更为严重的后果是滋生大量低水平创新成果。因难以区分相关发明属于公共领域的抽象思想还是为个体垄断的实际应用,即使可以明确计算机实施的发明是抽象思想的实际应用,与现有技术相比,它也未必具有突出的实质性特点和显著的技术进步,不足以获得专利保护,故而应将计算机实施的发明专利保护严格限定于较窄的范围内。
此外,在软件行业发展的早期,计算机科学家们会通过出版物等方式公开创新软件的源代码, 在计算机软件领域营造了一种开放共享的发展氛围。如今开源软件也是软件创新的一种重要模式, 不少开源软件在市场上得到了广泛的应用,如Linux操作系统,GNU操作系统等,这些软件的用户也是软件的开发者,开源软件的更新迭代是众多用户智慧贡献和积累的结果。开源软件所倡导的自由、开放精神与专利制度的排他性之间相互冲突,这也是为何大多数开源软件的支持者反对以专利法保护与软件相关的发明,因为它们在专利客体适格性和新颖性、创造性的授权标准上存在较大的不确定性,开发者难以评估开源软件是否有侵犯第三方在先专利权的风险,专利丛林效应使该问题更加凸显。
软件产业飞速发展的同时,软件产品的生命周期只有3—5年的时间, [19] 而各国和地区发明专利保护期限通常为20年,过长的专利保护期限抑制了研发人员自由利用软件领域已有技术进行有益改进,不利于产业整体技术进步。更重要的是,各国专利审查周期较长,根据我国国家知识产权局发布的统计数据,2019年我国发明专利审查周期为22.7个月,其中,高价值专利审查周期为20.5个月,专利复审请求审查周期为11.7个月,专利无效宣告请求审查周期为5.0个月; 2018年,USPTO专利审查周期为23.8个月,EPO审查周期是22.3个月,JPO专利审查周期为14.1个月。 复杂的专利授权程序与过长的专利审查周期无法适应日新月异、频繁迭代的软件相关发明,经过审查公告,异议复审和无效等专利授权确权程序,软件产品可能早已失去了市场竞争优势,甚至专利申请案尚未被批准已经被更优的同类软件所替代,专利制度并没有真正起到鼓励创新的作用。这也是传统上认为利用计算机实施的软件相关发明不适宜采取专利保护模式的原因之一,但是,它仅仅是实践问题,只能说明适用专利法保护计算机实施的发明存在不便之处,而不是否定其可专利性的理论依据。 [20] 况且,包括我国在内的许多国家和地区的专利局已经发布了关于优先审查或加快审查的规定。
计算机实施的发明实质上是为了获得预先设定的功能或者效果,利用计算机运行软件作为发明的技术手段,专利申请人往往围绕功能性特征撰写权利要求,却不在说明书中具体描述实现功能的特定方式,导致任何实现同一功能的替代技术均会落入功能性限定权利要求的范围。例如,一项专利权利要求表述为“一种用于数据传输的加密或者解密系统……”,但是,没有指明所使用的具体加密算法。过宽的权利要求保护范围意味着专利权人可以阻止当前以及未来针对某项功能的市场竞争,形成垄断地位。Mark Lemley教授开展的实证研究表明,100%的专利蟑螂和50%的非专利蟑螂的软件专利权利要求采用功能限定方式,他认为功能性限定权利要求已经成为软件专利领域的突出问题。 [21] 应对专利蟑螂现象的更好措施似乎并不是一味地抬高创造性或非显而易见性的授权标准,而是应当从公开要件、申请费以及收紧颁发禁令的条件等角度入手, [22] 细化相应法律制度的具体规范性要求。这是因为较高标准的公开要求迫使专利申请人更加贴近说明书中所描述的技术方案内容来撰写权利要求,缩小专利权利要求用语的字面含义范围。
各主要国家和地区的专利制度一般要求说明书须披露关于要求保护的技术方案的足够细节,以达到本领域普通技术人员能够实施的程度。以美国为例,专利法第112(f)条允许专利申请人提出“装置加功能”(means-plus-function)类型的权利要求,并且功能特征仅限于说明书中公开的结构及其等同物。 对于软件相关发明的专利权利要求中的功能特征,它的相应结构被认为是通过数学公式、流程图等方式表达的用于执行该功能的算法。 在 Phillips v.AWH Corp.案中,CAFC就第112(f)条的适用范围作出解释,认为它只适用于“没有提供实现引述功能相应结构的纯粹的功能性权利要求”。 [23] 实践中,部分专利申请人为了刻意规避适用第112(f)条,会将权利要求中的功能要素与细小的计算机硬件相关联以满足结构要求,但是专利申请材料中公开的细节仍然不足以使本领域技术人员实施技术方案。比如,Facebook公司持有的关系时间轴专利, 说明书中并不涉及特定的算法或者代码创新,而是以社交活动和关系的结构为重点,描述了计算机系统通用的结构性元素。其权利要求中包含的社交关系和成果因素,致使任何能够按照时间顺序展示社交关系的计算机系统,以及为社交关系分类的相关指标和便于输入更多关于社交关系的信息的交互界面,都可能侵犯Facebook公司的软件相关发明专利。 [24]
说明书充分公开要求的功能是令社会公众掌握足够而清晰的有关发明创造的信息,作为对价,政府代表公众授予发明人一定期限内的垄断权,使他有机会将发明投入市场以补偿其研发成本并赚取经济利润。 它与客体适格性、发明的新颖性和创造性属于彼此独立的专利授权要件。然而包括说明书在内的国内外专利文献是现有技术的重要组成部分,审查员检索到的相同或者类似技术领域的专利文献数量,及其披露技术方案的详细程度,在很大程度上关系着发明的新颖性和创造性判断结论。