模型,是客观事物的简化表示!
历史上,每一个伟大模型的提出,都极大地推动了科学和社会的发展,比如历史上出现的3个非常有名的模型——万有引力定律、大陆漂移假说、日心说。
在人工智能领域,也有很多模型用来解决现实生活中遇到的千千万万的问题。
我们在现实生活或业务场景中遇到的问题一般可以分为6个通用问题簇:权重问题、状态问题、序列问题、表示问题、相似问题和分类问题。
那么,在遇到特定场景的特定问题时,选择什么模型,或需要对现有模型做哪些方面的修正和改良,就成了大家最感兴趣的话题。
我们只要将遇到的问题归为其中某一类,就可以寻找相关的模型来解决了。
为了快速对问题进行分类,帮助大家更好地运用模型,本文就带大家来看一下运用人工智能模型的基本步骤!
首先,我们需要参考知识图谱的相关理念,对各问题簇进行描述。
熟悉人工智能的读者一定听说过知识图谱,其被称为弥补当前深度学习困局的最佳方向。
这里希望借助知识图谱的许多术语来研究我们在现实生活中可能遇到的问题。
整体来说,知识图谱是一个“知识”的网状结构。
知识图谱主要包含3个术语:实体(Entity)、属性(Attribute)和关系(Relation)。
在知识图谱中,我们将需要描述的事物称为实体。实体可以是看得见、摸得着的事物,如汽车、房子、电视、风扇;也可以是虚拟的事物,如软件、程序、算法、方案等。
属性是实体的特征,一般来说一个实体有多个属性。
在不同的应用场景中,对同一个实体,我们整理的属性集合可能完全不同。例如,同样是统计我国的14亿个国民,实体集合是相同的,教育部门在做业绩报表时可能更关注国民的学历属性,财政部门在做业绩报表时可能更关注国民的税收属性,统计部门在做业绩报表时可能更关注国民的收入属性。
客观世界的各个事物之间有千丝万缕的联系,在知识图谱中,我们把这种联系用实体之间的关系来抽象表述。
关系(Relation)在知识图谱中一般用一个三元组(X,R,Y)表示,其中X和Y是两个实体,R是关系。
在实际实现时,R可以是布尔型,例如夫妻关系可以用是和否的一个布尔型表示;也可以是枚举型,例如用户对书籍的喜爱程度可以用1星、2星、3星、4星、5星等5个枚举值表示;还可以是实型,例如用户A和用户B的相似度;也可以是其他可能的类型。
对于一个实际的业务场景,如果要建立一个知识图谱体系,一般会包括如下步骤。
- 确定实体的类型:分析业务场景的需求,判断为满足业务需求需要多少类实体。
- 确定实体的属性:分析实际业务需求,判断每一类实体应该有多少个属性,分别是哪些属性。
- 确定属性的数据类型:这是一个纯技术问题,布尔型、整型、实型、字符串等,这个比较简单。
- 确定实体间的关系:根据业务需求分析实体之间有哪些联系,用什么形式表示成关系。
为了对实际业务场景中可能遇到的问题进行分类,我们可以建立问题的知识图谱。问题知识图谱的建立过程,与上述过程类似,也要分析问题可以表示为多少类实体,每类实体有哪些属性和关系。
使用知识图谱的方法来研究实际业务场景中可能遇到的问题,每一个问题即为知识图谱的一个实体。
对于每一个实体,我们一般关注的属性有前提假设、已有数据、待求数据等。
这几个属性的含义分别如下。
- 前提假设:现实业务场景的问题一般都有特定的前提假设。在求解问题时,我们首先要知道问题有哪些前提假设,是否会影响问题的解决效果,不同的前提假设会导致问题需要使用不同的模型来求解。
- 已有数据:在求解问题时,肯定有一些已知数据,对于解决问题的模型,我们一般把这些已知的数据叫作模型的输入。在分析问题时,首先要仔细分析这些已知数据。已知数据不同,或数据格式不同,可能会需要采用不同的模型来求解。
- 待求数据:所谓要解决某一个问题,其实就是有某个数据未知,需要想方设法求出来。对于模型,我们一般把这些待求数据叫作模型的输出。在分析问题时,对这些待求数据更要认真分析,不同的待求数据需要不同的模型来求解。
前面已经提道:使用知识图谱的方法来研究实际业务场景中可能遇到的问题,每一个问题即为知识图谱的一个实体,对实体与实体之间的关系的研究也非常重要。
一般来说,实体的关系主要包括如下3种。
- 实体之间的关系:要分析实体之间的关系,尤其是实体之间的负相关关系。之所以要研究实体之间的关系,是为了让问题解决得更彻底,避免出现解决一个问题导致其他问题又出来的情况。
- 已知数据之间的关系:一般来说,每个问题的已知数据不是一个,而是多个,我们要仔细分析这些已知数据之间的关系。对于同一个问题,不同的已知数据关系,会导致最终选择不同的求解模型,从而有不同的结果。
- 已知数据与待求数据的关系:归根到底,所谓解决问题,就是从已知数据求解未知数据的过程,即根据输入找到输出的过程。因此我们在分析问题、建立问题的知识图谱时,要认真分析已知数据和待求数据之间的关系。
前面描述的构建问题知识图谱的内容可能有点空洞,所以接下来就通过一些实例来理解一下。
例如,我们考虑如下实际业务场景:我们要处理海量的判决文书的数据,分析完成后,律师输入一个案件的案由,希望系统返回与本案件最相似的案件,这就是同案同判的实际场景。同案同判对于辩护律师、法官、法律体系科研人员都有重要意义。
我们先探讨一下前提假设的分析,用实际案例让读者体会一下前提假设分析对问题求解及模型选择的影响。为了分析和处理海量的判决文书,第一个要解决的问题是对一篇文章中的各个单词赋予权重。
读者可能马上会想到TF-IDF模型,这只是一个条件反射,因为大家在学习过程中了解最多的模型就是TF-IDF模型。对词语权重赋值最完美,最经得住实践检验,最有名气的模型就是TF-IDF模型。TF-IDF模型的前提假设是:文章中比较重要的词语在当前文档会频繁出现,在其他文档中出现的频次却不那么高。
在同案同判场景中,我们并不关心上诉人和被上诉人是谁,只对案件的作案动机、作案手段、作案过程、作案结果等感兴趣。而在实际的判决文书中,高频出现的词语一般是上诉人和被上诉人,“重要的词语会在当前文档高频出现”这个假设不成立。TF-IDF的前提假设已经失效,如果我们还坚持使用传统的TF-IDF模型求解问题,则效果势必很差。
已有数据是什么?数据是什么格式的?有多大规模?数据是否已经清洗?
这些都会影响问题的求解,影响模型的选择和运用。还是上述的同案同判的场景,如果我们从判决文书网下载了最高人民法院公布的几千万份判决文书语料,那么一般的技术路线是将这几千万份判决文书进行分类处理(也可能是聚类),用同一个类的质心来表示该类别。律师输入某个案由后,我们实际要做的是将该案由分到某个或某些类中,因此这是一个分类模型。
如果没有海量的判决文书语料,那么上述分类方法就不可行。
我们可能需要整理法律文书语料的知识图谱。在建立好知识图谱后,对于律师输入的某个案由,系统要做的工作是将该案由与知识图谱中的实体做相似度计算,返回相似度最大的实体信息。这需要使用相似模型。模型用到的特征可能包括作案性质、作案手段等内容,这些内容可能是文本形式,也可能是格式化好的数据库形式。
待求数据的变化会影响产品的形式,也会对模型的选择造成影响。还以上述同案同判的场景为例,如果已有数据已经确定,就是有几千万的判决文书数据,同案同判可能至少有两种不同形式的待求数据(输出数据)。
- 第一种形式是使用最多的,输入一个案由,系统返回与该案由最相似的若干判决文书结果。
- 第二种形式更复杂,输入一个案由,系统返回最佳的判决结果。
两种待求数据完全不同,需要使用的模型集合也会完全不同。
- 对于第一种待求数据,一般会采用向量空间模型来表示文本;使用余弦相似度或加权余弦相似度模型来计算相似度;然后返回相似度最高的若干结果即可。
- 对于第二种待求数据,向量空间模型明显失效。在向量空间模型中非常相似的两个文书,对于律师来说可能差之毫厘,谬以千里。例如如下两个判决结果,在向量空间模型中相似的可能接近或等于1,但是在律师眼里这两个判决结果简直是天壤之别。我们可能需要类似LSA等语义模型,需要知识图谱等其他表示模型。
在分析问题时,还需要分析已有数据与待求数据之间的关系。数据之间的关系不同,求解模型可能也会不同。
例如,《模型思维》一书在第2篇介绍了3种权重计算模型:TF-IDF模型、线性回归模型和PageRank模型。
假设场景是分析中国的名人排名:一个是要排出中国的“Top 500 富豪榜”;一个是要排出中国的“Top 500权威专家榜”;一个是要排出中国的“Top 500 影响力人物榜”。
计算富豪榜时的已有数据是各人的收入、股票、基金、债券、房产等;计算权威专家榜时的已有数据是各人的毕业学校、学历、论文、专利、业绩等;计算影响力人物榜是各人的人脉关系。
但是,计算富豪榜时我们会使用TF-IDF模型来做适度调整;计算权威专家榜时我们会使用线性回归模型来做适度调整;计算影响力人物榜时我们会使用PageRank模型来做适度调整。
计算富豪榜时需要考虑收入、股票、基金、债券、房产等多个维度,计算权威专家榜时需要考虑各人的毕业学校、学历、论文、专利、业绩等多个维度,为什么这些维度这么相似,却会使用不同的模型呢?这就需要我们认真分析各维度之间的差异。
收入、股票、基金、债券、房产之间是可以有统一量纲的,即美元、欧元或人民币;而毕业学校、学历、论文、专利、业绩等是没有统一量纲的,必须使用回归模型。
本文为专栏文章,来自:AI前线,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/97047.html 。