精华内容
下载资源
问答
  • 短文本
    千次阅读
    2021-01-26 15:37:25

    背景

    由于目前没有公开的免费的中文短文本摘要数据集,正好在之前的项目中有收集过这样的数据。现在把之前整理的数据公开,所有人都可以免费下载使用,希望能成为一个有用的中文短文本摘要数据集。

    英文名称

    Chinese Short Text Summarization Dataset

    收集方式

    数据来源于新浪微博主流媒体发布的微博。
    例如:
    微博示例一
    微博示例二
    微博示例三
    如上的三条微博所示中,红框中的文本作为短文本的摘要,其他的内容作为短文本的内容。

    数据量

    在这个版本中,一共 679898 条数据,分为两个文件:

    文件名称 说明
    train_text.txt 短文本的内容,约100-200字
    train_l
    更多相关内容
  • 认为因短文本具有特征稀疏性和高度冗余性,微博短文本的预处理及学习方法研究已经成为微博信息挖掘及应用的关键,并在许多方面有着非常重要和广泛的应用。重点分析微博短文本的特性,并对微博短文本的预处理和学习方法...
  • 为了有效提取极短文本中的关键特征信息,提出了一种基于支持向量机的极短文本分类模型。首先对原数据进行数据清洗并利用jieba分词将清洗过的数据进行处理;再将处理后的数据存入数据库,通过TF-IDF进行文本特征的...
  • 针对短文本命名实体识别这项紧缺任务,提出了一种面向短文本的快速有效的命名实体识别方法。该方法主要分成三步:第一步,针对短文本表达不规范特性对命名实体识别的干扰,采取去干扰字符,化繁为简等规范化操作。第二步,...
  • 【短文本相似度】传统方法BM25解决短文本相似度问题.pdf
  • 针对短文本结构短小、语义不足、难以建模的特点,提出一种利用改进频繁词集进行短文本特征扩展的方法.通过计算单词集的支持度和置信度,挖掘出具有共现关系和类别同向关系的频繁二元词集,并在挖掘出的频繁词集基础上...
  • 在以往的Attention模型中, 只采用了Bidirectional-RNN, BRNN对上下文信息是有效的, 但是无法提取文本的高维特征, 所以引入了CNN. 因为基于矩阵变换的Attention模型无法对CNN抽取的特征进行表征, 所以采用全连接神经...
  • 该数据集为大型中文短文本摘要数据集。 Application form.pdf LCSTS A Large-Scale Chinese Short Text Summarization Dataset_datasets.txt
  • 以知识为动力的深度短文本分类
  • 基于nltk实现对英文短文本的名词抽取,规则可以自己制定。
  • 基于深度学习的相似语言短文本的语种识别方法.pdf
  • 基于情感倾向和SVM混合极短文本分类模型
  • 针对中文短文本冗余问题,提出了有效的去重算法框架。考虑到短文本海量性和简短性的特点,以及中文与英文之间的区别,引入了Bloom Filter、Trie树以及SimHash算法。算法框架的第一阶段由Bloom Filter或Trie树进行...
  • 该方法融合了微博转发数、评论数、点赞数等多个关键指标来度量微博短文本特征的重要性。同时,引入层次分析技术,改进了传统的tf-idf特征计算方法,并利用经典文本聚类算法进行实验。实验结果表明,改进后的短文本...
  • 微博数据是短文本事件探测的典型数据源,由于微博内容的多样性、稀疏性和碎片性,现有事件探测方法使用的数据源单一且噪声较大,在时空信息的发现上粒度过大,导致结果的准确性差。因此,在事件探测算法上提出动态上...
  • 以知识为动力的深度短文本分类 为了衡量知识的重要性,采用知识驱动的注意力的短文本分类法(STCKA)引入了注意机制,利用对短文本的概念(CST)的关注和对概念集的概念(C-CS)的关注来获取权重两个方面的概念。 它...
  • 云计算-短文本与词语的相关度计算与评测方法.pdf
  • AI人工智能技术分享 知识图谱技术及应用介绍-理解短文本 共211页.pdf
  • 传统的话题发现研究主要针对于长文本及新闻数据集,大规模短文本具有稀疏、无结构、多噪等特点,传统方法很难有效发现话题。...此外,CW-WGN消耗的时间最少,能够有效地从实际大规模短文本上发现话题。
  • 中文短文本中实体识别与链接的联合模型
  • 赛题介绍 面向中文短文本的实体链指,简称 EL(Entity Linking),即对于给定的一个中文短文本(如搜索 Query、微博、对话内容、文章/视频/图片的标题等),EL 将其中的实体与给定知识库中对应的实体进行关联。...

    ©PaperWeekly 原创 · 作者|罗志鹏

    学校|深兰北京AI研发中心

    研究方向|物体检测

    全国知识图谱与语义计算大会(CCKS 2020)11 月 12 日至 15 日在江西南昌举行,CCKS(China Conference on Knowledge Graph and Semantic Computing)由中国中文信息学会语言与知识计算专委会定期举办的全国年度学术会议。CCKS 已经成为国内知识图谱、语义技术、语言理解和知识计算等领域的核心会议。

    CCKS 2020 举办的各项挑战赛公布了最终结果,来自深兰科技北京 AI 研发中心的 DeepBlueAI 团队斩获了 3 项冠军和 1 项亚军,并获得了一项技术创新奖。我们可以通过这篇文章了解下 DeepBlueAI 团队在『CCKS 2020:面向中文短文本的实体链指任务』赛题中的解决方案。

    赛题介绍

    面向中文短文本的实体链指,简称 EL(Entity Linking),即对于给定的一个中文短文本(如搜索 Query、微博、对话内容、文章/视频/图片的标题等),EL 将其中的实体与给定知识库中对应的实体进行关联。

    此次任务的输入输出定义如下:

    输入:中文短文本以及该短文本中的实体集合。

    输出:输出文本此中文短文本的实体链指结果。每个结果包含:实体 mention、在中文短文本中的位置偏移、其在给定知识库中的 id,如果为 NIL 情况,需要再给出实体的上位概念类型。

    团队成绩

    评价方式采用 F-1 分值,在最终榜单上我们 f1 达到了 0.89538 与第一名仅相差0.00002。

    B 榜成绩:

    A 榜成绩:

    比赛难点

    针对中文短文本的实体链指存在很大的挑战,主要原因如下:

    1. 口语化严重,导致实体歧义消解困难;

    2. 短文本上下文语境不丰富,须对上下文语境进行精准理解;

    3. 相比英文,中文由于语言自身的特点,在短文本的链指问题上更有挑战。

    引言

    实体链接是一项识别文本中的实体指称(指文本被识别到的命名实体)并将其映射到知识库中对应实体上的任务 [1]。

    对于一个给定的实体链接任务,首先需要使用命名实体识别方法和工具识别文本中的实体,然后对每个实体指称利用候选实体生成技术生成对应候选实体集,最后利用文本信息和知识库的信息消除候选实体的歧义得到相匹配实体,如果最没有相匹配实体则将该实体指称标记为 NIL(代表没有对应实体)。

    一般来讲,实体链接包括三个主要环节:命名实体识别、候选实体生成、候选实体消歧。

    CCKS 2020 任务,对比 2019 年任务 [2] 去掉了实体识别,专注于中文短文本场景下的多歧义实体消歧技术,增加对新实体(NIL 实体)的上位概念类型判断,所以 CCKS 2020 任务可以分成两个子任务,分别为多歧义实体消歧和 NIL 实体类型判断。

    针对实体消歧任务我们采用了基于 BERT [3] 的二分类方法,对每一个候选实体进行预测,然后对预测的概率进行排序,由于数据集中包含 NIL 实体,我们将 NIL 实体也作为候选实体参与模型训练和概率排序,进而完成消歧任务。

    对于 NIL 实体类型判断任务提出了基于问答的 NIL 实体类型判断模型,模型通过构建问句并依据已知实体信息构建上下文,有效的引入短文本中已知实体的知识库信息,额外信息的引入能够显著提升了模型的性能。

    实体消歧任务

    实体消歧主要是对于给定的实体指称,利用候选实体生成技术得到相应的候选实体集,然后在利用实体消歧模型找到真正对 应的那个实体。如图 1 所示,利用短文本中的实体指称,可以通过候选实体生成的方式得到候选实体集合,然后利用候选实体的描述信息进行实体消歧的得到与实体指称相对应的实体,如果找不到,则用 NIL 表示。

    ▲ 图1 实体消歧数据样例

    实体描述文本

    知识库中实体的信息为结构化信息,如下所示:

    {"alias": ["承志"], 
     "subject_id": "10005", 
     "data": [
         {"predicate": "摘要", "object": "爱新觉罗·承志是辅国公西朗阿之子。"}, 
         {"predicate": "义项描述", "object": "爱新觉罗·承志"}, 
         {"predicate": "标签", "object": "人物、话题人物、历史"}], 
     "type": "Person", "subject": "爱新觉罗·承志"
    }

    为了方便处理,我们将“predicate”与“object”相连得到描述文本。

    候选实体生成

    候选实体生成最常用的方法是基于字典的方法 [4,5],这种方法需要根据给定的知识库构建名称字典,字典的键就是实体的名字,而值则是这个名字所对应的所有的具有相同名字的实体。

    对于每个实体指称去检索字典的键,如果字典的键符合要求,则将该键对应的值中所有的实体都加入到候选实体集中,其中判断字典的键是否符合要求通常的做法是采用精确匹配的方式,只有当实体指称和字典键彼此完全匹配的情况下才加入到候选实体集。

    基本流程为先通过知识库中的实体名字以及实体别称构建实体字典,然后采用精确匹配的方式匹配得到候选实体。

    实体消歧

    现在比较流行的消歧模型常用的方案是提取实体所在短文本的上下文特征,以及候选实体描述文本的特征,在将这两类特征经过全连接网络,最后进行二分类 [6,7]。

    这类方法对于长文本很有效,但是对于短文本的消歧效果不是很好,主要是因为短文本内容较短,上下文太少,难以提取有效的上下文特征,而候选实体的描述文本过长,这种情况造成传统的实体消歧模型效果并不理想。考虑到短文本的特性,我们采用了基于 BERT 和实体特征的消歧模型。

    ▲ 图2 实体消歧模型图

    模型图如图 2 所示,模型采用的思想主要是为利用 BERT 模型 [CLS] 符号的输出向量,以及实体指称所在开始位置的向量和结束位置的向量,经过全连接层,然后经过 sigmoid 进行二分类。

    其中 [CLS] 符号的输出向量可以用来判断短文本和候选实体的描述文本是否处在同一语义场景,实体位置的向量可以代表实体的上下文特征。模型的输入为短文本以及候选实体的描述文本,形式为:[CLS] 短文本 [SEP] 候选实体描述文本 [SEP]。

    优化点:

    1. 动态负采样:不同于以往在训练前选取固定的负样本,模型采用动态负采样技术,在模型训练中每个 batch 选取不同的负样本参与训练,通过这种方式能够极大的提高模型的泛化能力。

    2. NIL 排序:由于增加了 NIL 实体,对NIL 实体也作为候选实体参与训练和排序。

    3. 模型融合:采用了百度 ERNIE-1.0 [8] 和 Roberta-wwm [9] 模型两个预训练模型,并采用交叉验证的方式对最后的结果进行平均融合。

    实体类型判断

    对于实体类型判断任务大家通用的思路也就是 baseline 思路为,通过提取 mention 位置的向量,然后经过全连接分类,得到实体的类型。

    这种方案的最大缺点就是仅仅用短文本的信息去对 NIL 实体进行类型分类,没有利用到已知实体信息的特征,为了利用上其他不是 NIL 实体的信息,我们构建了基于问答的实体类型判断模型。模型基于问答的思想,通过构建问句和上下文将已知实体的信息输入到模型中,来提升实体类别判断的性能。

    {"text_id": "456", 
     "text": "神探加杰特,和彭妮长得一模一样,竟想要霸占泰龙的位置", 
     "mention_data": [
         {"kb_id": "283448", "mention": "神探加杰特", "offset": "0"}, 
         {"kb_id": "NIL_VirtualThings", "mention": "彭妮", "offset": "7"}, 
         {"kb_id": "NIL_VirtualThings", "mention": "泰龙", "offset": "21"}, 
         {"kb_id": "88355", "mention": "位置", "offset": "24"}]
    }

    对于上述例子,其中实体有 “神探加杰特” 、“彭妮”,“泰龙”,“位置” 4 个实体,需要预测类型的 NIL 实体有“彭妮”,“泰龙”,对于实体 “彭妮”,“泰龙”,“彭妮” 根据命名习惯很容易判断为类型为 Person 类型, 就算根据短文本的语义分析判断“彭妮”依旧是 Person 类型,同样模型学习到的也是 Person 类型。而“彭妮”的真实类型为 VirtualThings 类型,可以看出在没有其他额外信息的情况下,很难准确预测“彭妮”的类型。

    当前任务为:对于输入文本 ,其中存在 NIL 实体集合 { },求 NIL 实体 对应的类型 。在经过实体消歧后,已经知道部分实体的知识库信息和类型信息,那么任务可以变为:对于输入文本 ,其中存在实体集合 { },已知实体 的知识库信息 ,其中知识库信息 会包含对应的类型信息 ,求出 NIL 实体 对应的类型 。对于改变后的任务主要是利用上已知实体的信息,对于这种任务我们采用问答的形式,对于上述例子根据短文本以及 mention 构建问句为两个:

    Question1:神探加杰特,和彭妮长得一模一样,竟想要霸占泰龙的位置,彭妮的类型是什么?
    Question2:神探加杰特,和彭妮长得一模一样,竟想要霸占泰龙的位置,泰龙的类型是什么?

    根据已知的实体信息构建相关上下文为:

    Context:神探加杰特的类型是作品,描述为 1983--1985 年美国播出的动画片,位置类型为其他,描述为词语释义

    通过上下文信息,可以得知“神探加杰特”为一个动画片,而不是电视剧电影等其他作品,那么模型则可以轻易学出,动画片中的人物为 VirtualThings 类型。本文将已知实体的信息分为实体类型和实体的描述(实体的描述仅仅使用了知识库信息中“义项描述”这一项),后续会对此进行实验分析。

    具体任务为,根据 question 和 context 去做多分类来识别问句中要识别 NIL 实体的类型,模型基于 BERT 模型,输入形式为 [CLS]question[SEP]context[SEP],对于上述例子模型图如下,模型利用 BERT[CLS] 符号的输出向量,以及实体所在的开始位置向量和结束位置向量,经过全连接层,然后经过 softmax 激活函数进行多分类。

    ▲ 图3 类型判断模型图

    优化点:

    1. 对抗学习:在类型判断模型训练过程中,加入了 FGM [10] 对抗训练,通过在 word embedding 上添加扰动,提升模型鲁棒性和泛化能力。

    2. 模型融合:采用了百度 ERNIE-1.0 和 Roberta-wwm 模型两个预训练模型,并采用交叉验证的方式对最后的结果进行平均融合。

    实验

    实体消歧任务

    在实体消歧实验阶段,我们对 NIL 实体类型不做识别,下述试验结果没有加入 NIL 类型的评价。其中实验中参数配置如下:batch size 为 32,针对不同层采用不同的学习率,其中 BERT 模型初始学习率为 1e-5,其他模型参数初始学习率为 5e-4,为了更好地收敛到最优,采用了基于指数衰减的学习率衰减策略,每轮衰减为原来的 0.5 倍。

    NIL 实体判定策略:针对某个实体,有三种情况会判定为 NIL 实体,1. 没有候选实体 2. 候选实体得分排序,最高得分是NIL,3. 候选实体得分排序,最高得分是不是 NIL,但是得分小于 0.05。

    编号

    模型

    F1

    1

    Model-static- neg2-ernie

    0.7376

    2

    Model-dyanmic- neg2-ernie

    0.7415

    3

    Model-dyanmic- neg1-ernie

    0.7402

    4

    Model-dyanmic- neg3-ernie

    0.7393

    5

    Model-dyanmic- neg2-bert

    0.7380

    6

    Model-dyanmic- neg2-roberta

    0.7383

    我们对以下几个维度进行了实验分析,1. 动态负采样与静态负采样 2.负采样的个数  3.不同预训练模型。实验结果如表 1 所示,static 代表静态负采样,dyanmic 代表动态负采样,neg2 代表负采样的个数为 2。

    对比模型 1 与模型 2,动态负采样对比静态负采样有着巨大的提升,静态负采样之所以不好是没有利用上更多负样本的信息,对比模型 2、3、4 可以得出,负样本个数并不是越多越好,当负样本太多时会造成类别不均衡导致最终性能下降,并且负样本增多也会导致数据变大,训练时间增加,综合考虑本文最终采用 2 个负样本。

    对比模型 4、5、6 可以看出不同的预训练模型对最终的结果也有着很大的影响,由于数据集由百度提供,数据中知识库来源大多来自百度百科,所有百度开源的 ERNIE 模型性能最佳,roberta 次之,综合考虑最终本文采取的方案为 ernie 模型与 roberta-wwt 融合。融合方案比较简单,采用交叉验证求平均的方式。

    实体类型判断任务

    对于实体类型判断任务,我们采用准确率作为评价标准,在实验设计方向本文主要设计了一下几个方面的对照实验,模型1:采用 baseline 思路,将实体位置的向量特征输出分类,模型2:仅仅加入已知实体的类型信息,不加入其他信息,模型3:加入简短的实体描述信息,模型4:即加入实体类型信息,又加入实体描述信息。模型5:加入对抗训练。

    编号

    模型

    准确率

    1

    Model-baseline

    0.8628

    2

    Model-type

    0.8793

    3

    Model-desc

    0.8782

    4

    Model-type+desc

    0.8800

    5

    Model- type+desc+FGM

    0.8819

    由模型 1、2、3、4 可以发现,相比于 baseline 加入已知实体的信息能够显著提升模型的性能,说明已知实体的信息对短文本 NIL 实体的类别判断有着很大的帮助。对比模型 2 和模型 3 可以发现,已知实体的类别信息更为重要,这可能与仅仅采用了实体简短描述信息而没有使用实体的全部描述信息。

    从模型 4 可以得出将实体的类型信息与描述信息相结合则能够达到更好的效果。从模型 5 可以看出加入对抗训练能够提升模型的泛化能力,对最终的结果也有很大的提升。

    实体链接结果

    最终将两个模型合在一起得到最终的实体链接效果表如下所示,其中测试集 A 和测试集 B 为多个模型交叉验证求平均的结果。

    编号

    模型

    F1

    1

    开发集

    0.88010

    2

    测试集A

    0.89193

    3

    测试集B

    0.89538

    总结

    我们在 2020(全国知识图谱与语义计算大会)举办的“面向中文短文本的实体链指”评测任务中取得了 A 榜第一名的成绩,B 榜第二名的成绩,其中基于问答的实体类型判断模型巧妙的利用到了已知实体的信息,此模型对后续此类型的任务提供了借鉴意义。

    但是本文依旧有些地方需要改进,如知识库给定的数据具有一定的结构信息,直接连在一起当文本使用,会损失这部分特征,可以设计更好的网络来利用这部分结构化信息。

    参考文献

    [1] Rao, Delip, Paul McNamee, and Mark Dredze. Entity linking: Finding extracted entities in a knowledge base[J]. Multi-source, multilingual information extraction andsummarization. Springer, Berlin, Heidelberg, 2013. 93-115

    [2] https://www.biendata.xyz/competition/ccks_2019_el/

    [3] Devlin J, Chang M W, Lee K, et al. BERT:   Pre-training of Deep Bidirectional Transformers for Language Understanding[J]. 2018.

    [4] Zhang W, Su J, Tan C L, et al. Entity Linking Leveraging Automatically Generated Annotation[C]. COLING 2010, 23rd International Conference on Computational Linguistics, Proceedings of the Conference, 23-27 August 2010, Beijing, China. DBLP, 2010.

    [5] Zhang W, Sim Y C, Su J, et al. Entity Linking with Effective Acronym Expansion, Instance Selection and Topic Modeling[C]. IJCAI 2011, Proceedings of the 22nd International Joint Conference on Artificial Intelligence, Barcelona, Catalonia, Spain, July 16-22, 2011. AAAI Press, 2011.

    [6] Chen Z, Ji H. Collaborative Ranking: A Case Study on Entity Linking[C]. Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing,  EMNLP 2011, 27-31 July 2011

    [7] Pilz A, Gerhard Paaß. From names to entities using thematic context distance[C].  Acm Conference on Information & Knowledge Management. ACM, 2011.

    [8] Sun, Yu, et al. "Ernie: Enhanced representation through knowledge integration." arXiv preprint arXiv:1904.09223 (2019).

    [9] Cui, Yiming, et al. "Revisiting Pre-Trained Models for Chinese Natural Language Processing." arXiv preprint arXiv:2004.13922 (2020).

    [10] Miyato, Takeru, Andrew M. Dai, and Ian Goodfellow. "Adversarial training methods for semi-supervised text classification." arXiv preprint arXiv:1605.07725 (2016).

    更多阅读

    #投 稿 通 道#

     让你的论文被更多人看到 

    如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

    总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

    PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

    ???? 来稿标准:

    • 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

    • 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

    • PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

    ???? 投稿邮箱:

    • 投稿邮箱:hr@paperweekly.site 

    • 所有文章配图,请单独在附件中发送 

    • 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

    ????

    现在,在「知乎」也能找到我们了

    进入知乎首页搜索「PaperWeekly」

    点击「关注」订阅我们的专栏吧

    关于PaperWeekly

    PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

    展开全文
  • 短文本、多标签、机器学习分类算法,包含代码,配置环境说明,使用说明。短文本、多标签、机器学习分类算法,包含代码,配置环境说明,使用说明。短文本、多标签、机器学习分类算法,包含代码,配置环境说明,使用...
  • 各部分详解印刷页面和短文本阅读 目录 - 关于项目 该项目是计算机视觉部分,旨在使用 Tesseract OCR 读取打印页面和短文本。 它需要输入图像,并使用算法将图像转换为文本。 它在打印页面和短打印文本上提供正确的...
  • 摘要:《无尽武道》是一部爱情类的小说,作者是穿越梦竹,小说仍在连载中,连
  • 文本卷积神经网络模型在短文本多分类中的应用.pdf
  • 面向变异短文本的快速聚类算法.doc
  • 短文本的双向术语模型
  • 这其实是一个短文本语义匹配的任务。我们会把用户输入的问题“什么是省内流量?”依次与库中的三个问题进行相似度分数的计算(0-1)。最后根据相似度由高到低排序。那么如何算出这个文本相似度以及如何把相似度算的...

    目录

    一、短文本语义相似度匹配的应用场景

    1、背景介绍(举例说明)

    2、文本相似度的应用

    二、文本语义相似度技术拆解:语义表示和训练模式

    1、语义表示

    2、SimNet框架

    3、两个训练模式:pointwise  和 pairwise  

    三、使用EasyDL通过BOW算法网络训练模型​​​​​​​


    一、短文本语义相似度匹配的应用场景

    1、背景介绍(举例说明)

    问题:在百度知道场景下,如何根据用户搜索语句推荐相似问题及其答案?

    问题描述:用户在百度知道中,搜索一个问题:什么是省内流量?接着我们会把词问题与库中的问题进行匹配,计算相似度并且进行排序。假设库中有三个问题可以进行匹配,分别是:请问省内流量咋回事?省内流量在天津市里能用吗?天津省内流量在河北唐山能用吗?这三个句子会分别和“什么是省内流量?”进行相似度的计算并得到分数,并且从高到低进行排序。最后会筛选出相似度分数最高的语句,这里以“请问下省内流量咋回事?”为例,假设此句与用户搜索的问题句子的相似度是最高的,我们就会把这个问题句子以及这个问题句子的答案推荐给用户,让用户参考其回答。这其实是一个完整的“问题搜索--匹配排序--推荐答案”的过程。

    其中最关键的部分在于匹配排序。那么如何进行排序?这其实是一个短文本语义匹配的任务。我们会把用户输入的问题“什么是省内流量?”依次与库中的三个问题进行相似度分数的计算(0-1)。最后根据相似度由高到低排序。那么如何算出这个文本相似度以及如何把相似度算的更加的准确,这就成为了关键。

    2、文本相似度的应用

    文本相似度在各种产品应用场景中都有普及,并且都已经取得的很好的效果。

    例如入在百度知道的信息检索中,用户每时每刻都会检索各种各样的问题,问题也涉及各种领域,包含生活、娱乐、科技等等。同时问题的表达形式多种多样,不可能完全是库中的问题。这时候就需要语义匹配技术来对用户输入的问题进行匹配,把库中最相似的问题找出并且把答案推荐给用户。

     实际应用场景:

     比如说:用户检索的问题可能是人来在海洋中到低产生了多少垃圾?海洋中的垃圾有多少是人类产生的?等等。这些都和海洋中有多少人类产生的垃圾相似,找到最相似的进行推荐。

    再比如百度浏览器的新闻推荐,这也是相同的逻辑。浏览器会根据用户之前的新闻浏览历史来运用语义匹配技术来推荐相似的新闻给用户。涵盖 体育、财经、娱乐等领域,来达到精准推送目的。

    在比如智能客服,许多电商和通信运营商中的智能客服都会用到智能客服。在我们与智能客服聊天或者提问题的时候,智能客服总是可以我们的输入语句与库中的语句进行匹配,把相似度最高的语句呈现给用户。涵盖交通、购物、金融等行业,极大的促进了行业的发展。

    二、文本语义相似度技术拆解:语义表示和训练模式

    1、语义表示

    句子的语义表示,以BOW(词袋)模型为例。首先对文本进行分词操作,对每一个词赋予一个词向量(由浮点数组成的固定维度的向量)来代表当前词的语义,词向量可以随着训练的进行来更新参数,最后使得相似的单词具有较高的余弦相似度。我们把句子中所有的词向量相加得到句子的向量。

     句子语义表示:BOW(词袋)模型

    如何计算两个句子的相似分数?这里使用百度语义匹配模型-SimNet框架来进行展示。SimNet是一种有监督的神经网络语义匹配模型,它大幅度提升了语义匹配的效果。

    2、SimNet框架

    SimNet框架介绍:

    SimNet 框架  

    SimNet 框架如上图所示,主要分为输入层、表示层和匹配层。

    1.输入层

    该层通过 look up table 将文本词序列转换为 word embedding 序列。

    2.表示层

    该层主要功能是由词到句的表示构建,或者说将序列的孤立的词语的 embedding 表示,转换为具有全局信息的一个或多个低维稠密的语义向量。最简单的是 Bag of Words(BOW)的累加方法,除此之外,我们还在 SimNet 框架下研发了对应的序列卷积网络(CNN)、循环神经网络(RNN)等多种表示技术。当然,在得到句子的表示向量后,也可以继续累加更多层全连接网络,进一步提升表示效果。

    3.匹配层

    该层利用文本的表示向量进行交互计算,根据应用的场景不同,我们研发了两种匹配算法。

    1)Representation-based Match

     该方式下,更侧重对表示层的构建,尽可能充分地将待匹配的两端都转换到等长的语义表示向量里。然后在两端对应的两个语义表示向量基础上,进行匹配度计算,我们设计了两种计算方法:一种是通过固定的度量函数计算,实际中最常用的就是 cosine 函数,这种方式简单高效,并且得分区间可控意义明确;还有就是将两个向量再过一个多层感知器网络(MLP),通过数据训练拟合出一个匹配度得分,这种方式更加灵活拟合能力更强,但对训练的要求也更高。

    2)Interaction-based Match

    该方式更强调待匹配两端更充分的交互,以及交互基础上的匹配。所以不会在表示层将文本转换成唯一的一个整体表示向量,而一般会保留和词位置相对应的一组表示向量。下面介绍该方式下我们实际应用的一种的 SimNet 模型变体。首先基于表示层采用双向 RNN 得到的文本中间位置表示,和词位置对应的每个向量体现了以本词语为核心的一定的全局信息;然后对两段文本按词对应交互,由此构建两段文本之间的 matching matrix(当然也可以构建多组 matrix,形成 tensor),这里面包括了更细致更局部的文本交互信息;基于该局部匹配特征矩阵,我们进一步使用卷积来提取高级的从单词到 N-Gram 多层次的匹配特征,再经过 pooling 和 MLP 得到最终匹配得分。

     Interaction-based match 方法

    Interaction-based Match 匹配方法匹配建模更加细致、充分,一般来说效果更好一些,但计算成本会增加非常多,适合一些效果精度要求高但对计算性能要求不高的应用场景。大部分场景下我们都会选择更加简洁高效的 Representation-based 匹配方式。

    Pair-wise 的 SimNet 训练框架 

    采用了pair-wise Ranking Loss 来进行 SimNet 的训练。以网页搜索任务为例,假设搜索查询文本为 Q,相关的一篇文档为 D+,不相关的一篇文档为 D-,二者经过 SimNet 网络得到的和 Q 的匹配度得分分别为 S(Q,D+) 和 S(Q,D-),而训练的优化目标就是使得 S(Q,D+)>S(Q,D-)。实际中,我们一般采用 Max-Margin 的 Hinge Loss:

    max⁡{0,margin-(S(Q,D+)-S(Q,D-))}

    这种 loss 简洁、高效,还可以通过 margin 的不同设定,来调节模型得分的区分度。

    文本任务下的特色改进:

    SimNet 的匹配框架非常普适。特别是 Representation-based 模式,其实很早在图像中就有类似应用。九十年代即有利用 Siamese Networks 来进行签名真伪匹配的工作。但对于文本任务来讲,语言的一些特殊性还是需要我们有一些更多针对性的考虑。

    针对文本的一维序列的特性,在表示层需要有更针对性的建模。比如我们实现的一维序列卷积网络和长短时记忆网络 LSTM,都充分考虑到了文本的特性。

    此外,从输入信号角度我们也充分考虑到文本的特点。SimNet 作为一种 End-to-End 的语义匹配框架,极大地降低了特征设计的代价,直接输入文本的词序列即可。但对中文而言,由于基本语言单位是字,所以仍需要切词这个步骤,但切词本身就是个难题,而且词语的粒度本身也没有严格的定义,所以 SimNet 框架下需要降低对精准切词的依赖,或者说要考虑如何从切词角度来进一步提升匹配效果。另一方面,虽然不再需要进一步的复杂的特征设计,但一些基本的 NLP 技术的产出,如高频共现片段和句法结构信息,能否作为先验知识融入 SimNet 框架发挥作用,也是值得探索的方向。

    SimNet模型:实现代码

    3、两个训练模式:pointwise  和 pairwise  

    在这个网络框架下如何学习训练和学习语义匹配呢?这里讲两个训练模式:pointwise  和 pairwise 。

    在pointwise模式中,相似的句子叫做正例,不相似的句子叫做负例。句子和正例(或者负例)的训练通过Simnet网络分别通过词向量的表示以及BOW上下的表示得到两个句子的向量后,通过对两个句子向量进行拼接,最后通过全连接FC,把神经网络输出概率作为分数。损失函数为常见的二分函数交叉熵。Y是label,1表示相似,0表示不相似,P表示相似度分数。pointwise模式训练的目的是使得相似句子分数接近于1,不相似句子分数接近于0,更加适合一个分类的场景。

    pairwise训练模式和pointwise训练模式的不同是:pairwise需要三段输入的文本,分别是句子、相似的句子--正例,不相似的句子--负例。通过BOW可以得到三个句子的句向量表示。接着我们会先把句子和正例的句向量计算cos余弦相似度得到一个分数是s1,再计算句子和负例的句向量计算cos余弦相似度得到一个分数s2.最后把s1 和 s2 做一个比较,可以查看出损失函数的形式可以通过训练使得相似句子分数 > (不相似句子分数 + 区分度)。pairwise训练模式的目的是使得正例的句子分数尽可能的大于负例的句子分数,更加适合排序的场景。

    pointwise和pairwise的总结:

    pointwise训练模式pairwise训练模式
    输入样本query+正例(或负例)query+正例+负例
    目的正例分数接近1,负例分数接近0正例分数尽可能的高于负例分数
    适合场景分类排序

    训练完毕后,如何进行评估?

    对于总体:

    • 准确率:预测正确的样本数/总样本数

    对于某一类:

    • 精确率:该类预测正确的样本数 / 模型预测出该类的数量
    • 召回率: 该类预测正确的样本数 / 该类数量
    • F1- score : 2 * 精确率 * 召回率 / (精确率 + 召回率) 

    三、使用EasyDL通过BOW算法网络训练模型

    首先准备训练数据,数据分为三部分:训练集、验证集、测试集。

    数据集格式:

    一条数据集分为三列,分别是句子、正例(或负例)、label.

    例如:

    其中数据集是不需要分词的,因为 EasyDL 可使用内部分词功能,可以使用权威公开相似度数据集lcqmc数据集(原始lcqmc数据集训练数据量有23万,实践时为了训练效果只截取了2万少量数据量,地址:链接:https://pan.baidu.com/s/1Nfw45I3hL3WjE3EHIMnhzg     提取码:x352)。目前EasyDL(百度官网提供:EasyDL-零门槛AI开发平台)仅支持pointwise训练。

    具体的训练方法可以使用下面手册(链接直达)。

    展开全文
  • 采用先极性判断,后细粒度情感判断的处理方法,构建细粒度情感分析与判断流程,并将其应用于微博短文本的细粒度情感判断。通过NLP&CC2013评测所提供的训练语料对该方法有效性进行验证,结果表明该方法具有较好的抽取...
  • 计算机研究 -基于聚类的主题模型短文本分类方法研究.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 225,319
精华内容 90,127
关键字:

短文本