全流程攻略:如何构建人工智能产品?

2 评论 14208 浏览 73 收藏 33 分钟

人工智能产品的构建过程分为三个阶段,每个阶段都有着不同的思考方式。从挖掘行业属性到模型的建立与调优,作者对每个阶段需要注意的问题进行了分析说明,供大家一起参考学习。

在人工智能产品构建过程分为很多阶段,从最顶层的商业思考到下层的模型研发都有着不同的思考方式。

第一阶段是商业模式设计,任何产品早期都会对商业模式进行细致的考虑,商业模式的设计牵扯到方方面面,我们需要重点突出产品的行业属性与产业价值。

第二阶段是数据洞察与业务转化,我们需要去收集有意义的数据并将转化为模型的输入。

第三阶段是产品建模与评估,需要前两阶段的准备对产品模型进行开发与测试。

(1)行业洞察:首先对行业需要有深刻的理解与洞察。

(2)价值分析:针对于产品具体分析给用户带来什么价值,什么样的价值能够使用户认可。需要以用户的视角来分析产品的价值所在。

(3)数据分析:针对行业的特点分析数据应如何整理,如何利用,如何构成产品。

(4)资源评估:评估是否有足够的数据与人员支持人工智能产品的开发。

(5)资源收集:通过各种渠道购买、收集数据,以及各类人员的资源分配。

(6)设计研发方案:根据以上结论设计人工智能产品的模型搭建与评估方案。

一、深度挖掘行业,探究产品价值

1. 深刻挖掘行业属性

当前产业互联网恰逢其时,AI技术也更多的应用于行业之中。我们开发人工智能产品首要问题就是需要深刻理解行业痛点,做出有价值的产品。如何了解一个行业也有一些实用的方法可以借鉴。

构建产品之初首先需要充分了解这个行业,而且也要充分了解自己。了解自己主要从自身的所学专业、兴趣程度、个人性格等方面综合考量。当今社会所做的行业与自身专业不匹配的状况时有发生,只有充分认识自我并且充分认知行业,才能做出成熟的判定。我们先不谈对自己的了解,首先给出如何快速认识一个行业的切入路径。

第一步:行业认知——行业分解认知、行业组合认知

第二步:行业分析——业务流程、产业链、商业模式

第三步:行业常识——业内典型企业与领导者

对于行业切入路径仍然需要作一些说明,这个方法只是一个初步了解行业的路径。由于大家教育背景不同专业不同,各个行业壁垒有有高有底,并不要指望通过某个方法就能够立刻深入到某个行业中,想真正深入某个行业还需要系统的学习行业知识,并真正在行业中沉淀一段时间,才能够深入体会。

行业认知是切入行业的第一步,在行业认知的过程中分为2个步骤:行业分解认知与行业组合认知。

(1)行业分解认知

研究某个行业不能囫囵吞枣,首先要对行业进行分解。所谓行业分解认知是将行业细分成一个个子领域,针对这些子领域再进行一一分析的过程。对于一个未细分的行业是无法拿来研究的,只有将其分解才能各个击破。用大家熟悉的互联网产品经理来举例,现在产品经理行业也产生了很多子领域,包括数据产品经理、后台产品经理、人工智能产品经理等。尽管这些产品经理在职能方面可能有所交叉,但是分解的越细代表对产品经理这个行业了解的越深入。

(2)行业组合认知

在行业分解认知之后,我们已经对行业有了一个初步的了解,之后我们需要通过行业组合认知对行业进行综合分析。行业组合认知是指将之前行业分解得到的子领域,统一回归到整体行业的框架下思考,思考的重点是每个子领域对整体行业的贡献,以及研究各个子领域在产业中的关系与地位。因此,分析好每个细分子领域对行业整体的贡献,才能更加透彻地审视全局。

2. 探究产品价值

无论何种产品都必须要体现价值才能赢得商业,AI产品当然更是如此。对于一个成功的AI产品,并不是重视其使用了多么先进的AI技术,而是通过技术能否真正得到行业价值。

例如,在过构建工业知识图谱时,如果只强调知识图谱可以将不同的知识连接起来,则不能突出其价值。工业知识图谱真正的价值根据不同项目,概括为在生产产生偏差时,快速寻找到相关原因。或将所有工序文件相关联,确保生产过程的合规性检查。产品的价值必须符合行业属性,并使用户有清晰的辨识度。

针对产业互联网而言,产品价值主要体现以下2个方面。

(1)效率价值

人工智能技术应用于产业,最重要的一点就是提升产业效率。人工智能技术是对人的模仿技术,人工智能产品可以提供某个工序的工作效率,降低人员的参与程度,降低人员成本,提高工作准确率。

(2)创新价值

在效率产生大幅度提升时,则意味着创新。但是创新并不是仅仅是通过效率提升而产生的。随着人工智能技术的发展,大规模逻辑网络的形成,知识图谱的大规模应用,已经能够运用此类技术构建新知识新发现。

人工智能产品的研发,首先可以先以实现效率价值为目标,在逐步实现创新价值。需要以行业诉求为最终的价值判别依据。

二、数据洞察与处理

1. 需求与数据

当今是一个数据爆炸的时代,数据积累的规模远远超过了之前人类社会数据积累规模的总和。在大数据这个概念出现之前,计算机并不能很好的解决需要人去做判别的一些问题。如今人工智能利用用大量的数据作导向,能够使机器完成一些之前机器所不能完成的功能,使之前无法满足的需求得以满足。人工智能技术离不开数据,数据与需求之间首先应该搭建起一个桥梁。

(1)从数据到需求

我们首先将经历聚焦到数据上来,认真分析这些积累下来的数据都有哪些?思考这些数据都能够做些什么?哪些与我们的业务关联性高,哪些关联性低?例如一个外贸公司积累了之前5年的销售流水数据,那我们可以考虑用这些数据推测第六年的销售流水。从数据到需求的阶段,我们只需要考虑数据能够做什么,暂时无需考虑数据的产出是否与业务相关。

(2)从需求到数据

当我们完成对数据的聚焦后,开始对需求进行聚焦。对需求的聚焦需要分析业务,重点分析的内容是满足这些需求都需要哪些数据来支撑。满足一个业务需求,可能需要很多数据支持,这些数据有些已经被积累,有些则没有被积累。

例如一个外贸公司需要预测下一年的销售额,需要前10年的公司销售额,除此之外还需要上一年股市大盘的走势数据,同时也需要公司前5年的用户数据。从需求到数据的过程是为了使公司清楚针对某一个特定需求,哪些数据已经保留,哪些数据需要外购,哪些数据在以后的公司发展中需要保留下来。

首先从数据到需求,再由需求到数据。数据与需求是一个相互渐进、反复循环的过程,如图所示。从数据到需求是一个数据价值提升的过程,这个过程首先数据赋予了价值;从需求到数据是一个数据升级的过程,更多围绕需求的数据被挖掘,也更加明确了数据与需求的联系。

数据的来源主要有2种方式,可以自己采集也可以购买。采集来的大多是用户与业务数据,这部分数据可以用来完善产品或者制作数据分析报告;购买的标注数据可以作为训练集,用于构建模型。

对于非监督学习可以使用未标注过的训练集进行训练,不过在实际真正的产品构建中,大家应尽量少的使用非监督学习。非监督学习学习效率较低,无法快速得到较好的模型效果,产品也就无法落地实用。非监督学习可以更多的应用于科研或者课题研究方面。

2. 数据标注

数据质量是影响人工智能产品准确性的关键所在,一个具有高质量标注的数据集对于模型的提升效果,远远高于算法优化带来的效果。数据标注是通过人工或半自动的方式,将原始数据打上相应的标签,打好标签的原始数据称为标注数据或者训练集数据。

数据标注过程有2个意义:其一,使人类经验蕴含于标注数据之中;其二,使标注数据信息能够符合机器的读取方式。标注的数据的难度越高价格越昂贵,以此训练出的模型价值就越高。

数据标注的流程通常分为五个步骤。

(1)业务分析

产品经理与算法工程师要对业务进行理解,明确原始数据的意义与数据标注的价值。业务理解是所有产品工作的基础。

(2)确定原始数据与标注结果

产品经理需要与算法工程师共同确认原始数据及数据标准结果,并确定标注工具。数据标注的结果必须得到算法工程师确认,确保后续建模过程的顺利开展。

(3)撰写标注教程

在确认原始数据与标注结果后,产品经理需要撰写标注教程。标注教程就好像软件说明书,需要将标注过程按顺序一一列出。标注教程包含4个要素:标注软件(平台)、标注要求、标注对象、标注流程。撰写的标注教程同样需要得到算法工程师确认。

(4)数据标注

该过程为数据标注过程,产品经理需要不定时进行标注结果抽查。

(5)标注结果验收

产品经理与算法工程师共同对标注结果进行质量验收,验收不合格需要搞清异常原因并重新标注。对于有行业壁垒的数据,标准准确性需要行业专家进行判断。

针对不同的数据类型有不同的标注工具。图像类标注可以使用LabelMe,文本标注可以使用Brat或DeepDive等,当然还有很多后期开发的标注平台可以使用。

三、 模型建立与调优

早期的人工智能系统,被称为专家系统。专家系统通过学习或总结人类经验获得智能,并可以恰当应用这些经验来解决实际问题。如今随着大数据的发展,新生事物不断增加,各种知识层出不穷。很多领域的经验已经无法总结成系统化的专家经验,而这些经验被包含在大量产生的数据之中,所以说数据是人工智能发展的基础。

由此可见,建模的根本在于寻找人类经验。但根据寻找人类经验的方式不同,可以分为知识建模、非知识建模、混合建模3种。

知识建模属于早期专家系统的建模方法,重点在于如何将总结好的知识转化为机器可以识别、储存、运用的形式。知识建模适用于数据难以收集,或业务逻辑相对容易总结的问题。

非知识建模不需要提取人类经验,甚至不需要模型具有可解释性,通过数据特征得到对应的模型。非知识建模适用于业务逻辑难以总结,而业务数据容易获得的情况。

混合建模结合了知识建模与非知识建模2种方式,根据特定问题进行建模。

建模过程是一个系统而复杂的工程,需要根据业务类型、数据情况等多方面情况才能够完成。据笔者了解,当前很多人工智能工作者只重视非知识建模的方式,认为知识建模过时了,不适用于当今人工智能的发展。这样的认识是偏颇的,必须根据实际问题将不同建模方式结合起来才能达到较好效果。

1. 知识建模

知识建模源于人工智能起源的一大学派,该学派称为符号主义。符号主义认为人工智能源于数理逻辑,也可以说以一种高级的推理过程。从符号主义的观点来看,知识是信息的一种形式,知识逻辑体系是构成智能的基础。

人工智能的核心在于知识表示、知识推理、知识运用,知识可用符号进行描述,认知是符号的处理过程,推理是基于知识与搜索对问题的求解过程。推理过程同样可以用符号化的语言来描述,也就构成了我们认知的模型。符号主义认为可以建立起人类智能与机器智能的统一理论体系。

在知识建模中,有两个重要问题。其一是知识的符号表示,其二是推理方法。知识的符号表示是将知识转化为机器所能识别、储存、运用的数据化形式。推理方法是机器运用知识解决实际问题的能力。

(1)知识的符号表示

常见的知识符号表示有方法有谓词逻辑法、状态空间法、问题规约法等。由于知识建模构建的是一种推断逻辑,所以谓词逻辑法使用较为普遍。

谓词是用来描述或判定客体性质、特征或者客体之间关系的词项。例句“小明是我的朋友”中,“是”就是谓词,该句中只有“小明”一个客体,这样的谓词我们称为一阶谓词;例句“5大于4”中,“大于”就是谓词,该句中“大于”涉及到两个客体,这样的谓词称为二阶谓词。

使用谓词表示知识有两个步骤:

①确定每个谓词的个体以及确切含义。

②利用逻辑符号连接谓词,对知识进行表达。

[例]利用谓词逻辑法表述以下语句

人人学雷锋

①确定每个谓词的个体以及确切含义。

个体:人

谓词:学、是(“人人”隐含了“是人”的客观事实)

定义谓词:

people(x):x是人

learn(x,y):x学y

②利用逻辑符号连接谓词,对知识进行表达。

(表示对于任意)

(2)推理方法

推理方法是研究机器如何模拟人类进行知识选择,并运用这些知识分析和解决实际问题的逻辑方法。我们也可以理解为推理是依据一定的原则,从已有事实推出结论的过程。推理系统主要由谓词逻辑组成的知识库和控制推理过程的机构组成。

常用的推理方法有3种:正向推理、逆向推理、双向推理。

正向推理是由条件出发,向结论方向进行的推理过程。它以当前的事实出发,根据输入的推理规则,向结论进行推理。例如我们知道发烧、咽痛、关节酸痛具有较高概率能够推理出的结论是感冒。这种推理方式就是典型的正向推理。正向推理是早期专家系统解决问题的一个重要特征,即专家在解决问题时,首先是发现问题提供了什么信息,根据提供的信息再借助推理规则推导出新的信息,从而加深对问题的了解。

逆向推理是指从问题的目标状态出发,按照目标组成的逻辑顺序逐级向初始状态递归的问题解决策略。简单来讲,当一件事结果是正确的或客观的,那么可以根据这一结果进行反向推理从而得到原因。当我们已经知道患者得了感冒,可以推想他可能是受凉、感染流感病毒等多个原因导致感冒,这就是逆向推理的思维模式。

双向推理结合正向推理与逆向推理,它是构成推理网络的理论基础。

知识建模是早期人工智能技术的代表,由知识建模而构建的专家系统为医学、教育、工业领域做出巨大贡献。知识建模的优点可以总结为以下3个方面:

  1. 知识高效表达:通过知识的符合表示方法,可以高效准确地表达难以用数学方法描述的复杂、定性的人类经验知识。
  2. 灵活性:知识的表达相对独立,方便进行知识的修改和扩充,系统也可以快速获得新的规则。
  3. 可解释性:知识建模最大的特点是可解释性。所有的推理逻辑与公式,都可以经过严谨的数理证明进行解释。这一点与当前非常流行的神经网络模型相比,具有非常大的优势。

任何建模方法同样有缺点,知识建模的缺点同样可以总结为以下3个方面:

  1. 知识获取的困难:专家的经验知识加以提取、整理、转换成各种符合表示,还要考虑知识之间的相容性等问题,这本身就是一项困难的工作。
  2. 高复杂度问题:对于复杂的知识体系,知识之间的关系以及知识库中的节点会变得异常复杂。推理中对知识的搜索和运用分支将呈几何级数的增加。
  3. 容错能力差:由于知识推理具有非常严密推理条件与推理逻辑,知识的不完备可能会导致推理出现困难,从而降低了系统的精度。同时,如果出现错误的规则,可能导致整个推理的错误,并且这种错误不易更正。

2. 非知识建模

非知识建模是当前大数据时代的主流建模方式。由于数据中蕴含着人的知识或经验,但是建模过程并不需要将这种知识提取出来,而是直接通过获取大量数据去训练模型。非知识建模避免了知识提取的过程,也回避了建模人员对专业知识的理解问题。

由于非知识建模中不涉及到对知识的提取,所以非知识建模中最重要是数据准备工作。这些数据准备是为了构成模型的训练集,我们需要准备存储格式统一、真实性高、标注明确合规的数据作为模型的训练集。

在准备好训练集后,我们可以根据具体业务进行模型的选型,根据选择模型的特点对训练数据进行微调,以满足不同模型的训练要求。对于数据特征不明显的数据集,我们也可以通过特征工程来提取数据特征,使训练出的模型更加高效准确。模型训练的过程如下图所示。

在进行模型训练时,我们需要通过某个学习算法,得到我们的目标模型。模型是否能够得到较好效果,主要在于训练数据的质量,所以数据才是整个算法构建的核心要素。非知识建模主要就是通过数据使机器自动提取某些内在的业务特征,从而达到模型效果。模型的选择种类也根据不同的业务,以及不同算法工程师的偏好灵活选择。

3. 模型的评估:分类任务评价

分类最常见的机器学习任务,主要目的是数据划归为不同类别。分类问题包括二分类与多分类问题。识别垃圾邮件或判定是否为潜在用户就是典型的二分类问题,用户画像、辅助诊断系统等属于多分类问题。分类问题的评估指标主要有准确率、损失函数、精准率-召回率、曲线下面积(AUC)等。

(1)准确率

准确率是一个非常直接的评价指标,指的是分类正确的个数占总体个数的比。但是准确率并不能够公正的评价一个模型。主要原因有2个:

第一原因是两种分类重要程度不同。例如在癌症诊断中,确诊癌症患者中未患有癌症的情况(假阳性)与确诊未患有癌症患者中患癌的情况(假阴性),这两种情况对于患者的意义截然不同;

第二个原因是数据分布不均,如果两个分类个数相差过大,占有大样本的一方会主导准确率的计算。

(2)平均准确率

为了处理每个类别样本数量不一致的情况,使用平均准确率来进行度量。平均准确率将多个分类的准确率取平均值来对模型进行评价。平均准确率是对整体模型进行的评价,而并不等于某一个分类的准确率。在某个类别数量很少时,会造成该类别准确率的方差过大,使准确率可靠性降低。

(3)对数损失函数(Log-loss)

对数损失函数很像Logistic回归的损失评价函数,这些评价标准都基于概率估计。对数损失通过惩罚错误的分类,实现对分类器的准确度(Accuracy)的评价。损失函数最小意味着分类器具有最佳的性质,分类器提供的是输入样本所属类别的概率值。对于多分类问题对数损失函数表示如公式(3.5.1)所示。

(4)精确率-召回率(Precision-Recall)

精确率-召回率其实是两个评价指标,但是它们经常同时使用。精确率是指分类器分类正确的正样本的个数占该分类器所有分类为正样本个数的比例。召回率是指分类器分类正确的正样本个数占所有的正样本个数的比例。具体解释在后面混淆矩阵中详细介绍。

(5)AUC (Area under the Curve, AUC)

AUC的意义为曲线下的面积,所描述的是ROC曲线(Receiver OperatingCharacteristic, ROC)。首先我们需要了解ROC曲线是如何绘制的。

ROC曲线的x与y轴的含义:

  • 横轴:负正类率(False Postive Rate, FPR),分类器分类错误的负样本个数占总负样本个数的比例。
  • 纵轴:真正类率(True Postive Rate, TPR),分类器分类正确的正样本个数占总正样本个数的比例。

对于设定一个阈值,就可以对应算出一组(FPR,TPR)从而在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时对应坐标点为(0,0),阈值最小时对应坐标点(1,1)。

以下面一个例子解释ROC曲线绘制过程,如图所示数据。

如图有20个样本依次编号,属性是样本的类别,p代表正样本,n代表负样本,得分代表样本被判定为正样本的概率。在绘制ROC曲线时,每给定一个阈值计算一次(FPR,TPR)点。对于二分类器,我们可以设定阈值,认为样本中得分大于等于这个阈值为正样本。由于有20个样本,阈值可以按照20个样本的得分依次进行选取。

假设阈值1=0.9,正样本数量为10个,负样本数量为10个。

即认为大于等于0.9的样本为正,其余为负样本。根据图3-36所示数据与FTR、TPR定义可知

FTR=0(未出现误判的样本)

TPR=0.1

我们得到第一个点为(0,0.1)。

假设阈值3=0.7,正样本数量为10个,负样本数量为10个。

即认为大于等于0.7的样本为正,其余为负样本。根据图3-36所示数据与FTR、TPR定义可知

FTR=0.1(有一个负样本被判定为正样本)

TPR=0.2

我们得到第3个点为(0.1,0.2)。

如此通过设定阈值可以得到20个(FPR,TPR)点,从而绘制ROC曲线如图3-36所示。可见最好的分类器是FPR=0%,TPR=100%,当然这是一种极端情况。如果同时比较多个分类器性能,通过ROC曲线较难实现,我们便选取了曲线下面积(AUC)作为指标进行度量。分类器效果越好,AUC面积越大。大多数情况AUC值在0.5-1之间。

使用AUC对分类器进行评价可以避免样本不均衡的影响。在真实情况下样本不均衡的现象经常出现,有时正样本个数远远大于负样本个数,或正负样本个数可能随时间而改变,在使用AUC进行评价时可以有效避免。

(6)混淆矩阵(Confusion Matrix)

混淆矩阵可以关联上述的所有概念,也作为分类结果评价的常用手段。混淆矩阵是一个分类的正误表,对于二分类问题则是一个2*2矩阵,对于多分类问题是一个n*n矩阵,以二分类问题为例,如表所示。

表-二分类问题的混淆矩阵

真正(True Positive, TP):分类正确的正样本。即本来是正样本,分类为正样本。
从混淆矩阵中直接提取的成为一级指标,具体含义如下:

假负(False Negative, FN):分类错误的正样本。即本来是正样本,分类为负样本。

假正(False Positive, FP):分类错误的负样本。即本来是负样本,分类为正样本。

真负(True Negative, TN):分类正确的负样本。即本来是负样本,分类为负样本。

通过明确混淆矩阵的一级指标的含义,可以定义二级指标,如表3-3所示。

混淆矩阵可以将诸多概念加以串联,在模型评价中具有重要地位。除此之外,混淆矩阵在试验评价等诸多领域还有广泛的用途。

最后把封面的人工智能产品经理流程图配上,具体的内容将在下一篇文章说明。

上述就是一个人工智能产品的整体构建流程,如果还希望能够了解的更详细,可以关注我的新书《手把手构建人工智能产品》,书中会有更详细AI产品经理项目方案。

#专栏作家#

白白,公众号:白白说话(xiaob-talk)。人人都是产品经理专栏作家,医药行业资深产品专家,负责人工智能行业类产品综合架构与技术开发。在行业云产品架构,药物设计AI辅助、医疗知识图谱等领域有深入研究。

本文原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 您好,想要了解下,如何对人工智能类产品设定阶段性的目标以及时间节点呢?目前产品迭代过程中碰到的问题是,算法研发人员很难给出一个在某个时间点达到什么样的衡量指标,麻烦帮忙解答下

    来自北京 回复
  2. 欢迎关注我的《手把手构建人工智能产品》,里面有更详细的AI产品攻略。

    来自北京 回复