论文大致框架
目标:
提出一种改进的面向智慧运维的分布式光伏知识库构建方法
优化策略:
实体提取步骤
改良TextRank算法:基于统计特征,同时引入外部信息。
关系提取步骤
改良分段卷积神经网络的分类器层;使用多示例学习的方式回避错误样本对模型训练过程的影响
选择原因
构建流程选取
| 自顶向下构建 | 自底向上构建√ | |
|---|---|---|
| 过程 | 1.人工确定数据模式与知识库结构 2.向其中填入实体等知识 | 利用无监督回远程监督等技术手段,从文本中自动提取 |
| 优点 | 节省人工成本,构建速度快,也能保证准确度 | |
| 缺点 | 1.比较耗费人力 2.准确度受到人员主观影响 |
利用分布式光伏领域无标注文本,采用无监督的方法,进行基于统计特征的实体提取,构成领域实体库;利用开放领域的知识库数据,采用远程监督的方法,进行实体关系提取,构成实体关系库。
TextRank方法介绍
基本思想
- 将待抽取关键词的文本进行分词;
- 以固定窗口大小(默认为5,通过span属性调整),反映词之间的共现关系,构建图;
- 计算图中节点的权重,与PageRank类似(无向!)
前面的两步主要是TextRank构造图的过程,在构造图结束后,分析图节点的权重排名得到关键词,使用的思想与PageRank大致类似。
PageRank
- In(Vi) :Vi 的入度节点集合
- Out(Vi) :Vi 的出度数
- S(Vi) : Vi 的权重
| S(A) | S(B) | S(C) | S(D) | |
|---|---|---|---|---|
| 初始值 | 0.25 | 0.25 | 0.25 | 0.25 |
| 第一次迭代 | A的入度节点B现在的权重值/B的出度 = 0.125 | 0.458 | 0.083 | 0.333 |
| 第二次迭代 | 0.229 | 0.416 | 0.042 | 0.312 |
| …… | …… | …… | …… | …… |
使用邻接矩阵表示图: 图中 aij 表示j节点到i节点是否有边。
在邻接矩阵的基础上,进行标准化(除以列和),就可以得到如下概率转移矩阵
Sn = W*Sn-1
可以设定一个n值作为迭代结束指标,当迭代至收敛或达到n值结束迭代。
两种特殊情况:
1. 节点没有入读-->排名下沉,该网页权重趋于0;
2. 节点没有出度/几个节点的出度形成封闭-->排名上升,只增不减: 引入阻尼因子d
Sn =(1-d)Sn-1 + d*W*Sn-1
构造图
在TextRank任务中,词就是Graph中的节点,而词与词之间的边,则利用“共现”关系来确定。所谓“共现”,就是共同出现,即在一个给定大小的滑动窗口内的词,认为是共同出现的,而这些单词间也就存在着边。
# 第一次:index=0(分布式)
dict[(分布式,光伏)] = 2
dict[(分布式,发电)] = 1
dict[(分布式,特指)] = 1
dict[(分布式,采用)] = 1
# 第一次:index=1(光伏)
dict[(光伏,发电)] = 1
dict[(光伏,光伏)] = 1
dict[(光伏,特指)] = 1
dict[(光伏,采用)] = 1
dict[(光伏,组件)] = 1
以此类推,但这里建立的是无向有权图。
TextRank方法优化
按照我的理解,应该是引入了相似度,影响权重转移矩阵。这个相似度是用与实现给定的核心词汇的词向量间的欧氏距离来判断的。
PCNN
基本流程
先浅谈一下自己的理解:首先明确神经网络的输入和输出,输入应该为文本和提取出的实体名词,在正式作为输入数据之前,要进行数据预处理。输出则为实体之间的关系,这里的关系是指某一类关系,如包含关系等,因此该问题可以看作是一个分类问题,输入句子和实体,模型对实体之间的关系进行分类。
从上图中可以看到,句子中的词汇要转化为词向量,在向量表示层里,分了两部分:词汇特征和位置特征,加深颜色的即为输入文本中的实体。将句子中的词汇分别根据距离两实体的距离进行编码,产生两个与句子长度一致的编码;每个词汇都将得到两个位置信息,将词向量与该位置信息拼接,生成新的词向量-->形成相应的矩阵。
将该文本以实体为界进行切分(位置向量同样进行切分):
PCNN基于两实体位置信息将卷积层输出划分为3个部分(分段池化,保留句子结构信息)。
训练:使用多示例学习策略
划分样本包,每个包的标签已知,包中实例标签未知,训练过程中将包中实例在包标签上的最大概率作为预测输出,则目标函数定义为
PCNN优化
由于同一组实体之间可能存在多种关系,因此对分类器层进行了优化使用多个二分类器处理多标签问题,(应该是对每种关系都进行一个01判断)