1、从社交媒体筛选药物不良反应数据构建预警模型 魏巍 魏蕾如 郑杜 中南财经政法大学大数据研究院 武汉大学信息管理学院 摘 要: 目的/意义构建了一个利用文本分类方法从社交媒体数据中自动识别药物不良反应 (ADR) 信息的预警模型, 可以帮助食品药品监管部门和制药公司识别社交媒体上可疑的 ADR 消息。方法/过程该模型包含 3 个重要组成部分:降维机制, 自动扩充训练数据以及由此产生的分类器, 该分类器可以有效地从健康相关的社交媒体中提取用药者评论的药物不良反应相关贴文。将 LDA 模型作为一种降维方法解决社交媒体分析中面临的高维问题, 并将学习过程建模为一个半监督分类问题, 帮助检索更多相关的未
2、标记贴文。结果/结论本文提出的方法能够在低维空间特征化用户生成的 ADR 帖子, 同时在增加训练数据的同时避免性能的降低。局限有待利用更多数据进行实证研究。关键词: 社交媒体; 药物不良反应; LDA 模型; 半监督分类; 预警模型; 作者简介:魏巍, 女, 1982 年生, 博士, 讲师。研究方向:知识组织与情报服务。作者简介:魏蕾如, 女, 1983 年生, 博士生。研究方向:社交媒体分析。作者简介:郑杜, 男, 1983 年生, 博士生。研究方向, 数据挖掘与商务智能。基金:国家社会科学基金项目“我国制造业与服务业协调发展的统计测度研究”的成果之一, 项目编号:17BTJ017Const
3、ructing an Early Warning Model Based on Adverse Drug Reaction Datafrom Social MediaAbstract: Purpose/signficanceThis paper puts forward an early warning model that can automatically identify adverse drug reaction (ADR) information from social media based on text classification, which can help Food a
4、nd Drug Administration as well as drug companies identify possible ADR information. Method/processThe model consists of three parts: the mechanism of dimension reduction, automatic expanded training data, and a resulting classifier. The classifier can effectively extract posts related to ADR posted
5、by the drug users from the health-related social media. Using LDA model as the method to reduce dimensions can help resolve the problem of high dimensions in social media analysis. The learning process modeling is a semi-supervised classification, which helps to retrieve more relevant unlabeled post
6、s. Result/conclusion The method proposed in the paper can characterize users generated ADR posts in low dimensional space, in the meanwhile it can avoid performance degradation while increasing training data.LimitationsMore data need to be used for empirical research.Keyword: social media; adverse d
7、rug reaction; LDAmodel; semi-supervised classification; early warning model; 药品的安全性问题已成为全球共同关心的健康话题。通常对服用药物后引起的与用药目的无关的有害反应称为药物不良反应 (Adverse Drug Reaction, ADR) 。药物不良反应是许多国家的主要死亡原因之一。自 20 世纪 60 年代, 许多国家和世界卫生组织 (WHO) 已通过使用药物警戒系统 (也被称为早期预警系统) 监测药物不良反应。这些系统的主要目的是在药物上市后的早期阶段收集有关可能的不良反应信息, 特别是对于严重的、罕见的和未
8、知的药物不良反应。药品的临床试验通常是在评价和营销授权阶段进行的, 药品的安全性只在一定的范围内进行调查, 因此必须对上市后药品的安全性进行监测1。通常的药物警戒系统都是来自医生和药剂师的报告, 而不是患者 (药物使用者) 的直接报告。由于医生和药剂师的过滤, 使得送达到药物警戒系统的报告不是最初的第一手数据源。随着网络时代的来临, 患者获取和掌握了越来越多的健康医疗信息, 他们希望能够更多地参与到自身疾病的诊断和治疗的决策中。制药公司也对来自患者即时的和直接报告的药物不良反应非常感兴趣, 因为这些对药品上市后监督期间的早期报告, 能够使他们及早地发现问题并采取措施而免于受到更严重的法律诉讼和
9、利益损失。有研究表明, ADR 的患者报告对于可靠的药物警戒可做出重要贡献2。社会媒体为患者提供了交流药物使用体验的平台, 人们利用社交媒体进行健康和医疗信息的搜索在网络搜索结果中占据重要比重3。健康医疗研究应当充分利用这些丰富的信息资源。Van Hunsel 等4的调查揭示了荷兰患者报告药物不良反应的动机, 结果表明患者愿意在社交媒体上分享他们使用药品的经验。这些用户生成内容 (UGC) 的迅速涌现, 已成为持续监测公共卫生资源和不良疾病事件的重要资产5。分析社交媒体网站上患者的叙述内容, 对于评估患者感知的药物不良反应风险和挖掘药物与不良反应之间的关系也是非常重要的6。从数以万计的用户生成
10、内容中发现和分析药物不良反应相关的信息是一项充满挑战的任务, 现有文献对它的关注亦十分有限。如何有效地收集用户生成的大量药品使用信息, 并且筛选出 ADR 相关的信息, 将是本文研究的重点。1 相关研究1.1 公共卫生研究中的文本挖掘社交媒体研究的一个共同挑战就是从嘈杂的数据中提取高质量的信息。文本分类技术在公共卫生问题研究中被广泛地用来区分信息源和提取高质量的信息。例如, T.Botsis 等采用多层次的文本挖掘方法自动分类疫苗不良事件报告系统的报告7;为了从网络新闻中发现疾病爆发的早期迹象, M.Torii 等使用基于互联网的生物监测项目进行文本分类8;Chee 等使用一种机器学习方法,
11、基于在线健康论坛中提取的信息, 将药物分类为 FDA 的观察名单和非观察名单9。已有研究开始关注用户帖子的自动分类问题, 识别贴文中是否包含 ADR 的相关内容。这种分类的动机是社交媒体上大多数药物相关的帖子是与 ADR 无关的, 因此, 过滤掉不相关的帖子是至关重要的。文本过滤就是把文本分为“有关”和“无关”两类。例如, 电子邮件客户端应远离垃圾邮件的过滤;个性化的广告过滤系统阻止用户不感兴趣的广告等10。然而, 过滤来自社交媒体用户生成的 ADR 相关消息并不是一件简单的事情。这些任务充满挑战:用户生成的 ADR 相关信息在社交媒体中是十分稀疏和高度分散的, 而非 ADR 信息是不确定的和
12、局部多样的;相对而言, 社交媒体上大量未标记内容更容易获得, 而手动分类和标记这些大量的 ADR 信息和非 ADR 信息来构建预警系统的代价是十分高昂的。1.2 半监督分类监督分类方法需要人工标注高质量的训练数据集, 大量的标记数据还需要做出可靠的评价才能建立一个准确的分类器。无监督学习可以通过设计自动学习的分类器来处理未标记的数据集, 但这种学习方式的精确度不高, 难以实现满意的效果11。然而, 在社交媒体中用户评论的药物不良反应相关信息通常是局部多样和高度分散的, 而且质量参差不齐, 因而难于筛选。此外, 社交媒体动态更新的环境使得标注的训练数据可能不久之后就过时了。因此, 利用人工方法获
13、取和标记用户生成的大量 ADR 帖子来训练一个分类器是一场脑力和体力的浩劫。解决这类问题的一个方法就是通过半监督学习算法动态地增加训练数据, 基于大多数未标注数据和少量已标注的用户感兴趣的正例来构建分类器。Fung 等12总结了半监督分类方法的特征: (1) 给定的正样本数量很少, 以至于不能代表所有正类数据的特征分布; (2) 正负类数据混杂在未标注的数据中; (3) 没有负样本。由于没有明确给出负样本, 所以设计良好的标签启发式算法, 如模型、特征、内核、相似性功能等从未标注的数据集中识别出正负类数据是解决问题的关键。一般来说, 针对这个问题现有的解决方法可以分为 3 类: (1) 增加可
14、靠的负样本进行训练; (2) 增加可靠的正样本进行训练; (3) 同时增加正负训练样本。增加可靠负样本的方法试图从未标注的数据集中抽取出有代表性的负样本, 然后在给出的正负样本上训练分类器。Yu 等13提出了一种叫做 PEBL (Positive Example Based Learning) 的方法, 利用支持向量机 (SVM) 来构建分类模型。PEBL 首先初始化近似“强负样本”的实例, 然后利用“强负样本”和正样本构造一个初始分类器。然后迭代使用得到的模型来识别更多的负实例, 从而诱导一个能够区分正负类别边界的分类模型。Ko 和 Lam14提出了一种文本分类的样本适应性 (Example
15、 Adaption for Text categorization, EAT) 技术, 从未标注的文件中自动地搜索更多有代表性的正例。该方法包括两个步骤:首先, 从一个未标注的数据集中提取一组潜在的正例;然后, 逐步增加正样的数量, 迭代地产生一组分类, 直到达到局部最大精度水平。EAT 的有效性取决于生成的正类特定特征。然而, EAT 正类的特定特征是一个人工标注的小样本文件, 因而分类器的有效性会高度依赖于所给出这些人工标注的小样本文件质量。虽然用户生成的 ADR 信息比非 ADR 信息更具特殊性, 但这些 ADR 信息中仍然包含着不同的主题, 涉及不同的药品、症状、副作用和疾病等。虽然每
16、一主题都有自己的核心词汇, 但是大量的不同的主题抵消了彼此核心词汇的重要性12。所以, 根据核心词汇很难提取可靠的正负实例。此外, 在半监督分类问题中, 最常用的特征空间往往是高维度的词空间, 由于文本数据的高维特征, 使得半监督分类的性能有所降低。然而, 在已有的研究中很少关注半监督分类的降维问题。1.3 研究机会和目标现有的半监督分类研究, 为从社交媒体过滤用户生成的 ADR 帖子, 提供的支持十分有限。以上分析为我们揭示了一些研究机会: (1) 利用现有的半监督分类研究, 理解利用社交媒体信息进行上市后药品不良反应监测的重要性; (2) 平衡当前药物不良反应检测的技术差距, 开发一个有效
17、的自动分类方法, 从社交媒体过滤药物不良反应相关信息。本研究的目的是设计和研究一种新的方法来识别社交媒体上用户生成的 ADR 帖子。具体而言, 我们使用半监督分类方法开发信息识别的框架, 以便在网络健康社区中监测用户生成的某种药物的消极情感表达, 这种信息可能是发现潜在的药物不良反应的重要信息源。本文提出的方法可以帮助食品药品监管部门和制药公司识别社交媒体上可疑的 ADR 消息, 发现的结果也可以作为预警系统的输入, 防止药物不良反应的进一步发生。2 药物不良反应数据过滤模型本文提出的药物不良反应数据过滤模型旨在开发一个新的过程, 扫描药品相关的网页, 收集大量文本帖子。提出的方法首先整合文本
18、挖掘技术, 从帖子中自动提取重要的文本特征;然后根据少量预先识别的 ADR 相关帖子进行分类训练, 将帖子分为正/负实例。分类过程基于半监督学习方法, 通过应用少量已知的实例 (ADR 帖子) 从大量未标注语料中识别出具有相似文本特征的其他帖子。本研究提出的药物不良反应数据过滤模型如图 1 所示。其中, 文本分类系统建立在 LDA 建模之上, 采用半监督学习增加训练数据, 自动过滤用户生成的帖子。以下各节将对各个过程进行详细阐述。图 1 药物不良反应大数据过滤框架 下载原图2.1 数据收集及处理利用爬虫程序采集社交媒体上的用户生成内容。本研究仅限于对网络健康社区中用户发布的药品相关信息进行分析
19、, 而同样的过程可以延伸到其他社交媒体源, 如微博和在线问答等。开发的解析程序用来从原始网页中提取重要信息, 并将它们存储在关系数据库中。我们从每一个页面中提取以下信息:贴文的标题、文本内容、日期和时间、用户标识符以及被浏览的次数。根据 Gurulingappa 等的标注指南15, 请领域专家为本研究中涉及的 ADR 帖子标注样本。专家对被分配的帖子进行逐条阅读, 判断贴文内容是否与药物不良反应相关。如果一则贴文内容包含有关药物不良反应的表述, 就将该则贴文标注为正例, 否则标注为负例。具体地, 我们从 Web MD 上采集用药者对某种药品评论的相关数据。借鉴 Yang等药物不良反应检测的相关
20、研究16, 基于关键词 Biaxin (克拉霉素) 、Lansoprazole (兰索拉唑) 、和 Actos (艾可拓) 使用爬虫程序采集 Web MD药物讨论版块 2011 年 1 月至 2016 年 10 月之间的 3500 条评论数据。聘请三位医学专业研究生分别对帖子进行独立的筛选和判断, 将帖子标注为 ADR 相关和非 ADR 相关。对文本数据进行预处理。首先, 去除标点、数字、非字母字符和停用词。其次, 提取词干以减少变形或派生词, 从而缩减词汇量和解决数据稀疏问题。2.2 LDA 特征空间建模一个特征空间是一个抽象的空间, 其中每个数据实例是 n 维空间中的一个点, 特征空间的维
21、度是由描述实例特征的数量决定的。为了描述用户 ADR 贴文多样性的特征, 我们需要利用一个大的语料库以实现更全面的覆盖。由于语料库的用户生成内容中包含数十万词汇, 因而面临的最大挑战就是保持原有向量空间语义结构的同时降低特征空间的维度。为此, 我们采用潜在狄利克雷分配 (LDA) 模型在语料库中构建主题空间。通过使用主题向量空间描述一篇文档来代替词向量空间, LDA 模型可以有效地降低文本维数, 而且保持文本的语义结构不变。在本文提出的模型中, 语料库中的每篇文档以一组潜在主题集的混合分布建模, 每个主题又以相应词汇的概率分布建模。设 T 是 LDA 模型中主题的个数, V 是语料库中词汇的数
22、量。LDA 模型生成一篇文档的随机过程描述如下:1) 对于一篇文档 , 它的主题混合函数 是一个以 为参数的狄利克雷先验函数 。这一过程相当于作者决定一篇文章应该包含哪些主题。2) 对文档 中的任意一个词 , 它的主题由多项分布函数 产生。这一过程可以看作是为一个主题指定相应的词汇。参数 是一个 V 维向量, 定义了一个主题使用词汇的多项式分布, 它服从参数为 的狄利克雷分布3) 对主题 进行调节, 根据多项分布 对词汇进行抽样, 这个过程相当于选择相应的词汇来表示一个概念。为了对LDA 模型中的参数 进行估计, 我们需要对整个采集数据集的可能性进行最大化, 例如选择整个语料库 D:然而, 公
23、式 (1) 中的两个积分计算较复杂, 这里我们采用吉布斯抽样算法进行近似处理, 跟其他算法相比, 吉布斯抽样的结果不大可能被困在一个局部极大值里。2.3 利用半监督学习增强训练数据本研究中, 我们的目的是鉴别网络健康社区中用户生成的 ADR 相关的帖子, 将少量已知的正样本 (已标注的 ADR 相关帖子实例) 与网络论坛上的用户评论内容作为候选列表。具体而言, 我们尝试利用小规模已标注的 ADR 相关的帖子识别出大规模语料库中未标记的 ADR 相关的帖子。少量的正样本往往会导致分类的过拟合, 人工标注大规模的训练样本又需要付出高昂的代价。为了解决标注样本训练数据的稀疏性问题, 本文提出的方法是
24、通过半监督学习从未标注的数据集中提取候选的正样本 (ADR 相关帖子实例) 和负样本 (非 ADR 相关帖子实例) , 自动地增加训练数据。因此, 设计了一个标签启发式算法以期能够平滑标注点和未标注点所揭示的内在结构。特征空间模型中, 应用 LDA 模型将整个语料库中的帖子 概括成一些潜在的主题 。公式 (1) 中的参数 通过学习, 可以获得语料库中每个词的相关主题。因此, 可以得到 post-topic 关系和 word-topic 关系, 分别表示为 。同样可以应用贝叶斯法则得到从一个主题 生成贴文 的条件概率:式中, 假设 为一个均匀的先验概率分布, 是根据主题模型得出的主题比例。利用
25、word-topic 关系 , 我们也可以为新加入的帖子 x 推断其潜在的主题。其中 是潜在主题 的先验概率, Z 是归一化因子。基于以下公式可以获得一篇新进入帖子 x 与语料库中贴文的相似性:下面通过一个例子来说明如何计算语料库中帖子 与新进入帖子 x之间的相似性。假设潜在的 4 个主题是, 一篇新入帖子, 标题为“Not sure whats wrong”, 描述了服用克拉霉素制剂后的药物不良反应。在主题模型的学习过程中, 该文档中的每一个词都被分配到其中一个潜在的主题下, 归一化后, 这个文档的主题分布可以表示为一个向量, 这表示该帖与 4 个潜在主题之间的关联强度。相似地, 另一篇新入
26、贴文“Taking Biaxin for Years”, 利用同样的 word-topic 关系依据公式 (3) 可以表示为潜在的主题向量。最后, 我们可以利用公式 (4) 计算两篇贴文“Not sure whats wrong”和“Taking Biaxin for Years”的相似性, 即 0.4*0.6+0.3*0.2+0.3*0.2+0.7*0.7=0.85。为了评价一篇贴文与已标注的正样本的相关性, 我们将所有数据的条件分布都聚集在同一定义域 D 内。式中, D 是已标注的正样本数据集。根据公式 (5) 提取与 D 相关的排名前 M 的候选帖子, 形成候选的正类 (ADR 相关)
27、数据集。采用条件概率作为预测标注置信度来估计未标注数据与已标注样本的相似性。伪码 1 详细描述了如何从未标注的数据集中提取更多候选的正样本和负样本的过程。伪码 1:2.4 构建分类器提取出的候选的正样本和负样本并不是完全可靠的。特别是当提取了太多的候选样本时, 可能会产生过拟合现象, 而使分类性能退化。因此, 在构建分类器时, 我们需要选择更可靠的正样本和负样本, 从而更好地满足正类和负类的分布条件。候选的负样本集 CN中包含不同的主题, 由于主题的多样性, 使得前面所讨论的方法从未标注的数据集中提取可靠的样本并不十分满足条件。因此, 问题的关键是减少候选的负样本集 CN中主题的多样性。针对这
28、个问题的处理方式是将 CN划分成更小的簇, 每个簇代表较少的主题。我们将通过两个独立的步骤解决这个问题, 即提纯候选的负样本和迭代选择可靠的正样本来构建分类器。2.4.1 提纯候选的负样本集将候选的负样本集CN随机分成更小的聚类簇, 将每个簇和已标注的正样本训练集 D 作为输入, 构建分类器来提纯簇中可靠的负样本。分类器的构建思想是以局部方式鉴别 CN中可靠的负样本, 这样每个分区都将集中于一个特征相关的小规模集合。许多现有的聚类算法可用于将 CN进行划分。鉴于 k-means 算法的简单和流行, 本文选用该算法进行聚类。提纯候选的负样本集的详细过程如伪码 2 所示。伪码 2:采用 Rocch
29、io 算法构造正负原型主题向量, 该算法容易实现, 计算简单, 常被用于实现分类。2.4.2 迭代选择可靠的正样本将所有可靠的负样本数据集RN提取出来后, 我们开始从候选的正样本数据集 CP中选择可靠的正样本。整个选择过程的伪码描述如下所示。通过不断地剔除 CP中的噪声数据, 直到获得更可靠的正样本。通过合并 D 和不断更新的正样本数据集, 获得可靠的正样本数据集 RP。最后, 分类器 Cm的构建通过不断地运行不同容量的 RP实现, 基于动态更新训练正样本的局部最大 F 值实现分类器的构建。迭代选择可靠的正样本构建分类器的过程如伪码 3 所示。伪码 3:鉴于直推式支持向量机在解决文本分类问题上
30、的流行和出色性能, 本文选择支持向量机来构建分类器。3 实验及结果分析通过从 Web MD 上采集的药品评论数据验证提出的框架。以 Biaxin (克拉霉素) 和 Lansoprazole (兰索拉唑) 作为实验数据源, 使用爬虫程序采集 Web MD 药物讨论版块 2011 年 1 月至 2016 年 10 月之间的评论数据。聘请两位医学专业研究生分别对帖子进行独立的筛选和判断, 将贴子标注为 ADR 相关和非 ADR 相关。随机选择 40%的 ADR 帖子作为正样本的训练实例, 混合选择余下的 40%的 ADR 帖子和 40%的非 ADR 帖子作为未标记样本。保持相同比例的分配, 将余下的
31、 20%的 ADR 帖子和随机选择的 20%的非 ADR 帖子创建测试集。表 1 显示实验数据集的组成。表 1 实验数据集的组成 下载原表 表 1 实验数据集的组成 下载原表 3.1 参数调整本文提出的药物不良反应数据过滤方法需要确定 3 个关键参数值:T (主题数量) , k (聚类簇数) 和 (相关度阈值的增量) 。通过使用训练样本作为调整集进行初步运行来确定合适的参数值。研究中采用 LDA 模型构建语料库的主题空间, 同时对 LDA 生成的低维表示进行半监督分类方法的训练。应用 LDA 模型的核心假设是在训练之前就需要知道主题变量 T 的维度。因此, 应用不同的主题数量进行实验, 发现当
32、主题数 T 小于35 时, 所提方法的性能随着主题数 (T) 的增加而增加;当 T 设置为 35 时, 所提方法的执行效果最佳;当 T 大于 35 时, 所提方法的性能对于主题数量的改变不太敏感。结果表明, 通过应用 LDA 模型解决降维问题得到的低维语义表示, 仍然可以有效地表示用户生成 ADR 帖子的种类特征。通常, 非 ADR 帖子 (负面实例) 比 ADR 帖子 (正面实例) 包含更加多元化的讨论主题。通过使用 k-means 算法聚类, 提纯候选的负类数据集, 这样就能够以局部的方式识别和去除候选的负类数据集 CN中的噪声数据。本文提出方法的性能对 k 值的选择并不敏感, 只需 k 值满足不是太小的基本要求。在 k 值从 2 增加到 30 的过程中, 我们发现当 k 大于 10 时, 所提方法的性能对 k 值的变化影响较小。为了确保能够从未标注的数据集中提取出更多可靠的正面实例, 本文提出了通过迭代地运行不同大小的 RP (可靠的正例数据集) 这一个特定的分类方案来构造最终的分类器。引入参数 来控制迭代收敛过程中相关度阈值的变化。较小的值将使相关度阈值的变化较慢 , 算法需要较长的收敛时间 ;较大