应用食品安全事件案例设计风险预警模型
2021-03-11祁海峰陶光灿
◎ 祁海峰,郑 骥,陶光灿,李 伟
(1.人民网舆情数据中心,北京 100026;2.食品安全与营养(贵州)信息科技有限公司,贵州 贵阳 550014)
1 案例提取解决问题基本思路
2008 年三聚氰胺事件事情经过如下:中国传染病疫情和突发公共卫生事件网络直报系统(简称网络直报系统)收到甘肃、陕西连续出现婴儿患有肾结石这种罕见现象的直报事件,如此高的比例违背了医学规律,显得很不寻常;此后,疾控中心工作人员发现广西等地出现有同样情况;卫生系统开始排查,通过就诊记录发现患儿都有食用三鹿奶粉经历,对奶粉进行理化分析得知其内部添加了非法添加剂,期间也有良心企业老板主动爆料,通过对供应链追踪发现有生产人员在原奶中添加三聚氰胺,才揭示出问题根源。
将以上事件过程进行抽象概括,得到模式如下:①有不同寻常事件发生,超过随机发生可能。②在多个地方发现同样类型事件,得到结论可能有问题出现。③根据可能有问题报道进行深挖与食品相关的因素[1]。④有人员对这个事件可能问题进行爆料。⑤对可能存在问题食品进行专业检查,科学分析明确事件原因。在以上过程中,前4 个部分都可以以机器为主通过算法实现目的。
通过以上分析,得到解决问题的基本思路,见图1。
图1 解决问题基本思路图
在5 个环节中,可以分为3 个阶段:前3 个环节可以认为是发现健康事件阶段,第4 个环节判断健康事件是否与食品相关阶段,最后一个环节是人工处理阶段。前两个阶段共4 个环节均可以通过机器自动实现,帮助用户初步筛选出来后,提交给相关人员进行处理。因此,本研究对上述4 个环节详细进行说明。
根据以上分析,在图1 解决问题基本思路的基础上,拓展后得到图2 食品安全事件风险预警模型顶层设计。除了直报数据外,网上数据也很多,为此,本研究决定直报数据基于规则选择结合舆情数据利用算法先筛选出与健康相关事件,再利用知识图谱比对发现不同寻常事件。再通过时间的集中和地理位置多地同时出现从而实现对事件确认,找出这些异常健康事件后,提交给人工进行专门判断是否可能与食品相关。
图2 食品安全事件风险预警模型顶层设计图
在整个解决问题过程中,直报系统和舆情系统两个数据来源,二者在分离环节分别进行说明,相关环节对二者联系进行说明,一起处理的环节,只做一个说明。
2 集中出现人群健康相关事件筛选
2.1 利用直报系统发现健康安全事件
卫生直报系统包括国家和省两个级别应用系统平台,原始和统计数据主要是在省级应用系统平台,因此识别数据是来自省级系统。原始数据都进行了统计,且有描述。可通过设定一些包括阈值的规则来判断哪些是值得关注的健康安全事件。
对于上报事件,主要是出现在疾病或者症状描述中不规范的用词,需要将“非标准表述”映射到“标准表述”,这个过程需要一个基于语义的同义词库。
此过程是一个文本对齐,相似度计算的过程。相似度计算在经典的信息检索系统中是基于匹配的,缺少利用词汇之间的“关系”。可利用word2vec 使用大量数据,对上下文信息进行训练,将词汇映射到词向量空间,“关系”就对应于词向量距离,利用词汇之间的距离进行检索。
2.2 利用舆情系统发现健康安全事件
根据以上分析,从舆情数据中挖掘发现特殊事件。方法是通过对文本进行分类,找到属于健康类别的文本。
文本分类一般分为分词、去停用词、抽取特征和文本分类4 个环节。主要有基于传统机器学习和基于深度学习的文本分类两类方法。
基于传统机器学习的文本分类主要有朴素贝叶斯算法、神经网络算法、KNN 算法及SVM 算法对Web文本进行分类,要经历完全4个环节。机器学习算法中,神经网络算法的准确度优于其他算法。都是有监督学习方法。分词、去停用词使用jieba 工具。
通过深度学习进行的文本分类,利用神经网络去学习文本特征,自动进行分类,如TextRNN + Attentio、TextRCNN(TextRNN + CNN)、bert 等方法。
3 不同寻常人群健康事件辨别
对于筛选出的健康相关事件,进一步判断是否属于特殊/异常事件,判断标准为:①主体和客体的组合是否不合常规,如婴儿得胆结石。②主体属性值是否超过常规。如果满足两个条件中的一个,即可初步判定这个事件为特殊事件[2]。而这个过程可以通过知识图谱的建构和比对来实现。异常健康事件初步发现流程,见图3。
图3 异常健康事件初步发现图
常见健康事件中,一般可以归结为一个群体有不常见症状出现,又可以分为两种情况:①主体和客体组合特殊,如婴儿得了肾结石。②人群一致出现一种不好状态,如同一批次旅行者出现中毒状态。
案例:可以归结为有相同行为人群一致出现一种不好状态。主体是人群,属性是健康状态,属性值是出现不好的健康状态或者疾病。先对文件提取摘要,然后对其中进行核心词、关键词提取,如果关键词中具备有描述人、疾病、身体状况不好等情况,通过语句层面的语义理解判断语句中主语是否是人,谓语部分是出现/发生了,宾语是疾病或者描述身体不好症状情况。如果符合就可以认为是出现了健康事件。
4 异常健康事件认定
在确定问题后,对此问题是否在其他地方也有出现,不同数据来源可以进行互补比对,如基于地理空间、时间线,直报数据和舆情数据对同一类事件的报道。
如果类似事件在全国多个地方出现,而且事件主要出现在近一年时间内,则增加了这类事件是异常事件可能性。如果在直报系统和舆情系统中都出现了对同类事件的报道,尤其是涉事主体分布更广情况下,则更可以判断这个事件为异常健康事件。
通过对行为一致性判定,可以判定不同地点、不同时间中发生同样事情,根据求同法,基本可以判定这是一个需要引起重视的异常健康事件[3]。
5 健康事件人员食用可疑食物辨别
对于异常健康事件,可将报道中的文本重新提取出来,寻找事件中是否有与食品相关事情发生。如食品品牌、食用时间等。利用这些特征通过聚类分析方法寻找同类项。增加了甄别出的异常健康事件属于食品安全类别证据,从而可以初步判定是一个食品安全事件[4]。
直报数据或者舆情数据中关于有关食物相关的特征抽取可采用有注意力机制的长短期记忆网络(LSTM)来进行特征学习,利用同义词词典通过计算词向量距离得到相似事件,从而判定是否与食品有关。
如果判断出的事件是与食品有关,挑选出来推送到人工处做进一步处理。
6 结论
基于实际工作中食品安全事件发生的一些情况进行归纳和总结,形成相应研究路线和解决方案有着合理基础,技术实现上方法和路径是成熟的。虽然因为数据原因暂时没有进行实证研究,但是实现逻辑是自洽的,通过异常事件识别并核对是否与食品相关从而实现通过机器预判食品安全事件方法是可行的。希望在为相关部门做规划时,能得到数据进行验证分析,在合适情况下推进到实际工作中。