百度NLP | Familia:开源的中文主题模型应用工具包 2017-08-04 11:47 来源:机器之心 技术 /百度 原标题:百度NLP | Familia:开源的中文主题模型应用工具包 机器之心专栏 作者:百度NLP 本期百度NLP 专栏介绍了百度开源的中文主题模型应用工具包 Familia。在本文中,作者结合 Familia 汇总主题模型在工业界的一些典型应用案例,方便开发者按图索骥,找到适合自己任务的模型以及该模型的应用方式。 主题模型是文本挖掘的重要工具,近年来在学术界和工业界都获得了非常多的关注。虽然学术界的研究人员提出了多种多样的主题模型来适应不同的场景,这些工作主要集中在「建模」层面,即设计合理的模型来适配各色各样的数据,而指导主题模型在工业场景「落地」的资源和文献却非常稀少。 为了推动主题模型技术在工业界的应用,我们开源了 Familia 工具 (https://github.com/baidu/Familia)。在本文中,我们结合 Familia 汇总主题模型在工业界的一些典型应用案例,方便开发者按图索骥,找到适合自己任务的模型以及该模型的应用方式。希望这里汇总的经验可以帮助开发者跨越「建模」和「落地」之间的鸿沟,使主题模型技术在实际应用中发挥更大的价值。 主题模型概览 在主题模型中,「主题」通常被定义为一系列语义相关的词。Latent Dirichlet Allocation(LDA)是其中最具代表性的模型。下表中给出了 LDA 的部分训练结果。其中,每列词属于一个主题,每个词后面的数值表示该词在主题中的重要程度。 由于 LDA 中采用文档内的 Bag-of-Words 假设,词与词之间的位置信息是被忽略的。在很多工业界场景中,我们往往需要限制某些位置相近的词产生自同一主题,通过 SentenceLDA 能很好地满足这个需求。SentenceLDA 假设同一个句子里的词产生自同一主题,对句子内的词进行了进一步的建模,能捕捉到更加细粒度的共现关系。LDA 产生的主题往往被高频词占据,这种现象导致低频词在实际应用中的作用非常有限。Topical Word Embedding (TWE) 利用 LDA 训练获得的主题为词向量的训练提供补充信息,进而得到词和主题的向量表示。有鉴于向量表示可以较好地建模低频词的语义信息,通过利用词和主题的向量表示,我们可以更好地捕捉每个主题下的低频词的语义信息,直播,提升下游应用的效果。 主题模型在工业界的应用范式可以分为两类:语义表示和语义匹配。我们选取一些成功的应用案例对这两类应用范式加以介绍。 语义表示 主题模型产生的主题分布可看做文档的语义表示,该表示能够用于文档分类、聚类、内容丰富度分析、CTR 预估等多种任务。基于主题模型的文档特征表示可以分为两类,如图 1 所示:一类是经过主题模型降维,得到文档在主题上的多项分布,LDA、SentenceLDA 等模型支持这一类的文档特征表示;另一类是联合使用主题向量和文档主题分布,生成的文档向量表示,TWE 等融合了词向量的主题模型可以支持这一类的文档特征表示。 分类 案例 1: 新闻质量分类 新闻 APP 通过各种来源获得到的新闻的质量良莠不齐。在表 2 中列出了一些低质新闻与优质新闻的标题的示例。 为了提升用户体验,我们通常会构建一个分类器来自动过滤低质量的新闻。我们可以人工设计一些传统特征:新闻来源站点、新闻内容长度、图片数量、新闻热度等等。除了这些人工特征,也可利用主题模型来计算每篇新闻的主题分布,作为附加特征与人工特征一起组成新特征集合 (图 2(a))。我们对 7000 篇新闻进行人工标注,新闻质量划分为 0、1、2 共 3 个档位,其中 0 档表示质量最差,2 档表示质量最优。我们采用 Gradient Boost Decision Tree (GBDT) 在 5000 篇新闻上进行训练,并在另外 2000 篇标注新闻数据上做测试。图 2(b) 展示了只使用人工特征和加入主题模型特征上的实验结果。从这些实验结果可以看出,主题分布作为特征扩充可以有效提升分类器的效果。 聚类 案例 2: 新闻聚类 (责任编辑:本港台直播) |