AiWin2019互联网虚假新闻检测挑战赛

一、问题描述

互联网虚假信息正在威胁着全球互联网的安全,其在规模、传播速度、造假手段三个方面呈现快速增长。2018年顶级国际期刊《科学》指出,在2016年美国总统大选期间样本选民平均每人每天要接触4篇假新闻;要传播至1500个选民,假新闻的速度是真实新闻的6-20倍。研究认为互联网虚假新闻甚至影响了英国脱欧投票和2016年美国总统大选的结果。2018年底陆续出来的DeepFake造假技术(图像视频换脸)和DeepNude造假技术(自动生成裸体照片)给各国政府带来了恐慌。国际咨询公司Gartner预测,到2020年,互联网虚假新闻将面临泛滥之势,基于人工智能技术的造假能力将远超于虚假检测的能力。 这种现象引起了各国政府和社会群体的空前关切和担忧,其对国家安全、个人与企业声誉和媒体信任度带来了严重冲击。为此,2019年6月,美国国会召开听证会,讨论DeepFake(深度伪造)技术的风险和对策。呼吁国家加强虚假信息检测技术的研发,以及虚假信息治理执法。2019年8月,人民网舆情中心也发出了同样的呼吁,目前辟谣滞后造成“空窗期”内谣言广泛传播,造假手段不断更新让人工审核力不从心,急需开展人工智能技术和人工审核结合的联合辟谣。 本次虚假新闻检测由中国科学院计算技术研究所,以及北京智源人工智能研究院共同举办,旨在促进互联网虚假新闻检测技术的发展,营造清朗的网络空间。

二、数据集内容

训练集有38,471条数据,其中真实新闻19,186条,虚假新闻19,285条。初赛测试集共4,000条,复赛测试集3,902条,真假新闻比例与训练集基本一致。每条数据有id、text、label三个字段,其中1代表正例 (真),0代表负例(假)。

数据样例:train.csv

idtextlabel
1cdf439752d339b45fc848984c609899【男子捏造“周浦滴滴司机砍死乘客”谣言被刑拘称只是觉得好玩】0
d3aa07cc41ab42fa5c8718bd655abb1c【善良的大桥】金沙江大桥在没车行走的时候自我坍塌,这桥通人性,未伤一车一人,太善良了。应该当选2013年度《感动中国》特别致敬者。(by夏骏)1
e940e98292b76024dfbcbcff378c9d2f幼儿园都发通知了,家长们注意啦:现在得白血病的小孩越来越多,妇幼保健院提示您,请不要给宝宝喝爽歪歪和有添加剂的牛奶饮料,告诉家里有小孩的朋友,旺仔牛奶、可口可乐、爽歪歪、娃哈哈AD钙奶、未来星、QQ星、美汁源果粒奶优菠萝味的。都含有肉毒杆菌。现在紧急召回。请转发扩散!!!1

引用要求

@misc{dataset_538556,
    title = { 智源&计算所-互联网虚假新闻检测挑战赛数据集 }
    author = { KOTO },
    howpublished = { \url{https://www.heywhale.com/mw/dataset/5e096a422823a10036b10a81} }
    year = { 2019 }
}

数据集版权许可协议

CC-BY-NC 署名-禁止商用

三、解决方案样例

解决方案

BERT(Bidirectional Encoder Representations from Transformers)是一种基于 Transformer 架构的预训练语言模型,其核心优势在于:

  • 双向上下文建模:通过自注意力机制(Self-Attention)同时分析文本中每个词与前后所有词的关系,捕捉长距离依赖。
  • 预训练任务:通过大规模无监督语料库训练,学习通用的语言表示能力(如完形填空任务 Masked Language Model 和句子关系任务 Next Sentence Prediction)。

流程

虚假新闻检测的流程如下:

(1) 输入文本预处理

  • 分词:将新闻文本分割为子词(Subword),例如使用 BERT 的 WordPiece 分词器。
  • 添加特殊标记:在文本开头添加 [CLS] 标记(用于分类任务),结尾添加 [SEP] 标记。
  • 构建输入格式:将分词后的文本转换为 input_ids(词索引)、attention_mask(注意力掩码)和 token_type_ids(区分句子类型)。

(2) BERT 编码

  • 嵌入层:将 input_ids 转换为词向量(Word Embedding)、位置向量(Position Embedding)和段落类型向量(Segment Embedding)。
  • Transformer 编码层:通过多层 Transformer 块进行编码,每层对输入文本进行双向特征提取,最终输出每个词的上下文相关向量表示(Contextual Embeddings)。

(3) 分类头(Classification Head)

  • 提取 [CLS] 标记的向量:该向量被设计为整个输入文本的聚合表示。
  • 添加全连接层:将 [CLS] 向量输入一个分类器(通常是一个简单的线性层 + Softmax),输出虚假新闻的概率(二分类:真/假)。

为什么 BERT 适合虚假新闻检测?

  1. 语义理解:BERT 能捕捉文本中的隐含语义、情感倾向和逻辑矛盾(例如虚假新闻中常见的夸张表述或前后不一致)。
  2. 上下文敏感:虚假新闻可能通过局部真实信息误导读者,BERT 的双向建模能力可识别上下文中的异常关联。
  3. 迁移学习:预训练模型已具备通用语言理解能力,只需少量标注数据微调(Fine-tuning)即可适配具体任务。

微调(Fine-tuning)过程

  1. 数据准备:标注好的虚假新闻数据集(文本 + 标签)。
  2. 模型调整:在预训练 BERT 模型顶部添加分类层,冻结或微调底层参数。
  3. 损失函数:通常使用交叉熵损失(Cross-Entropy Loss)优化分类结果。
  4. 训练:通过反向传播更新模型参数,使其适应虚假新闻的特征模式。

实际应用中的优化方向

  • 处理长文本:BERT 的输入长度限制为 512 个词,需对长新闻截断或分段处理(如使用滑动窗口)。
  • 多模态融合:结合文本之外的元数据(如发布时间、作者信息)或图片/视频内容。
  • 对抗样本防御:针对虚假新闻制造者可能故意添加的干扰词设计鲁棒性策略。

使用Bert预训练模型对虚假新闻的文本进行检测,训练了两个epoch后,线下有效的f1值98.71%(训练数据集句子相似度太高,划分的验证集在训练集也存在高度相似的句子),提交线上初赛测试集的分数为88.79%。

运行环境

numpy
pickle
scikit-learn
PyTorch 1.0
matplotlib
pandas
pytorch_transformers=1.1.0

源码结构

数据集文件目录:pybert/dataset

模型文件目录:pybert/pretrain/bert/base-chinese

主要配置信息:pybert\configs\base.py

BASE_DIR = Path('pybert')
config = {
    'raw_data_path': BASE_DIR / 'dataset/train.csv',
    'test_path': BASE_DIR / 'dataset/test_stage1.csv',

    'data_dir': BASE_DIR / 'dataset',
    'log_dir': BASE_DIR / 'output/log',
    'writer_dir': BASE_DIR / "output/TSboard",
    'figure_dir': BASE_DIR / "output/figure",
    'checkpoint_dir': BASE_DIR / "output/checkpoints",
    'cache_dir': BASE_DIR / 'model/',
    'result': BASE_DIR / "output/result",
    'bert_vocab_path': BASE_DIR / 'pretrain/bert/base-chinese/vocab.txt',
    'bert_config_file': BASE_DIR / 'pretrain/bert/base-chinese/config.json',
    'bert_model_dir': BASE_DIR / 'pretrain/bert/base-chinese',
    'xlnet_vocab_path': BASE_DIR / 'pretrain/xlnet/base-cased/spiece.model',
    'xlnet_config_file': BASE_DIR / 'pretrain/xlnet/base-cased/config.json',
    'xlnet_model_dir': BASE_DIR / 'pretrain/xlnet/base-cased'
}

命令

运行 python run_bert.py --do_data 对数据进行预处理.
运行 python run_bert.py --do_train --save_best --do_lower_case 进行模型训练.
运行 run_bert.py --do_test --do_lower_case 进行新数据预测.

训练

[Training] 1475/3848 [==========>...................] - ETA: 17:24:51  loss: 0.0004 

Epoch: 2 -  loss: 0.0363 - acc: 0.9916 - f1: 0.9916 - valid_loss: 0.0679 - valid_acc: 0.9871 - valid_f1: 0.9871 
Epoch 2: valid_f1 improved from 0.93659 to 0.98713

四、参考资料

GitHub – deping-1/2019-false-news-detection-challenge: 智源研究院&中科院计算所-互联网虚假新闻检测挑战赛

五、获取案例套件

文件包大小:3,000 MB

需要登录后才允许下载文件包。登录

发表评论