电力信息运维知识模型构建方法与流程

文档序号:16068483发布日期:2018-11-24 12:54阅读:286来源:国知局

本发明属于电力运维管理领域,尤其涉及一种电力信息运维知识模型构建方法。

背景技术

当前的电力运维客服系统每天都在面临着来自各方的海量的客户的心声,企业和个人用户通过微信公众号、微博、掌上电力app、95598智能互动网站等各种渠道进行业务咨询、故障保修、投诉、举报、建议、意见及表扬、电网信息、政策订阅等,对服务提供及消费提出了更高的要求,需要及时、准确洞察客户的心声,以最短时间、以最好的服务满足客户的需求;同时客户要求更友好、方便、快捷的使用我们所提供的服务。为此,需要通过不断提升信息支撑服务,改进客户服务体系来提高客户服务质量和效率,然而在互联网发展的时代,传统的呼叫中心客服系统需要大量的人力和物力。

国网信通部于2015年下达了关于开展信息系统运行管理水平提升活动,提出了切实提升运行管理水平的要求,信息系统需按照“两级调度、三层检修、一体化运行、统一的客户服务和信息技术三线支持中心”模式,开展信息运维工作,由此积累了大量的运维工单数据。随着大众对电力生产可靠性要求的不断提高,国网公司对供电服务质量也有较高的要求标准。如何不断提高电力信息运维人员的业务素质,在生产中如何快速、准确的处理信息系统运维问题,在日常生产中如何快速查找定位缺陷防范于未然,是电力生产技术和管理者的诉求。

面向电力行业构建公共知识模型存在很多的技术难点,如运维知识的分析较弱,数据资源价值体现整体停留在粗放型阶段,没有将数据资源有效转化为知识资产,以及没有形成知识良性循环、对业务需求的支撑能力和对管理变革的推动能力较弱等问题,这些都阻碍了电力运维知识模型的组织与构建。尤其是公司的一单两票系统存在大量的可利用数据,可被有效挖掘和利用,为构建运检修知识模型提供基础数据及理论依据。



技术实现要素:

针对现有技术存在的问题和空白,本发明采用以下技术方案:

一种电力信息运维知识模型构建方法,其特征在于,包括以下步骤:

步骤1:对电力系统工单数据进行工单采集,并转换为文本格式,采用七步法进行本体构建,根据文本含义属性划分为多个文本域;

步骤2:以工单为单位,对工单文本数据进行分词处理;

步骤3:对文本域进行分组;

步骤4:对各文本域分别进行域分词处理,采用基于字符串匹配的分词方法分别对各分组的内容进行词汇切分;

步骤5:根据无效词汇表进行无效词汇过滤,过滤掉无效词汇和敏感词汇;

步骤6:将有效词汇与知识库中词汇表进行比对,将新词汇加入到知识库的词汇列表,对己有词汇进行累加其出现的频次;

步骤7:抽取加入词汇的实体关系:通过预先定义实体关系类型及基于实体的特征,抽取实体关系,并根据实体关系的相似度进行分类;

步骤8:将实体与实体关系的分类导入图数据库;

步骤9:在图数据库中采用tensorflow构建lstm结构的知识模型。

优选地,步骤2和步骤4中,分词采用中科院的ictclas系统;

将分词后的所有词组成字符表d,d={d1,d2,...,dn},其中di表示一个词,i∈[1,n]。将每个词e的词特征向量表示为v={v1,v2,...,vn},其中vi代表该词是否对应字符表d中的di,vi的计算方式如下:

优选地,步骤2和步骤4中,分词还包括词性特征的构建:词性特征的构建与词特征的构建方式一致。

优选地,步骤7中,采用word2vec对词特征向量进行处理,计算词向量之间的相似度,并根据相似度进行实体关系的分类。

优选地,对电力系统工单数据采用python的urllib2包对非结构化文本数据的内容进行采集;采用beautifulsoup包对采集的内容进行解析;采用r环境下的rwordseg包进行分词。

优选地,所述图数据库为:neo4j图数据库。

优选地,在步骤9中,所述lstm结构为blstm结构。

本发明与现有技术相比,将深度学习算法引入到电力领域知识模型的构建中,釆用命名实体识别和实体关系抽取这两大机器学习的任务来解决知识单元抽取和知识单元关系抽取这两个难题。除此以外,本发明还将图形数据库纳入到构建知识模型的体系中来,采用图形数据库对知识单元进行存储及展示,为知识模型的绘制提供了一种新的方法。

本发明提高了电力数据的有效利用,发挥数据隐藏的价值,提高电网的智能化应用水平,基于知识模型的知识表示,将改变过去低维度、相互孤立的信息展现方式,更加直观呈现电力知识之间的关联性。构建电力信息运维系统知识库,将历史运维数据转化为知识,支持用户在线自主咨询和解决问题,实现智能问答,提高运维效率,在电网运维工作中将发挥重要价值,并在此基础上完成电力信息运维领域知识模型优化存储技术。

利用本发明构建的知识模型,可以解决人工重复回答、人员不足等问题,能快速准确洞悉运维工单申请人的意图,并自主答案为用户解答,大幅提升运维的工作效率。

附图说明

下面结合附图和具体实施方式对本发明进一步详细的说明:

图1是本发明实施例方法主要流程示意图;

图2是基于深度学习算法的知识模型构建流程示意图;

图3是本发明实施例在neo4j图数据库实现及应用示意图;

图4是本发明实施例中七步法流程示意图;

图5是本发明实施例word2vec使用的两种流程的示意图;

图6是本发明实施例cbow模型示意图;

图7是本发明实施例skip-gram模型示意图;

图8是本发明实施例lstm的拓扑结构示意图;

图9是本发明实施例blstm的拓扑结构示意图。

具体实施方式

为让本专利的特征和优点能更明显易懂,下文特举实施例,作详细说明如下:

如图1所示,本实施方法包括以下步骤:包括以下步骤:

步骤1:对电力系统工单数据进行工单采集,并转换为文本格式,采用七步法进行本体构建,根据文本含义属性划分为多个文本域;

步骤2:以工单为单位,对工单文本数据进行分词处理;

步骤3:对文本域进行分组;

步骤4:对各文本域分别进行域分词处理,采用基于字符串匹配的分词方法分别对各分组的内容进行词汇切分;

步骤5:根据无效词汇表进行无效词汇过滤,过滤掉无效词汇和敏感词汇;

步骤6:将有效词汇与知识库中词汇表进行比对,将新词汇加入到知识库的词汇列表,对己有词汇进行累加其出现的频次;

步骤7:抽取加入词汇的实体关系:通过预先定义实体关系类型及基于实体的特征,抽取实体关系,并根据实体关系的相似度进行分类;

步骤8:将实体与实体关系的分类导入图数据库;

步骤9:在图数据库中采用tensorflow构建lstm结构的知识模型。

图2是常规的基于深度学习算法的知识模型构建流程示意图,本实施例相对于该流程的主要创新点在于:提出了新的分词策略,并解决了实体抽取当中特征选择的问题。

步骤2和步骤4中,分词采用中科院的ictclas系统;

将分词后的所有词组成字符表d,d={d1,d2,...,dn},其中di表示一个词,i∈[1,n]。将每个词e的词特征向量表示为v={v1,v2,...,vn},其中vi代表该词是否对应字符表d中的di,vi的计算方式如下:

步骤2和步骤4中,分词还包括词性特征的构建:词性特征的构建与词特征的构建方式一致。

步骤7中,采用word2vec对词特征向量进行处理,计算词向量之间的相似度,并根据相似度进行实体关系的分类。采用这种方法构建模式集合减少了大量的人工参与,特征的提取更加简单有效。

对电力系统工单数据采用python的urllib2包对非结构化文本数据的内容进行采集;采用beautifulsoup包对采集的内容进行解析;采用r环境下的rwordseg包进行分词。

图数据库为:neo4j图数据库。

其中,

1)实体。每个实体或概念用一个全局唯一确定的id来标识,称为它们的标识符。最典型的包括人名、地名、机构名等三类通用实体。对于电力信息运维领域,除了通用实体外,存在更丰富的实体,如服务器、运维系统、电网、变压器、变电站、输电线路、配网、主网等等。

2)属性一值。每个属性一值对用来刻画实体的内在特性。属性值范围包括:数值型(如工单号、电话),枚举型(如部门、单位),短文本(如工单事件标题),长文本(如工单事件详述)。

3)关系。而关系用来连接两个实体,刻画它们之间的关联。典型的关系抽取方法按照“模板生成实例抽取”的流程不断迭代直至收敛。例如,最初可以通过“x是y的总部地址”模板抽取出(国家电网,总部地址,北京)三元组实例;然后根据三元组中的实体对“国家电网一北京”可以发现更多的匹配模板,如“y的总部地址是x”、“x是y的中心”等;进而用新发现的模板抽取更多新的三元组实例,通过反复迭代不断抽取新的实例与模板。还可以通过识别表达语义关系的短语来抽取实体间关系。例如,通过句法分析,可以从文本中发现“国家电网”与“北京”的如下关系:(国家电网,总部位于,北京)、(国家电网,总部设置于,北京)、以及(国家电网,将其总部建于,北京)。通过这种方法抽取出的实体间关系非常丰富而自由,一般是一个以动词为核心的短语。

在本实施例中,电力系统工单数据具体是指,“一单两票”,即:检修计划工单、工作票和操作票。通过对“一单两票”非结构化文本数据的收集。并根据这些数据中的电力实体、电力实体之间的关系以及每个电力实体的属性及属性值,建立电力运维领域知识模型,使得该领域以外的人可以通过该领域的知识模型了解该领域目前的行业现状、发展趋势。对采集的文本数据进行分词,词性标注,通过命名实体识别方法识别电力运维实体,再通过实体关系抽取方法抽取出实体之间的关系,将识别过后的数据存储在图数据库neo4j中,使用图模型属性表示知识模型,通过图形可视化技术将存储在图数据库中的数据进行应用,对知识模型进行实体关系展示。

本实施例中采用的图数据库为:neo4j图数据库。

其中,neo4j支持多种方式导入数据。既可以手动导入,也可以采用csv文件直接导入,同时,neo4j也支持从主流关系型数据库导入数据。本实施例釆用csv批量导入的方法将数据导入至neo4j中。釆用csv批量导入数据到neo4j后,就可以采用cypher查询数据库中存储的数据,并釆用图形化的方式展示出来。

如图3所示,具体地,

(1)数据入库;釆用批量导入的方式将抽取好的命名实体与实体关系导入至图形数据库中。

(2)釆用cypher查询语言查询所有节点及关系即能获取整个知识图谱的全貌。

(3)釆用cypher语言搜索所需的节点及关系信息,可以为使用者提供个性化的知识服务。

(4)采用编程的方式可以调用neo4j的rrestapi接口进一步开发知识图谱知识图谱界面。

具体地,在本实施例中,由于深度学习算法的计算较为复杂,特征的维度常常达到上万级别,对计算机的资源开销极大,并且由于深度学习算法在有限样本量上也能具备较好的表征能力,在选取有限数量样本的前提下,对电力系统工单数据采用python的urllib2包对非结构化文本数据的内容进行采集;采用beautifulsoup包对采集的内容进行解析;

由于中文与英文在自然语言处理方面一个显著的差别是英文可以通过空格来切分单词,而中文在词的划分上是不明确的,因此在对中文进行处理时,首先需要对它进行分词。本实施例中采用r环境下的rwordseg包进行分词,rwordseg基于中科院的ictclas中文分词算法写成,可以实现分词、多级词性标注、关键词提取等功能,还可以导入自定义的词典来进行分词。

由于实验数据来源于“国网福建电力有限公司--集中认证服务单点登录平台中的“一单两票”非结构化文本数据,因此在釆用rwordseg包进行分词时,还需要增加该领域的词典,以提高分词的准确性。电力行业相对来说不是很开放的领域,目前并没有完整的领域词典,因此需要人工对该领域的词典进行构建。机器釆集和人工采集相结合的办法来构建该领域的词典。首先通过程序自动采集“一单两票”数据中的词条,继而釆取人工采集方式进一步扩充该领域的词典。

词典的构建过程如下:

(1)对“一单两票”的词条进行标注分析,选择了“开单人”、“开单时间”、“开单内容”等多个标签。

(2)釆用python编写爬虫,爬取(1)中确定的多个标签下的词条。并对釆集到的词条进行去重。

(3)由于采集的是“一单两票”的tag页面下的词条,而tag页面中最多只列出了某些词条,那些没有列出的词条没有办法通过程序直接釆集。基于这个原因,实验通过人工查看数据集中的内容,补充没有采集到的词条。

采用rwordseg包中的installdict可以安装自建的词典,对数据集进行分词。对收集到的文本数据进行分词,然后,用这些词用来进行知识实体识别。将分词后得到的内容与自建的词典入库,后续将结合两者进行进一步处理。

在本实施例中,通过构建词典和概念匹配的方式来解决共指消解这一问题,在构建知识模型前,利用字典将同一概念的不同表述方式映射为同一个实体。例如,对于“国家电网”这个实体,实验会自动识别“sgcc”、“国家电网”、“国家电网公司”等多种表述方式,并将这些表述方式转换为“国家电网”这一表达方式。

电力领域知识模型中的概念层包括:开单人、时间、申请内容以及操作对象。针对知识模型中的概念以及概念中的实体,在本实施例中,采取自顶向下的方法来构建电子领域知识模型。自顶向下的方式不是首先通过人工的方法构建顶层关系本体,而是直接以属性图中属性键值对以及实体对关系的形式进行表示。

1)属性图中的属性键值对以及标签表示

比如“虚拟服务器”实体术语操作对象类,则在属性图中针对“虚拟服务器”节点,添加一个type属性,其值为“操作对象”。

2)实体对关系

比如“虚拟服务器”实体跟“开票人”概念中“张建晖”以及“张超”实体有联系,“开票人”对“虚拟服务器”执行某种操作,则我们将“虚拟服务器”与“张建晖”进行实体关系连接,建立relatedbody相关关系。

如图4所示,在本实施例中采用的七步法是由斯坦福大学医学院开发的,主要应用于领域本体构建的方法,具体的步骤和思路如下:

1)确定范围:开发一个领域本体本身并不是目的,而是为了特定的目的而建立特定领域的模型,所以需要确定本体覆盖的领域,使用本体的目的,以及本体的维护等问题;

2)考虑复用:随着本体的广泛应用,定义本体时已经很少从零开始了。所以需要确定是否可以从第三方获得可用本体,作为自己开发本体的起点;

3)列举术语:列出本体中期望出现的所有相关术语的一个非结构化列表,其中名词是类名的基础,动词或动词短语是属性名的基础;

4)定义分类:确定相关术语之后,将术语组成分层结构,可以采用自顶向下或者自底向上两种方式,确保分层结构是由类和子类的层次关系构成的。或者结合以上两种方法,将大量概念整合并把它们关联起来;

5)定义属性:这一步通常与上一步交叉进行,建立类的层次结构的同时,一定要同时建立联系这些类的属性,由于类存在继承性,所以需要把属性加到它所适用的最高层类上,给类加属性的同时,确定属性的定义域和值域;

6)定义侧面:为了使属性的定义更加完整,进一步定义属性的侧面(facet),具体包括三类:基数,指是否允许或必需有一定数目的不同值;特定值,指用某个属性的特殊值来定义类,这个特定值可以取自一个给定的类,而不必是一个特定的值;关系特性,指属性的关系特性,即对称性、传递性、逆属性和函数值;

7)定义实例:定义本体通常是用来组织集合实例,这些集合实例填入本体是一个独立的步骤,而实例集通常是从数据源中自动抽取获得。

在本实施例中,词特征向量的处理和训练采用的是word2vec工具,该工具由google于2013年开源推出。其主要的作用就是将词映射到一个向量中,使用向量来代表一个词,如此一来,自然语言处理的问题即可转换为对向量处理的问题。通过词向量我们可以更好地对自然语言处理任务进行建模处理。word2vec中主要使用了两种模型:cbow(continuousbag.of-wordsmodel)和skip-gram(continuousskip.grammodel)。

如图5所示,两种模型都包含三层:输入层、映射层、输出层。w(t)代表当前词,w(t-2)、w(t-1)、w(t+1)、w(t+2)表示词w(t)的上下文。cbow模型是己知当前词w(t)的上下文w(t-2)、w(t-1)、w(t+1)、w(t+2)的前提下预测词w(t),而skip-gram模型恰恰相反,是在己知当前词w(力的前提下预测其上下文信息w(t-2)、w(t-1)、w(t+1)、w(t+2)。

以基于hierarchicalsoftmax的cbow模型和skip-gram模型为例,其中:

(1)cbow模型

cbow模型的主要思想是已知当前词w(t)的上下文的前提下预测词w(t)。cbow模型的网络结构如图6所示。

由图6可知,cbow模型主要由输入层、映射层、输出层三部分组成,其中输入层输入当前词w(t)的上下文2c个词的词向量;映射层使用xw将2c个词的词向量进行相加,结果存入xw中;输出层对应一棵霍夫曼树,其中叶子节点代表语料中的每一个词,非叶子节点代表一个二分类器,xw从根节点通过k个(k表示从根节点到当前词叶子节点路径上的非叶子节点个数)二分类器进行分类,每经过一次分类器都会将被分到正确分支的误差累积到向量neule中,经过k次分类之后,xw信息到达当前词的叶子节点,然后将误差累积向量neule中保存的信息分别更新到2c个词向量中。

cbow模型中,最关键的处理就是输出层上的操作,输出层对应一颗霍夫曼树,每一个非终端节点都可以看作是二分类问题,而二分类问题可以使用逻辑回归函数进行分类,其公式如下所示:

逻辑回归函数的取值范围为(0,1),阈值定为0.5,大于0.5代表正例,小于0.5代表负例,逻辑回归函数可以很好的处理二分类问题。

对于每一个词w(t),从根节点root到词w(t)的叶子节点都会有一条唯一的路径l,假设路径l中有k个非叶子节点,那么就需要进行k次二分类,如果要保证k次二分类问题效果最好,可以将目标函数取为最大似然估计,其公式如下所示:

其中θ代表待定参数,其值保存在非叶子节点中,只要待定参数能够确定了,代表模型训练完成。条件概率表示在向量xw和待定参数为θ的前提下,分类为dj的概率,dj=1代表正例,dj=0代表负例。

(2)skip-gram模型

skip-gram模型的主要思想为使用当前词对上下文信息进行预测。其网络结构如图7所示。

为了与cbow比较,在图7中画出了映射层,其实在skip-gram模型中不存在映射层。因此,skip-gram模型主要由输入层和输出层二层组成。其中输入层为当前词v(w)的词向量,输出层同cbow模型一样对应一棵霍夫曼树。与cbow的不同之处在于,在v(w)从根节点经过k个二分类器后,将误差累积向量neule中保存的信息更新到词的词向量v(w)中。

skip-gram模型的目标函数与cbow模型的目标函数不同,其目标函数如公式下所示:

其中θ代表待定参数,其值保存在非叶子节点中,只要待定参数θ确定了,其最终的模型也就训练完成。条件概率表示在向量v(w)和待定参数为θ的前提下,分类为的概率,代表正例,代表负例,这里u代表当前词w的上下文中的某一个词。由于skip-gram模型是在己知当前词w的前提下预测上下文信息,而上下文信息中包含多个词,因此与cbow模型不同的是,skip-gram模型的每次训练需要对win条路径进行预测(win为上下文context(w)中词的个数),每条路径代表从根节点到context(w)中的某一个词所对应的叶子节点。只要确定预测哪一个上下文u,路径既可以唯一确定,也就确定。

例如上下文信息使用w(c-2)、w(c-1)…w(c+1)、w(c+2)表示,那么在skip-gram模型中需要分别计算p(w(t-2)|w(t))、p(w(t-1)|w(t))…p(w(t+1)|w(t)、p(w(t+2)|w(t),并将每次的误差累积向量neule中的值更新到当前词向量v(w)中。

word2vec不仅实现了基于hierarchicalsotbnax的cbow模型和skip-gram模型,还实现了基于negativesampling的cbow模型和skip-gram模型。此外,word2vec还对低频词、高频词以及学习率的调整做了相应的处理,取得了很好的效果。

词向量表示完后,由于每个词语对实体的贡献度不同,所以需要对这些词语赋予不同的权重。计算词项在向量中的权重方法tf-idf,它表示tf(词频)和idf(逆文档频率)的乘积:

tf-idf=词频(tf)×逆文档频率(idf)

词频(termfrequency,简称tf)表示特征词出现的次数除以文章总词数:

其中tf表示某个关键词出现的频率,idf为所有文档的数目除以包含该词语的文档数目的对数值。

|d|表示所有文档的数目,|w∈d|表示包含词语w的文档数目。

由于“是”“的”“这”等词经常会出现,故需要idf值来降低其权值。所谓降维,就是降低维度。具体到文档相似度计算,就是减少词语的数量。常见的可用于降维的词以功能词和停用词为主(如:“的”,“这”等),事实上,采取降维的策略在很多情况下不仅可以提高效率,还可以提高精度。

最后tf-idf计算权重越大表示该词条对这个文本的重要性越大。

这样,就需要一群相似的文章,才可以计算idf值。依次计算得到相似的文章d=(w1,w2,...,wn)共n个关键词的权重。当你给出一篇文章e时,采用相同的方法计算出e=(q1,q2,...,qn),然后计算d和e的相似度。

计算份文档间的相似度就通过两个向量的余弦夹角cos来描述。文本d1和d2的相似性公式如下:

其中分子表示两个向量的点乘积,分母表示两个向量的模的积。

使用word2vec工具将语料文本输入到cbow模型和skip-gram模型中,将文本内容转化成向量空间中的向量计算,计算出向量之间的相似度,通过将相似度较高的向量进行聚类,形成颗粒度粗细不同的主题聚类,从而表示文本语义上的相似程度。

tensorflow是由谷歌googlebrain团队在2015年9月开源的、为各种研究和生产目的而研发的一款机器学习软件库。目前已经被应用于谷歌内包括语音识别、gmail、googlephoto和其他深度学习项目等50多个商业产品中。tensorflow是谷歌googlebrain团队的第二代机器学习系统,有别于其他学习系统,tensorflow在2015年开源的时候己经可以在cpu及gpu上运行。它可以在64位linux或macos桌面及服务器系统上运行,而且同样适用于移动计算平台的ios和安卓系统。

tensorflow的计算用状态化的数据流图(dataflowgraphs)来表示,“tensorflow”这个名称来源于神经网络处理多维数据时的操作方式,即这些多维数据被与“tensors”相联系,但是它们的概念又不完全等同于此,它的目的是为了训练神经网络来检测特征和模式识别。

lstm(longshort-termmemory)长短时记忆模型是rnns的一种,继承了所有rnns结构的特性,并增加了一个记忆块(block)以及记忆块中最重要的部分--“记忆单元”,记忆了之前的序列信息,解决了rnns中反向传播中梯度消失的问题。

长短期记忆(longshort-termmemory,lstm)循环神经网络(下文中引作lstm)被证实在解决有长距离依赖的序列数据的问题中性能优于普通循环神经网络。为解决梯度缩放所带来的影响,lstm中的网络单元即神经元被重新设计,其梯度缩放的因子为固定的1。但其也带来了学习能力的限制。于是lstm又引入了所谓的门单元。门单元可以选择性的让信息流过。lstm中的神经元内包含3个门单元,分别是“遗忘门”,“输入门”和“输出门”,以及一个记忆单元。我们可以把整个神经元看成黑箱,其表现行为和普通rnn一样,即接受当前输入xt和上一个时刻隐含状态ht-1,输出这一时刻的状态ht。

lstm神经元的形式化定义见下式:

f(t)=σ(wf·[ht-1,xt]+bf)

it=σ(wi·[ht-1,xt]+bi)

ot=σ(wo·[ht-1,xt]+bo)

ht=ot*tanh(ct)

式中当前输入xt∈rm,当前时刻隐含状态ht∈rn,f(t),it,ot分别为当前时刻的遗忘门、输入门、输出门的输出向量,为候选记忆单元,ct-1为上一时刻之后的记忆单元,ct为当前时刻之后的新的记忆单元。对于所有的j∈r{f,i,c,o},wj∈rn×(n+m)为参数矩阵,bj∈rn为偏置向量。σ()和tanh()分别表示对向量的每个元素的sigmoid函数运算和双曲正切函数运算,*表示对应元素相乘。

当数据流入lstm单元后:

第一步,由“遗忘门”来决定记忆单元里的哪些信息被舍弃。其接受ht-1和xt作为输入,输出一个向量ft,该向量每维的取值在0和1之间。其维度等于上一时刻之后的记忆单元ct-1(当前时刻还未更新)的维度。1代表完全保留,0表示完全舍弃。

第二步,由“输入门”来决定哪些新信息将被存储于记忆单元里。其接受ht-1和xt作为输入,输出一个向量it,该向量每维的取值在0和1之间。取值的大小代表了该维上的信息被更新的程度,1代表完全更新,0代表不更新。

第三步,由tanh层构造一个新的向量作为将被用来的更新记忆单元的候选记忆单元。

第四步,根据之前步骤得到的向量,更新旧的记忆单元ct-1,得到新的记忆单元ct。具体的:1)将旧记忆单元与ft相乘,忘记那些由“忘记门”决定要忘记的信息;2)将候选记忆单元与it相乘,得到由“输入门”决定要更新的信息;3)两者相加得到新的记忆单元。

第五步,由“输出门”来决定记忆单元中的哪些信息将被作为输出状态。其接受ht-1和xt作为输入,输出一个向量ot,该向量每维的取值在0和1之间。取值的大小代表了该维上的信息被作为状态输出的程度,1代表完全输出,0代表不输出。

第六步,首先将新的记忆单元做tanh变换,使得每维的取值限定在-1和1之间,然后与ot相乘,这样便输出了由“输出门”决定输出的部分。

lstm的神经元结构比传统的神经元多了三个激活单元,分别是输入激活、输出激活和重置激活,它们分别可以对隐藏层的输入,输出,递归进行调整控制,令记忆块可以保持长时间记忆。其次与记忆状态有关的即时连接,令记忆块可以对即时的输入作出反应。

一般来说,如果输入数据越复杂,那么需要越多的隐藏神经元和越复杂的连接,在lstm中,连接主要有以下几种可能:

(1)增加一个记忆块中的记忆单元个数,因为记忆单元的状态信息只在块内共享,所以当数目越多,记忆块可以检测到的状态就越丰富。

(2)增加隐藏层中记忆块的数目。一般来说,当非线性问题越复杂,所需要的隐藏层单元也越多。

(3)增加隐藏层的数目。

(4)输入层直接连接到输出层,让原始数据直接给输出层参考。

虽然上述四个方法,我们都可以添加来增强lstm的能力。但每一种结构,权值会翻倍增长,令训练和测试时间倍受压力。在本实施例采用的拓扑结构中:每一个记忆块中只有一个记忆单元,隐藏层中的单元数目根据输出层的大小而调整默认设置为100,隐藏层的数目为2,并且采用双向延伸,输入层分别连接到隐藏层和输出层,隐藏层输出时延后全连接到隐藏层和输出层。

以一个一层lstm拓扑的权值计算过程为例,展示本实施例采用的lstm的拓扑结构。假设一个识别任务中,需要神经网络的输出层大小为o,输入层为i。设置隐藏层单元数目为h。根据上述的拓扑结构,需要的权值数目为:

从输入层中发出的连接:

i×h+3×i×h

输出层接收到的连接:

o×h

递归层中的连接:

h×h+(3×h)+3×h

如图8展示lstm的拓扑结构:每个记忆块只有一个记忆单元,实现代表的是向前连接(从输入层到隐藏层,隐藏层到输出层);虚线代表的是递归连接。即时连接并没有体现在图上。

传统的递归网络是时间向前的递归,即后面的信息点考虑前面的信息。但是在实际应用中,我们往往期望其能具备“上下文”信息,即前面的信息点也能考虑后面的信息。就像人眼在看单词的时候,是从左往右看,但是眼睛的余光会不自觉地先看到右面的字母。

m.schuster提出了一种双向的递归神经网络,克服了单向网络的缺点。它的核心思想是创造两层独立的隐藏层,分别是向前递归和向后递归。向前递归隐藏层的输出不与向后递归隐藏层的输入连接,而向后递归隐藏层的输出不与向前递归隐藏层的输入连接。它们是两层分别与输入层、输出层连接的独立隐藏层,

如图9所示,作为优选方案,本实施例采用blstm,其将双向衍生结构应用到lstm中,把中间的两层隐藏神经元用lstm的记忆块代替。

本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的电力信息运维知识模型构建方法,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1