1 引言

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

  本文主要是以《Familia:开源的中文主题模型应用工具包》为参考资料,入门NLP领域。该文结合开源工具Familia(百度开源),总结主题模型在工业届的一些典型应用案例,从而方便用户找到适合自己任务的模型以及该模型的应用方式。

2 主题模型概念

  以LDA为代表的主题模型,训练的结果一般是不同主题下每个语义相关词的重要程度;也就是说基于大量的网页预料,模型可以训练得到多种主题(隐变量)下各主题的关键词。基于训练的结果就可以评估一个文档的主题分布。

  主题模型在工业届的应用范式可以分为两类:语义表示和语义匹配。

3 语义表达

  主题模型的产生的主题分布可以看做文档的语义表示,该表示能够用于文档分类、聚类、内容丰富度分析、CTR预估等多种任务。

  基于主题模型的文档特征表示可是分为两类:一类是经过主题模型降维,得到文档在主题上的多项分布;另一类是联合使用主题向量和文档主题分布,生成文档的向量表示。

3.1 新闻质量分类

  为了提升用户体验,通常需要构建一个分类器自动过滤低质量的新闻。首先我们设计一些传统特征:新闻来源站、新闻内容长度、图片数量、新闻热度等等。除了这些人工特征,也可利用主题模型来计算每篇新闻的主题分布,作为附加特征和人工特征一起组成新特征集合,然后对7000篇文章进行人工标注,新闻质量划分为0/1/2共3个档位,其中0档表示质量最差,2档表示质量最优。基于训练集,我们采用GBDT在5000篇新闻上进行训练,并在另外2000篇新闻数据上做测试。从实验结果来看,主题分布作为特征扩充可以有效提升分类器的效果。

3.2 新闻聚类

  文档的主题分布可看做是包含语义信息的一个降维过程,低维的主题分布特征可以用来对文档进行聚类。基于主题分布特征进行K-means聚类,可以发现新闻的主题分布可以很好的完成聚类任务。

3.3 网页内容丰富度

  丰富度一定程度上反映了网页的质量。通过计算网页的主题分布,可以进一步计算该分布的信息熵,作为衡量网页内容丰富程度的指标,信息熵越大,表示网页内容越丰富。那么网页内容丰富度有什么重要作用呢?它可以作为一维特征引入更为复杂的网页排序函数中。

4 语义匹配

  工业届中很多应用都有在语义上衡量文本相似度的需求,这类需求可以统称为语义匹配。根据文本长度不同,可以细分为三类:短文本-短文本语义匹配,短文本-长文本语义匹配和长文本-长文本语义匹配。需要注意的是基于主题模型的语义匹配通常作为经典文本匹配技术的补充,而不是取代。

4.1 短文本-短文本语义匹配

  工业届的很多场景都会应用到短文本-短文本的语义匹配,例如:在网页搜索中,我们需要度量用户查询(query)和网页标题的语义相关性,在查询(query)推荐中,我们需要度量query和其他query的相似度。由于主题模型在短文本上的效果不理想,在短文本-短文本匹配任务中词向量的应用比主题模型要更加普遍。

4.2 短文本-长文本语义匹配

  短文本-长文本语义匹配在工业届的应用更加普遍。例如:在搜索引擎中,我们需要计算一个用户查询(query)和一个网页正文(content)的语义相关度。由于query通常较短,而网页content较长,因此query与content的匹配与上文提及的短文本-短文本不同,通常使用短文本-长文本语义匹配,已得到更好的匹配效果。

  在计算相似度的时候,我们规避对短文本直接进行主题映射,而是根据长文本的主题分布,计算该分布生成短文本的概率,作为它们之间的相似度。

  • 案例1:用户查询-广告页面相似度

  方法:首先通主题模型学习得到广告的主题分布,再计算用户查询和广告页面的语义相似度,该相似度作为一维特征,应用于更复杂的排序模型中。

  • 案例2:文档关键词抽取

  在分析文档时,我们往往会抽取一些文档的关键词作为标签,这些标签在用户画像和推荐任务中扮演重要角色。从文当中抽取关键词最常用的方法是利用词的TF和IDF信息,此外还可以利用主题模型,估计一个文档产生单词的概率作为该单词的重要度指标。

4.3 长文本-长文本语义匹配

  通过使用主题模型,我们可以得到两个长文本的主题分布,再通过计算两个二项分布的距离来衡量它们之间的相似度。

  • 案例1:新闻个性化推荐

  方法:互联网应用中,当我们积累了大量用户行为之后,这些行为信息对应的文本内容可以作为一个抽象文档,对该文档进行主题映射获得的主题分布可以作为用户画像,例如:在新闻个性化推荐中,我们将用户近期阅读的新闻(或者新闻标题)合并成一篇长文档,并将该文档的主题分布作为表达用户阅读兴趣的用户画像。通过计算每篇实时新闻的主题分布与用户画像的距离,就可以作为向用户推送新闻的选择依据。

  • 案例2:小说个性化推荐

  方法:基于特征的矩阵分解可以增加一些全局特征、用户特征以及物品特征,使得模型的在推荐上可以取得更好的效果。另外我们还可以构建用户画像和每个小说主题分布的距离,该距离作为全局特征,加入到SVDFeature中训练。

  • 垂类新闻CTR预估

  方法:利用新闻-用户相似度(语义匹配),新闻主题特征(主题分布)和其他常规统计特征(时间、新闻源、点击率等),训练模型,从而预估CTR。

5 参考资料

  Familia:开源的中文主题模型应用工具包

算法工程师进化-NLP之主题模型的更多相关文章

  1. NLP︱LDA主题模型的应用难题、使用心得及从多元统计角度剖析

    将LDA跟多元统计分析结合起来看,那么LDA中的主题就像词主成分,其把主成分-样本之间的关系说清楚了.多元学的时候聚类分为Q型聚类.R型聚类以及主成分分析.R型聚类.主成分分析针对变量,Q型聚类针对样 ...

  2. 算法工程师进化-SQL

    1 引言 SQL操作往往是程序员必备的技能,对于算法工程师而言,熟练掌握SQL操作则更为重要.本文以<SQL语句执行顺序>作为学习资料,总结SQL的理论部分. 2 SQL查询语句的执行顺序 ...

  3. TF-IDF与主题模型 - NLP学习(3-2)

    分词(Tokenization) - NLP学习(1) N-grams模型.停顿词(stopwords)和标准化处理 - NLP学习(2) 文本向量化及词袋模型 - NLP学习(3-1) 在上一篇博文 ...

  4. [综] Latent Dirichlet Allocation(LDA)主题模型算法

    多项分布 http://szjc.math168.com/book/ebookdetail.aspx?cateid=1&&sectionid=983 二项分布和多项分布 http:// ...

  5. 文本主题模型之LDA(二) LDA求解之Gibbs采样算法

    文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法(TODO) 本文是LDA主题模型的第二篇, ...

  6. 文本主题模型之LDA(三) LDA求解之变分推断EM算法

    文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法 本文是LDA主题模型的第三篇,读这一篇之前 ...

  7. Spark:聚类算法之LDA主题模型算法

    http://blog.csdn.net/pipisorry/article/details/52912179 Spark上实现LDA原理 LDA主题模型算法 [主题模型TopicModel:隐含狄利 ...

  8. nlp算法工程师养成记 目标要求

    时间规定: 2018.12.07-2018.02.15 能力养成: linux, shell python, c++(会多少算多少) tensorflow, keras, pytorch(tf优先) ...

  9. Spark机器学习(8):LDA主题模型算法

    1. LDA基础知识 LDA(Latent Dirichlet Allocation)是一种主题模型.LDA一个三层贝叶斯概率模型,包含词.主题和文档三层结构. LDA是一个生成模型,可以用来生成一篇 ...

随机推荐

  1. Webdriver API中文版

    Webdriver API中文版 1.1   下载selenium2.0的lib包 http://code.google.com/p/selenium/downloads/list 官方UserGui ...

  2. 支付宝在ios应用上的开发[转]

    前奏 现在随着移动开发的快速发展,越来越多的应用要求在线支付功能.最近做了一个关于支付宝支付功能的应用,在使用支付宝的过程中,遇到一些不必要的弯路,因此,写了这篇文章总结一下关于ios开发如何使用支付 ...

  3. 在express中HMR(合并express和webpack-dev-server)

    在学习react的时候,经常用create-react-app来创建web应用,然而写到后面总有连自己服务器和数据库的需求,create-react-app创建的是一个webpack-dev-serv ...

  4. activeMQ的request-response请求响应模式

    一:为什么需要请求响应模式 在消息中间中,生产者只负责生产消息,而消费者只负责消费消息,两者并无直接的关联.但是如果生产者想要知道消费者有没有消费完,或者用不用重新发送的时候,这时就要用到请求响应模式 ...

  5. python散记

    1.AOP 将不同的类的内部中雷同的代码和重复的功能,提取出来以重用. 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等 2.新式类,经典类 新式类 ...

  6. 记一次MacBook Pro无法连接wifi网络修复

    解决方案: https://blog.csdn.net/kimbing/article/details/79321001 真的哭了 原因是插入了我的USB3.0拓展坞影响了wifi信号 不知道原理是啥 ...

  7. Redis 持久化深入--机制、可靠性及比较

    本文是对 antirez 博客中 Redis persistence demystified 的翻译和总结.主要从Redis的持久化机制,提供何种程度的可靠性以及与其他数据库的比较三个方面进行讨论. ...

  8. Delphi Compiler Bug?

    I found a Bug of Delphi XE3 Compiler,It may exists in XE4,XE5. Here is the code to show the bug proc ...

  9. Hadoop源码学习笔记之NameNode启动场景流程五:磁盘空间检查及安全模式检查

    本篇内容关注NameNode启动之前,active状态和standby状态的一些后台服务及准备工作,即源码里的CommonServices.主要包括磁盘空间检查. 可用资源检查.安全模式等.依然分为三 ...

  10. 使用cmd时cd命令失效

    使用cmd时cd命令失效   近日使用cmd时总是出现无法cd到指定目录的情况 如下图所示 输入cd命令后依旧停留在原始路径 解决方法: 输入 cd D:\CE-5\Training_Sanple\n ...