2017年7月4日,百度开源了一款主题模型项目,名曰:Familia。

InfoQ记者第一时间联系到百度Familia项目负责人姜迪并对他进行采访,在本文中,他将为我们解析Familia项目的技术细节。

什么是Familia

Familia 开源项目包含文档主题推断工具、语义匹配计算工具以及基于工业级语料训练的三种主题模型:Latent Dirichlet Allocation(LDA)、SentenceLDA 和Topical Word Embedding(TWE)。

Familia支持用户以“拿来即用”的方式进行文本分类、文本聚类、个性化推荐等多种场景的调研和应用。考虑到主题模型训练成本较高以及开源主题模型资源有限的现状,我们会陆续开放基于工业级语料训练的多个垂直领域的主题模型,以及这些模型在工业界的典型应用方式,助力主题模型技术的科研和落地。

据姜迪介绍,Familia主题模型项目是百度研发的贝叶斯网技术的一个重要组成部分,已经支持了百度多个产品,包括搜索、资讯流、贴吧等等。

基于主题模型的文档特征表示可以分为两类,如图1所示:一类是经过主题模型降维,得到文档在主题上的多项分布,LDA、SentenceLDA等模型支持这一类的文档特征表示;另一类是联合使用主题向量和文档主题分布,生成的文档向量表示,TWE等融合了词向量的主题模型可以支持这一类的文档特征表示。

分类

案例: 新闻质量分类

对于新闻APP,其通过各种来源获得到的新闻,质量通常良莠不齐。在表2中列出了一些低质新闻与优质新闻的标题的示例。

为了提升用户体验,通常会构建一个分类器来自动过滤低质量的新闻。可以人工设计一些传统特征:新闻来源站点、新闻内容长度、图片数量、新闻热度等等。除了这些人工特征,也可利用主题模型来计算每篇新闻的主题分布,作为附加特征与人工特征一起组成新特征集合(图2(a))。

使用人工标注7000篇新闻,新闻质量总共划分为3个档位,其中0档表示质量最差,2档表示质量最优。我们采用Gradient Boost Decision Tree (GBDT),分别利用人工特征和主题扩充后的特征集合在5000篇新闻上进行训练,并在另外2000篇标注新闻数据上做测试。图2(b)展示了使用不同特征上的实验结果,在测试数据上的分类准确度。从这些实验结果可以看出,主题分布作为特征扩充可以有效提升分类器的效果。

聚类

案例: 新闻聚类

文档的主题分布可看做是包含语义信息的一个降维过程,这些低维特征可以用来对文档进行聚类。表3中展示了基于主题分布和K-Means进行聚类的部分结果。从表中可以看出,基于新闻的主题分布,可以很好的完成聚类任务,在簇1中显示的是与房子装修相关的新闻,簇2中则是聚集了与股票相关的新闻。

案例: 新闻个性化推荐

长文本-长文本的语义匹配可用于个性化推荐的任务中。在互联网应用中,当积累了用户大量的行为信息后,这些行为信息对应的文本内容可以组合成一篇抽象的“文档”,对该“文档”进行主题映射后获得的主题分布可以作为用户画像。例如,在新闻个性化推荐中,可以将用户近期阅读的新闻(或新闻标题)合并成一篇长“文档”,并将该“文档” 的主题分布作为表达用户阅读兴趣的用户画像。如图5所示,通过计算每篇实时新闻的主题分布与用户画像之间的Hellinger Distance,可作为向用户推送新闻的选择依据,达到新闻个性化推荐的效果。

摘自:http://www.infoq.com/cn/news/2017/07/Baidu-open-NLP-Toolkit

百度开源其NLP主题模型工具包,文本分类等场景可直接使用L——LDA进行主题选择本质就是降维,然后用于推荐或者分类的更多相关文章

  1. 主题模型(概率潜语义分析PLSA、隐含狄利克雷分布LDA)

    一.pLSA模型 1.朴素贝叶斯的分析 (1)可以胜任许多文本分类问题.(2)无法解决语料中一词多义和多词一义的问题--它更像是词法分析,而非语义分析.(3)如果使用词向量作为文档的特征,一词多义和多 ...

  2. 用scikit-learn学习LDA主题模型

    在LDA模型原理篇我们总结了LDA主题模型的原理,这里我们就从应用的角度来使用scikit-learn来学习LDA主题模型.除了scikit-learn,  还有spark MLlib和gensim库 ...

  3. 算法工程师进化-NLP之主题模型

    1 引言 主题模型是文本挖掘的重要工具,近年来在学术界和工业届都获得了非常多的关注.学术界的工作主要集中在建模层面,即提出各种各样的主题模型来适应不同的场景,因此缺乏指导主题模型在工业场景落地的资源和 ...

  4. 文本主题模型之LDA(一) LDA基础

    文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法(TODO) 在前面我们讲到了基于矩阵分解的 ...

  5. 文本主题模型之非负矩阵分解(NMF)

    在文本主题模型之潜在语义索引(LSI)中,我们讲到LSI主题模型使用了奇异值分解,面临着高维度计算量太大的问题.这里我们就介绍另一种基于矩阵分解的主题模型:非负矩阵分解(NMF),它同样使用了矩阵分解 ...

  6. 文本主题模型之潜在语义索引(LSI)

    在文本挖掘中,主题模型是比较特殊的一块,它的思想不同于我们常用的机器学习算法,因此这里我们需要专门来总结文本主题模型的算法.本文关注于潜在语义索引算法(LSI)的原理. 1. 文本主题模型的问题特点 ...

  7. R语言︱LDA主题模型——最优主题数选取(topicmodels)+LDAvis可视化(lda+LDAvis)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:在自己学LDA主题模型时候,发现该模 ...

  8. 理解 LDA 主题模型

    前言 gamma函数 0 整体把握LDA 1 gamma函数 beta分布 1 beta分布 2 Beta-Binomial 共轭 3 共轭先验分布 4 从beta分布推广到Dirichlet 分布 ...

  9. 概率主题模型简介 Introduction to Probabilistic Topic Models

    此文为David M. Blei所写的<Introduction to Probabilistic Topic Models>的译文,供大家参考. 摘要:概率主题模型是一系列旨在发现隐藏在 ...

随机推荐

  1. LeetCode Weekly Contest 20

    1. 520. Detect Capital 题目描述的很清楚,直接写,注意:字符串长度为1的时候,大写和小写都是满足要求的,剩下的情况单独判断.还有:我感觉自己写的代码很丑,判断条件比较多,需要改进 ...

  2. How to solve a login problem of SQL Server?

    Sometimes when we attempting to login the SQL Server 20xx Management Studio, when we type in the cor ...

  3. lua队列实现

    Queue = {} function Queue.newquene() } end function Queue.push(queue, value) queue.count = queue.cou ...

  4. html中map标签和area标签的应用

    map标签的用途:是与img标签绑定使用的,常被用来赋予给客户端图像某处区域特殊的含义,点击该区域可跳转到新的文档. 因为map标签是与img标签绑定使用的,所以我们需要给map标签添加ID和name ...

  5. YARN环境搭建 之 二:CentOS7.0 JDK配置

    Hadoop是Java写的,他无法使用Linux预安装的OpenJDK,因此安装hadoop前需要先安装JDK(1.6以上)   原材料:在Oracle官网下载的32位JDK:     说明: 1.C ...

  6. CDR案例:广告条幅banner设计

    本教程练习使用裁剪.位图.变换.阴影.透明度等特殊效果等工具制作广告条幅banner,具体操作如下. 1. 执行“文件”→“新建”命令,打开“创建新文档”对话框,在“宽度”选框右侧选择单位为“像素”, ...

  7. php进程控制

    1 POSIX扩展    posix_access($file,$mode)  查看文件的访问权限,可以由is_readable等几个函数代替    posix_errno()  返回posix函数执 ...

  8. Eclipse maven工程 Missing artifact com.sun:tools:jar:1.7.0:system 解决方法

    解决方案一:通过maven取运行时参数,eclipse提供的环境变量,基本类似System.getProperty("java.home") <dependency> ...

  9. Zepto.js 源码解析(emoji版)

    graph LR A($) --- B(function) A($) --- C(zepto) A($) --- D(fn) C(zepto) --- CA(init) C(zepto) --- CB ...

  10. 训练1-A

    一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入中含有一些数据,分别是成对出现的花布条和 ...