1.一种基于动态知识表示学习的案件推理方法,其特征在于,所述方法包括以下步骤:
1)获取已破获案件的所有有关数据,包括案发时间、案发地点、作案物品、犯罪人员以及与其有所关联的所有人员数据,划分为人员、案件、物品、地点、机构五大类实体,并提取五类实体之间的关系;
2)将所提取出的事件以时间、实体、关系的形式存储为四元组的格式,符号记为(t,s,r,o),其中t表示事件发生的时间,s表示事件的主实体,r表示关系,o表示事件的客实体;
3)图数据库是用于存储多种关系图的数据库,图中的每个节点代表实体,节点与节点之间的边代表关系,而时间则作为实体或边的一种属性,这样就可以将定义好的数据以节点-边-节点的方式存入图数据库;
4)知识表示学习的训练使用的是一种循环神经网络模型,对四元组数据进行循环事件推理,包括序列编码器和邻近聚合模型两个组成部分,流程如下:
4.1)序列编码器的目标是表示时序图谱,假定所有时刻的事件集合定义为E={E1,E2,E3,…Et,…},其中Et为t时刻发生的事件集合,可以得到其事件发生的概率表示:
4.2)根据马尔可夫假设,该事件在t时刻的状态只取决于在t时刻之前的τ时段内的状态,概率表示化简为:式中,et为t时刻发生的某具体事件,由四元组定义可知et=(t,s,r,o),根据贝叶斯公式,公式(2)转化为:P(et|Et-1,…,Et-τ)=P(ot|st,rt,{Et-1,…,Et-τ})P(st,rt|{Et-1,…,Et-τ}) (3)
4.3)这里假设(st,rt)独立于过去的事件集合,且建模为均匀分布,则认为P(et|Et-1,…,Et-τ)∝P(ot|st,rt,{Et-1,…,Et-τ}),只考虑s的影响,得到:式中:Ot为所有(st,rt)对应的客实体ot的集合;
4.4)引入基于RNN的序列编码器,最终建模为:
P(ot|s,r,{Ot-1(s),…,Ot-τ(s)})=f(s,r,ht-1(s,r)) (5)ht(s,r)=RNN(s,r,g(Ot(s)),ht-1(s,r)) (6)式中,ht为第t层RNN循环神经网络函数层,g(Ot(s))为邻近聚合模型;
4.5)邻近聚合模型g(Ot(s))如式(7)所示:
式中:No为集合 中o的个数;
4.7)最后使用交叉熵损失函数对嵌入向量进行训练:
式中,m表示客实体样本的标签;ym取0或1,当实体o的标签为正确样本时,ym为1,反之则为0;P(o=m|s,r)即o正确的概率;
5)训练完成后,以案件作为主实体s,案发时间作为t,案件可能的犯罪人员r作为关系,准备进行链接预测;
6)预测的方法是将所有实体都作为客实体o代入到四元组(t,s,r,o),这样对于任意输入均得到一个预测概率P(o|s,r,t),进行排序,概率越大代表这个人是犯罪人员的可能性越大。
2.如权利要求1所述的一种基于动态知识表示学习的案件推理方法,其特征在于,所述方法还包括以下步骤:7)使用图数据库进行一度、二度的关系查找,缩小预测范围,只选取与当前案件的嫌疑人员存在一定关系的实体作为客实体进行预测。
3.如权利要求1或2所述的一种基于动态知识表示学习的案件推理方法,其特征在于,所述步骤6)中,最后对模型进行评价和排序,评价方案选用hit@10方案,即对所有输入的预测概率P(o|s,r,t)从大到小进行排序,选取结果最大的10个作为预测的答案,判断正确答案是否在这10个数据中,若是,则视为预测正确。