武 凌,王 浩
(安徽财经大学 管理科学与工程学院,安徽 蚌埠 233030)
一般而言,人类专家的知识包含了领域知识与运作知识.传统的专家系统大多为规则式专家系统(Rule-based Expert System),将领域知识及运作知识写在一起,总称为知识库,不作区分,致使其在知识表达、知识分享、系统效能与知识库管理等方面存在以下问题[1]:①规则的知识表达方式不具有结构性,无法对单一知识概念作详尽的描述,难以呈现知识概念间的关联架构.若要完整呈现一个领域内的知识概念结构与知识概念彼此之间的关系,仅仅使用规则是不够的,因此基于框架(Frame-based)的知识表达方法被提了出来.②过多与知识无关的规则,导致系统效能降低,并造成知识库难以维护与管理.③知识模块的可再用性低,不同系统与平台间不易达到知识分享的目的.
财务报表分析是一项含有复杂知识的非结构性工作,其知识内容涉及企业财务报表的众多会计科目以及各项衡量企业营运绩效与财务状况的财务比率.长期以来,都有研究者讨论如何构建财务报表分析专家系统,希望通过专家系统的构建,将专家的工作流程自动化,保存容易流失的专业知识及经验,提供一个财务报表分析的渠道.财务金融与会计领域方面的专家系统在20世纪80年代中期应用于财务报表分析应用方面,R.Pacheco等人[2]指出财务人员主要是应用归纳与演绎两种策略来进行分析,因此他们的系统Hybrid Intelligent System结合了类神经网络与模糊逻辑两个模块,先通过类神经网络与定义好的问题种类及其相关成因,找出问题的范畴之后,再利用模糊逻辑专家系统的规则去诊断原因并给予建议解答.此外,由N.F.Matsatsinis等人[3]所开发的FINEVA多准则决策支援系统,结合了统计多变量分析、UTASTAR多准则分析法与专家系统技术来评估一家公司的整体财务状况.该研究将财报分析的相关知识与步骤以决策树的方式呈现,最后将其转换为推导规则来构建知识库.
从知识表达、知识分享与知识库的构建等观点来看,现有的财务金融与会计专家系统多以推导规则为知识表达方式.在目前的应用上,规则方法在定义专有名词、同义词、知识概念间的关联等方面上,最大的缺限是无法建立完整的领域知识架构,所以造成推论出来的结果有限.传统的财管专家系统仍具有相当程度的改善空间.Ljubica Nedovic与Vladan Devedzic则进行了一项横断面(Cross-Section)的研究[4],根据五个个案系统探讨财管专家系统所采用的技术、工具、方法以及开发过程中所遭遇到的问题等,他们指出,目前的技术仍以规则式专家系统为主,并预期财管专家系统未来将朝向智能型系统(如元件化架构、代理人应用与嵌入式系统等)发展.
作为描述领域专家知识的知识库是整个专家系统的核心,也是一个专家系统能否成功的关键因素[5],如何将知识以最适合的方式呈现,一直是专家系统发展亟需突破的瓶颈之一.
目前最主要的知识表达方法有两种:Rulebased知识表达法和Frame-based知识表达法,目前广泛使用的专家系统中大部分都是使用规则来构建知识库.由于规则在知识表达能力上有所限制,Frame-based知识表达方式被提了出来.基本上,框架的概念是从面向对象程序设计的概念衍生而来,提供了一个有结构的知识表达方法.一直以来,也有许多研究提出以框架为主构建知识管理系统,通过面向对象的继承特性,可以方便地先规划设计一个比较一般的、普遍的领域知识架构,然后再针对较独特的知识概念做进一步的分析与扩充.
本体论指通过对概念、专门术语及相互关系的规范化描述,呈现某一特定领域的知识体系和基本内容,提供一个让人与人之间及不同的应用系统之间,可以彼此分享、沟通,进而达成共识的一个关于某个领域知识内容的媒介.本体论能提供领域术语和知识实体存储的功能,用以定义领域的知识概念,这是因为本体论具有的分类层次架构,可用于描述知识概念间的关联与层次性关系,并能够提供较丰富的知识概念内部结构描述.一些研究通过将本体引入财务管理领域[6-7],可以理清该领域的知识结构,有助于财管领域与各领域进行融合,方便知识的重用和交互.
Protégé是采用Java研究开发的知识库自由软件,其知识库最大的特色是应用本体论的观念设计,提供了Frame-based知识表达方式与一个开发推论引擎的环境,让知识工作者可以构建一个以本体论为基础的跨平台知识管理系统.将本体论及知识建模的知识开发环境与其他问题求解的软件结合,是智能型知识库系统发展与应用的关键成功因素之一[8].Protégé最大的优点在于可以借助各式各样的Plug-in扩充功能[9],Henrik Eriksson[8]设计的ProtégéPlug-in JessTab成功地整合了JESS与Protégé,可以撰写JESS程序来管理Protégé的领域本体论.
本文于Protégé知识库平台构建本体,使用JESS专家系统开发语言撰写推论规则,通过JessTab撰写JESS程序存取与操作Protégé的知识库内容.此外,由于JESS与Protégé都由Java开发,故可通过Java整合两者,使知识库与其他模块结合以构建完整的专家系统,并借助Java跨平台的特性,达到知识分享的目的.
2.1.1 财务报表分析对象
企业的短期偿债能力、长期偿债能力、经营能力与获利能力是进行财务报表分析时的四个主要方面.一套向外公布的财务报表主要包括了呈现营运成果的损益表,以及说明融资来源和投资项目的资产负债表.
2.1.2 财务比率分析
本文从我国目前财务软件报表分析系统使用的财务比率中筛选了上述四个方面的12项财务比率进行分析,如表1所示.在进行财务数据分析时财务比率被广泛采用,也就是比率分析.比率分析指就某一特定日期或期间,将财务报表上各项会计科目的相对性以百分率、比率或分数表示,使原本复杂的财务信息趋于简单化,使报表用户获得明确而清晰的信息.除此之外,还可通过各项财务比率的变动,进一步掌握企业领域中的各项关系或趋势.
表1 评价企业财务状况四个方面的12项财务比率Table 1 Twelve financial ratios of the four aspects of the evaluation of corporate financial position
如图1所示的语义网络图(Semantic Network)表达了财务报表上各项会计科目与财务比率之间的关系,图中圆角矩形表示各个与财务报表领域相关的知识概念的类别,类别之间的关联用箭头表示,每条联结上标有该联结与类别的关系名称.consists_of表示财务比率由各项会计科目组合而成,而会计科目可分为资产负债表上的资产负债科目以及损益表上的损益科目,它们都属于is_a会计科目.负债与股东权益指外部与内部资金提供者的权益,故两者的关系是同一层次,即is_sibling_of.is_adjunct_to表示损益科目只是附属于股东权益的保留盈余.此外,财务比率底下的箭头has_numerator表示某比率类别与其分子所属的会计科目类别的关系,has_denominator表示某比率类别与其分母所属的会计科目类别的关系,由于财务比率的组成含有多项会计科目,这两个箭头没有直接连接到任何一个会计科目类别,用以表示各类别之间多重的关系.
图1 财务报表领域知识内容的语义网络图Fig.1 Semantic network diagram of the domain knowledge content of financial statements
资产负债表中所有的资产负债科目都是企业拥有的经济资源与请求权,故以经济资源作为资产负债科目的根节点.分别代表外部与内部资金提供者的权益的负债及业主权益,说明了资产的来源,故资产与权益实为一体两面,两者金额必定相等,因此经济资源可分成资产与权益两个部分,资产下又可分为流动资产、长期资产与其他资产,由此可得到如图2所示的资产负债表的本体架构图.
图2 资产负债表的本体架构Fig.2 Ontology structure of the balance sheet
损益表以损益为根节点,基本上包含了收入、支出及盈余三部分,这三个部分作为损益的子节点,而收入减去支出就等于盈余,图3所示为损益表的本体架构图.
图3 损益表的本体架构Fig.3 The body architecture of the profit and loss account
12项财务比率以财务比率作为根节点,根据四个方面(短期偿债能力、长期偿债能力、经营能力与获利能力)构建,图4所示为财务比率的本体架构图.
图4 财务比率的本体架构Fig.4 The body architecture of the financial Ratios
Protégé平台上建立的本体有三个类:经济资源及其请求权、损益及财务比率.为了呈现每一个知识概念可能有的同义名称,每一类根据自定的Metaclass来构建,这样便可自行创造符合需求的样板,来描述领域知识概念类别.在建立类的属性时根据资产与负债的特性来建立,例如有form(形体,区分某类别资金为有形或无形)、liquidity(流动性,区分某类别资金为流动或非流动)、property(属性,区分某类别资金为金融性或营运性)等.每项财务比率为一个类,而每个比率都有两个属性,分别为has_numerator(有分子)与has_denominator(有分母).Protégé的知识模块提供多种的Value Type来设定Slot,其中Type:Instance将两个有相互关联的类联结在一起,只要先将相关的知识概念类构建好,便可以根据该Slot的Allowed Classes面板去联结与某项财务比率相关的会计科目,用以表示该项比率的组成.例如衡量企业经营能力的固定资产周转率,其属性has_numerator联结到损益科目营业收入,而属性has_denominator则会与资产负债科目的固定资产联结,这样便可清楚表达出固定资产周转率由营业收入除以固定资产.
当财务比率类和会计科目的关系建好之后,还需建立评定比率数值好坏的标准,本文将各项财务比率好坏的评估标准定为五个等级:5-Excellent(极好),4-Good(好),3-Average(一般),2-Acceptable(尚可),1-Unsatisfactory(差),并以Slot建立评估标准于每个方面所属的财务比率类中,以后系统将依据计算出来的财务比率数值,与评估标准值进行比对,以判别企业财务状况的好坏,评估值的范围定义在五个等级Slot的Facet:Minimum与Maximum内.
大部分专家系统的问题求解方法称为启发式分类,主要分为三个阶段:①抽象化;②启发式比对;③进一步地分析.这种方法已普遍应用于各种不同的决策支援系统.本文的财务报表分析专家系统的问题求解方法也采用这种模型来构建,例如一家企业衡量其短期偿债能力的好坏,可根据流动比率来分析:当“流动比率为70%”时,可经过第一阶段抽象化成“低百分比”,此“低百分比”经第二阶段进行比对后,可得到“流动比率极低,等级为1”,再经过进一步地分析,可得到“短期偿债能力极差”.
本文根据上述四个方面建立人类专家进行财务报表分析时的策略,其策略流程图如图5所示,对每一方面相关的财务比率进行分析后,给定一个评估等级,最后综合四个方面按表2的企业财务状况评价标准来评判该企业的整体财务状况.
图5 财务报表分析策略流程图Fig.5 Flowchart of financial statement analysis strategy
表2 企业财务状况评价标准Table 2 The evaluation criteria of the financial situation of enterprises
续表2
领域本体与运作知识沟通的过程分为两个阶段:在Java应用程序之中嵌入JESS,以及应用JessTab整合Protégé与JESS.
整个JESS推论引擎的核心为jess.Rete类,jess.Rete类的Instance也就是一个JESS推论引擎的Instance,jess.Rete为Jess Library提供了一个中心存取点.在Java程序中建立一个jess.Rete对象时,代码如下:
import jess.*;
…
Rete engine=new Rete();
宣告一个JESS推论引擎于Java程序内,然后就可以在Java应用程序中撰写JESS推论规则了.控制JESS的操作时最常用的方法是executeCommand方法,executeCommand以字符串作为自变量,而字符串可以是JESS类别的各种指令.
本阶段主要是将JessTab的API引入至Java应用程序之中,利用其函数与JESS推论引擎结合、存取本体论的知识内容,通过规则获取自用户输入的财务数值,供推论规则进行运算判断.分为四个步骤:
3.2.1 本体论的导入
Protégé-JESS的整合最主要是靠 Mapping机制的运作,将本体论知识概念类别的实例映射至JESS,成为专家系统事实库中的一部分,这样便能撰写JESS规则去存取领域本体论的数据并根据其关联架构进行推论.
3.2.2 外部数据的获取
为了进行财务报表分析,专家系统必须先要求用户输入相关的财务数据,把数据存入系统中,转成事实库中的事实后再作运算.从Java界面输入的都是字符串型数据,故先经过Java本身提供的方法转换成与Protégé类型一致的数据类型,然后使用make-instance函数与slot-set函数产生Instance,同时设定Slot属性值.3.2.3 撰写计算财务比率的规则
当数据输入完毕,用户可通过用户界面选择欲评比的功能,这时系统再次使用Mapping机制,将含有财报数据的事实信息转进JESS引擎内.以流动比率的计算为例,流动比率=流动资产/流动负债,在规则的前半部(LHS)设定两个事实的Object Template,分别代表流动资产(Current Assets)与流动负债(Current Liabilities).当系统运作时,JESS推论引擎会从事实库中搜寻符合条件的数据,也就是欲计算某企业的某一年的财务报表数据,获取其流动资产与流动负债的金额存入变量?m1与?m2,接着规则的后半部(RHS)进行运算,将流动资产除以流动负债,并转换成百分比,通过Store方法(store symbol value),把JESS计算出来的结果储存在自定义的Symbol中.
3.2.4 撰写评估财务状况的规则
撰写可以根据领域本体论中定义的评估标准值来判断财务比率好坏的规则,将各项财务比率的评估值范围建立在所属的Slot中,分别设立五个Slot代表五个评估等级.将评估标准值建在本体论的好处,在于日后若因外在环境等因素导致标准范围变动,可直接在本体论修改,而无须更改系统内部的规则.当系统要判别某企业的财务比率数值所代表的等级时,通过facet-get:(facetget<class-name> <slot-name> <facetname>)取得Slot的Facet值,其中<class-name>为存取的类名称,<slot-name>即该类的某个特定的Slot,支持的Facets 有:NAME,:DOCUMENTATION, :SLOT-MAXIMUMCARDINALITY, :SLOT-MINIMUMCARDINALITY等.
这样针对短期偿债能力、长期偿债能力、经营能力与获利能力四个方面的12项财务比率,一一撰写判断规则,接着根据每个方面的财务比率,制定样板(deftemplate),撰写评判各个营运方面好坏的推论规则.
本文使用Java开发财务报表分析专家系统,整合Protégé平台上的领域本体论以及应用JESS撰写的策略规则,并设计了友好的用户界面,系统架构如图6所示.
用户通过界面输入相关的财务报表数据,选择欲进行评比的功能后,JESS推论引擎根据知识库内的规则进行推论,通过本体论对领域知识的完整描述,系统不但能告知用户企业的财务状况,更能进一步分析出企业哪个营运方面可能有潜在的危机,并提供解释机制提出建议与解决方案,最后将结果交由用户界面显示.此外,通过知识库维护界面,财务专家或知识工程师可以更改本体论内财务比率的评估等级范围数值,而无需更改系统内部的规则.系统界面分为:①系统主界面,让用户选取欲评比的方面,并将分析后的结果与建议显示出来;②数据输入界面,以报表的形式呈现,用户在此输入公司的财务数据后,便可开始使用系统进行评估;③知识库维护界面,让财务专家或知识工程师更改随时间而变动的财务比率评估标准值.
图6 财务报表分析专家系统架构Fig.6 Architecture of financial statement analysis expert system
系统评估是验证专家系统的一项重要工作,通过评估可测试系统分析出来的企业财务状况是否与人类专家的实际评估相符.
A公司某年的财务报表如表3所示.
表3 A公司某年财务报表Table 3 Financial statements of company A in one year元
将数据输入系统后,分析结果如下:流动比率为498 96%(等级为5),净营运周期为-6.21天(等级为5),短期偿债能力极好(等级为5);自有资本率为85.82%(等级为5),利息保障倍数为377 479.28倍(等级为5),长期资金占固定资产比率为3 437.54%(等级为5),长期偿债能力极好(等级为5);总资产周转率为0.91次(等级为4),应收账款周转率为10.27次(等级为4),存货周转率为8.87次(等级为4),固定资产周转率为36.30次(等级为5),经营能力好(等级为4);税后净利率为43.41%(等级为5),总资产报酬率为39.35%(等级为5),股东权益报酬率为45.85%(等级为5),获利能力极好(等级为5),因此,最后判别企业整体财务状况为极好,等级为5,表示A公司这一年的表现优良,营运绩效良好.
B公司某年的财务报表如表4所示.
表4 B公司某年财务报表Table 4 Financial statements of company B in one year元
经系统诊断,流动比率为171.08%(等级为4),净营运周期为433.46天(等级为1),短期偿债能力一般(等级为3);自有资本率为65.13%(等级为4),利息保障倍数为-23.96倍(等级为1),长期资金占固定资产比率为218.78%(等级为5),长期偿债能力一般(等级为3);总资产周转率为0.06次(等级为1),应收账款周转率为0.91次(等级为1),存货周转率为1.43次(等级为1),固定资产周转率为0.14次(等级为1),经营能力差(评比等级为1);税后净利率为-10.88%(等级为1),总资产报酬率为-0.62%(等级为1),股东权益报酬率为-0.94%(等级为1),获利能力差(等级为1).因此,最后判别企业整体财务状况为尚可,等级为2,显示B公司近年来的发展遭遇困境,各营运构方面表现令人失望,其中经营能力与获利能力极需改善.
根据上述系统分析结果与财务专家讨论后,判断出来的企业财务状况基本上和专家判定的结果相符,除了少数数据计算结果小有差异,但不影响等级的评判与建议的给定.
本文从知识库设计的角度尽力克服过去专家系统在知识库设计方面的限制,将专家系统知识库分成领域知识及运作知识的设计,并采用本体论建模领域知识.本专家系统的财务报表分析结果与人类专家的实际评估大致相符,可以辅助用户进行决策.由于设计的领域本体是根据专家系统的功能与用途设计的,故仅包含财务报表分析领域一部分的知识内容,未来可将其扩展,建立一般公认会计原则、收入确认原则等准则于本体论中,以构建出较完整的领域本体论供专家系统使用.此外,可进一步将语意的概念加入到本体论之中,使其知识内容能够满足不同专家的认知和需求.
[1] Lin Yao Tsung,Tseng S S,Tsai Chi Feng.Design and Implementation of New Object-oriented Rule Base Management System [J]. Expert Systems with Applications,2003,25(3):369-385.
[2] Pacheco R,Martins A,Barcia R M,et al.A Hybrid Intelligent System Applied to Financial Statement Analysis[C].Fuzzy Systems,Proceedings of the Fifth IEEE International Conference,1996:1007-1012.
[3] Matsatsinis N F,Doumpos M,Zopounidis C.Knowledge Acquisition and Representation for Expert Systems in the Field of Financial Analysis[J].Expert Systems with Applications,1997,12(2):247-262.
[4] Nedovic L,Devedzic V.Expert Systems in Finance—A Cross-section of the Field[J].Expert Systems with Applications,2002,23:49-66.
[5] Lee S, O’Keefe R M. The Effect of Knowledge Representation Schemes on Maintainability of Knowledge-Based Systems[J].IEEE Transactions on Knowledge and Data Engineering,1996,8(1):173-178.
[6] 邵建利,刘仲英.企业会计核算领域中的信息本体研究[J].计算机工程与应用,2005,41(4):210-212.(Shao Jianli,Liu Zhongying.A Study on Information Ontology in Enterprises’Accounting Domain[J].Computer Engineering and Applications,2005,41(4):210-212.)
[7] 官冰,党德鹏.财务管理领域本体的构建[J].计算机应用与软件,2011,28(2):10-13.(Guan Bing,Dang Depeng.Constructing Domain Ontology In Financial Management[J].Computer Applications and Software,2011,28(2):10-13.)
[8] Eriksson H.Using JessTab to Integrate Protégéand Jess[J].IEEE Intelligent Systems,2003,18(2):43-50.
[9] Knublauch H.An AI Tool for the Real World—Knowledge Modeling with Protégé[EB/OL].(2006-3-20).http:∥www. javaworld. com/javaworld/jw-06-2003/jw-0620-protege.html.