communications-mining
latest
false
重要 :
请注意,此内容已使用机器翻译进行了本地化。
UiPath logo, featuring letters U and I in white

Communications Mining 开发者指南

上次更新日期 2024年12月20日

深度分层无监督意图建模:无需训练数据即可获取价值

企业有赖于沟通 - 客户有需要时可以联系我们,同事也可以通过沟通来完成工作。 每条消息都很重要。 Communications Mining 的使命是释放这些消息中的价值,并帮助企业中的每个团队高效、大规模地交付更好的产品和服务。

朝着这个目标,我们不断研究和开发我们的核心机器学习和自然语言理解技术。 Communications Mining 的机器学习模型使用预训练、无监督学习、半监督学习和主动学习,让用户用最少的时间和投资提供最先进的准确性。

在这篇研究文章中,我们探索了一种新的无监督方法,用于从通信数据集中自动识别主题和意图及其分类结构。 这是为了提高我们提供的见解的质量以及获取这些见解的速度。

摘要​

主题模型是一类方法,用于发现“文档”集合中出现的“主题”。 重要的是,主题模型无需收集任何带注释的训练数据即可工作。 它们会自动识别数据集中的主题以及每个文档中出现的主题。

一封假设的“交易失败”电子邮件,以及我们希望自动推断的层次结构主题类型

在这篇文章中:

  • 我们解释了传统的主题模型,并讨论了它们的一些缺点,例如,必须提前知道主题的数量,不捕获主题之间的关系等。
  • 我们将主题组织到根据数据集的主题结构自动推断的层次结构中。 此层次结构将语义相关的主题分组在一起。
  • 通过将基于变换器的嵌入合并到模型中,我们实现了更加连贯的主题层次结构。

背景​

主题模型假定数据集(文档集合)包含一组主题。 主题指定每个词在文档中出现的可能性。 数据集中的每个文档都是由多个主题混合生成的。 通常,经常一起出现的词组在给定主题中出现的概率较高。

例如,假设我们有一个由以下文档组成的数据集:

  • 文档 1 :“狗是狼的被家养后代”
  • 文档 2 :“猫是长有胡须和可伸缩爪子的肉食性哺乳动物”
  • 文档 3 :“众所周知,大型猫科动物会攻击狗”
  • 文档 4 :“被猫的利爪抓伤后,有些狗会变得害怕猫”
  • 文档 5 :“与其他狗相比,家养的狗可能更喜欢猫的存在”

基于这些文档训练的主题模型可以学习以下主题和文档主题分配:

主题 1主题 2
搜狗
已家化爪子
胡须
......

示例主题,其中包含按最高概率排序的词。

 主题 1主题 2
文档 1100%0%
文档 20%100%
文档 350%50%
文档 433%67%
文档 567%33%

文档-主题分配示例。

通过查看每个主题最有可能出现的词语以及每个文档所属的主题,可以大致了解数据集中的文本是什么,以及哪些文档彼此相似。

嵌入式主题模型​

规范主题模型称为潜在狄利克雷分配 (LDA) 。 这是一个生成式模型,使用(近似)最大似然估计进行训练。 LDA 假定:

  • K个主题,每个主题都指定词汇表(数据集中的词集)的分布。
  • 每个文档(单词集合)都有一个主题分布。
    • 文档中的每个单词都是根据文档在主题上的分布和主题在词汇表上的分布,从一个主题生成的。

大多数新式主题模型都是基于 LDA 构建的;首先,我们重点介绍嵌入式主题模型 (ETM) 。 ETM 使用嵌入来表示单词和主题。 在传统主题建模中,每个主题都是词汇表的完整分布。 然而,在 ETM 中,每个主题都是嵌入空间中的一个向量。 对于每个主题,ETM 使用主题嵌入在词汇表上形成分布。

训练和推理​

文档的生成流程如下:
  1. 从先验分布中对潜在表示z进行采样: z ``N( 0 , I )'。
  2. 计算主题比例theta =softmax( z )。
  3. 对于文档中的每个单词w
    1. 潜在主题分配示例


    2. 对词进行抽样


其中U ® RV×E 是单词嵌入矩阵,​tyw​ ® RE 是主题 yw​的嵌入;这些是模型参数。 V是词汇表中的字数, E是嵌入大小。
包含单词v 1​, v 2​,…, v w​的文档的对数似然为:


其中:


​​遗憾的是,上面的积分很难处理。 因此,直接最大化对数似然并不容易。 相反,它会使用变分推理近似最大化。 为此,需要使用“推断”分布 qtheta ​( zx )(带参数chromium ),并根据Jensen不等式形成对数似然的下限,其中x =​x1 ,…,xW :


现在,可以通过所谓的“重新参数化技巧” ,使用梯度的蒙特卡罗近似来最大化此下限。

高斯分布用于推理分布,其均值和方差是神经网络的输出,该神经网络将文档的词袋表示作为输入。

借助上述训练目标,推理分布可以学习近似真实但难以处理的后验,即qtheta ​( zx )≃ p ( zx ) 。 这意味着,训练模型后,我们可以使用推理分布来查找已将文档分配到的主题。 取推理分布的均值并应用 Softmax 函数(根据上述生成过程的步骤 2),将提供给定文档的近似后验主题比例。

真实示例​

我们在20 个新闻组数据集上训练 ETM,该数据集包含论坛针对 20 个层次结构主题的评论,分类如下:

  • 计算: comp.Graphics、 comp.os.ms-windows.misc, comp.sys.ibm.pc.hardware、comp.sys.mac.hardware、 comp.windows.x
  • 娱乐: Rec.Autos、Rec.Motorcycles、Rec.sport.Baseball、 娱乐.运动.曲棍球
  • 科学: sci.crypt、sci.Elasticsearch、sci.med、sci.space
  • 政治:讲话.政治.杂项, 谈论. 政治. 枪, 讨论. 政治. 中东
  • 宗教:讲话.宗教.杂项, at.atheims、soc.re教.christian
  • 其他: misc.forsale

在 Communications Mining,我们专门处理通信数据,众所周知,通信数据的隐私性很高。 出于可重复性考虑,并且由于它是机器学习研究文献中最常用的主题建模数据集,我们在此使用包含 20 个新闻组的数据集。 这被认为是主题建模的“你好,世界”

我们使用 20 个主题(即 K = 20),因为对于此数据集,我们已经知道其中有多少个主题(但通常情况下,情况并非如此)。 我们使用“ GloVe ”来初始化嵌入矩阵U

以下是每个主题学过的前 10 个单词,以及最有可能将每个主题作为主题的文档数量:

ETM 学到的每个主题的最有可能出现的词

学习到的热门词语与数据集中的真实主题大致匹配,例如 主题 2 = call.politics.runs, 主题 13 = sci.space, 等 对于每个文档,我们还可以查看主题分配概率;下面显示了一些示例。 某些文档很可能属于单个主题,而其他文档则是多个主题的混合体。

示例 1

这看起来很可笑,虽然我找到了诸如 tgif 之类可以编辑 gif 文件的工具,以及用于与 gif 格式相互转换的各种工具,但我一直无法找到只能打开窗口并显示 gif 文件的程序在其中。 我查看了各种常见问题解答文件,也无济于事。 某个档案中是否隐藏着一个病毒? 没有什么复杂的;只是“展示图片”? 或者,如果我可以找到 gif 的规范,我认为自己编写它不会太难,但我不知道从哪里开始寻找规范。 (实际上,我确实有一个想法 - 这个新闻组。 ;-) 获取,xv,版本 3.0。 它可以读取/显示/操作许多不同的格式。



示例 2

您提及的守门员是克林特·马拉丘克。 那时他正在为佩刀队效力。 在此之前,他的球队是华盛顿首都队。 虽然他确实恢复了并继续比赛,但我不知道他目前的下落。



示例 3

大家好,在网络世界里,我们有一个旧版 Mac(SE 和 Pluses)的实验室。 我们没有足够的资金购买所有新计算机,因此正在考虑为旧 Mac 购买一些超级驱动器,以便拥有高密度磁盘的用户也可以使用我们的设备。 我想知道人们对这种升级有什么经历(好的或坏的)。 默里



这些结果表明,即使在事先不了解数据集的情况下,也可以快速轻松地了解数据集,识别每个文档所属的主题并将相似的文档分组。 如果我们还想收集带注释的数据来训练监督任务,则主题模型输出使我们能够从更明智的角度开始注释。

树结构主题模型​

尽管上一节中所述的主题模型非常有用,但它们具有某些限制:

  • 必须提前指定主题数量。 一般来说,我们不知道正确的数字应该是什么。
    • 尽管可以训练具有不同主题数量的多个模型并选择最佳模型,但这样做的成本很高。
    • 即使我们确实知道正确的主题数量,学习到的主题也可能与正确的主题不符,例如 图 1 中的主题 16 似乎并不与 20 个新闻组数据集中的任何真实主题相对应。
  • 模型不会捕获主题之间的相互关系。 例如,图 1 中有多个有关计算的主题,但模型无法学习这些主题相关的概念。

在现实中,通常情况下主题的数量是事先未知的,并且这些主题在某种程度上彼此相关。 解决这些问题的一种方法是将每个主题表示为树中的一个节点。 这使我们能够对主题之间的关系进行建模;相关主题可以位于树的同一部分。 这将提供更容易解释的输出。 此外,如果模型可以从数据中学习应有的主题数量以及它们之间的关系,则我们无需提前知道所有这些信息。

为实现此目的,我们使用基于树状结构神经主题模型 (TSNTM) 的模型。 生成式流程的工作原理是选择一条从树的根部到叶子的路径,然后沿该路径选择一个节点。 使用断棒过程对树的路径概率进行建模,该过程使用双重递归神经网络进行参数化。

中断流程​

折断流程可用于对树的路径概率进行建模。 直观地说,这涉及重复折断最初长度为 1 的棒。 对应于树中节点的棒所占比例表示沿该路径的概率。

破坏粘性流程,所占比例为绿色

例如,考虑图 2 中的树,其中每层有 2 个层和 2 个子元素。 在根节点,连接长度为 1。 然后将其分成长度分别为 0.7 和 0.3 的两部分。 然后进一步分解每个部分,直到到达树的叶子。 因为我们可以不断地折断棒子,所以树的宽度和深度可以是任意的。

双重递归神经网络​

与 ETM 一样,TSNTM 的生成过程首先从先验分布中对潜在表示z进行采样:


双重递归神经网络 (DRNN)用于确定破坏棒子的比例。 在随机初始化根节点的隐藏状态h 1​后,对于每个主题k ,隐藏状态h k 由下式给出:



其中hpar ( k ) 是父节点的隐藏状态,hk-1 是紧接其前的同级节点的隐藏状态(同级节点根据其初始索引进行排序)。

分配给主题 k,vk 的剩余棒比例由下式给出:


然后,节点 k,pik 处的概率由下式给出


其中j ≠ {1,…, k -1} 是节点k的前一个同级节点。 这些是图 2 中绿色的值。每个叶节点的值是该路径的概率(到每个叶节点只有一条路径)。

现在我们已经知道树的路径概率,我们还需要每条路径中节点的概率。 这些是使用另一个粘性破坏流程计算得出的。 在树的每个级别,隐藏状态g l 由下式给出:



这意味着树中同一级别的所有节点都具有相同的​g l 值。

分配给级别 l,nl 的剩余棒的比例由下式给出:



级别 l,thetal 上的概率由下式给出:



根据经验,我们有时发现树中子节点最可能出现的词语在语义上与其父节点的词语无关。 为解决此问题,在等式 2 中,我们应用一个温度来软化 S 形函数:



在我们的实验中,我们设置 False = 0.1。 这使得当子节点具有非零概率质量时,其父节点更可能也具有非零概率质量(减少子节点与其父节点无关的可能性)。

训练和推理​

训练目标与等式 1 中的相同;唯一的变化是 p(xw=vw|z) 的指定方式。 现在由下式给出:



更新树结构

到目前为止,树结构已修复。 但是,我们希望根据数据来了解这一点。 将树的确切结构指定为超参数比简单地指定多个主题要困难得多,就像我们对扁平主题模型所做的那样。 如果我们事先知道树的一般结构,则可能不需要对主题进行建模。 因此,树形结构主题模型的实际应用程序需要能够从数据中学习结构。 为此,可以使用两个启发式规则在树中添加和删除节点。 首先,使用训练数据的随机子集估计每个节点的总概率质量。 在节点k ,此估计为:



其中d ={1,…, D } 为随机选择的文档子集建立索引,Nd ​是文档d中的字数。 根据这些估计值,在每I次迭代之后:

  • 如果 pk 高于阈值,则会在节点k下添加一个子节点,以优化主题。
  • 如果累积和docs image​小于阈值,则删除节点k及其后代。

20 个新闻组的结果​

我们在用于训练上述 ETM 的相同 20 个新闻组数据集上运行 TSNTM。 我们将树初始化为包含 2 个层,每层有 3 个子节点。 以下是最终的树结构、为每个主题学习的前 10 个单词,以及最有可能将每个主题作为主题的文档数量:

TSNTM 学习的每个主题的最有可能出现的词

与扁平主题模型相比,树结构方法具有明显的优势。 该树是从数据中自动学习的,相似的主题被分组在树的不同部分。 更高级别的主题位于树顶部(例如 出现在大量文档中的信息不足的单词位于根目录),更细化/特定的主题位于叶子目录。 与图 1 中的扁平模型输出相比,这使得结果包含更多信息,也更容易解释。

示例文档和 TSNTM 学习的相关主题分配概率如下所示:

示例 1

我们实验室刚刚收到一台 AppleOne 彩色扫描仪。 但是,在Laser写入器 IIg 上打印扫描照片时,我在获得合理的扫描输出时遇到了问题。 我已尝试以更高分辨率进行扫描,屏幕上的显示效果非常好。 但是,打印出来的版本很难看! 这是否是由于打印机的分辨率功能所致? 或者是否有一些技巧可以提高质量? 或者我们是否应该使用某种工具(例如 PowerPoint)来“美化”图像? 如有任何建议,我将不胜感激。 在此先致谢,-Kris



示例 2

一切都结束了 - 军刀队今天晚上在加时赛中以 6-5 逆转了熊队,横扫了系列赛。 布拉德·梅 (拉方丹在场上放倒时将其凌传) 打进一记漂亮的入球,结束了比赛。 富尔因肩部拉伤离场,拉方丹也受了重击。但是,佩刀队将获得一周的休息时间,因此伤病应该不会成为问题。 蒙特利尔队 3-2 力克魁北克队,系列赛似乎即将进入第七场。哈布斯队在前两节比赛中占据主导地位,但很遗憾在 40 分钟后仅以 2-2 打平。 然而,凭借在第 3 场比赛中早早破门,球队最终锁定胜局。 凭借 Ray Ferraro 的入球,岛民以 4-3 赢得了系列赛的第 3 个加时赛;在第 2 节以 3-0 领先后,美国队彻底崩溃。 现在,群岛队在历史上取得的历史记录是 28 胜 7 负。



示例 3

请告诉我在哪里可以以低于 20 美元的价格购买 Wergo 音乐公司的 CD。



明确属于特定主题的文档(例如第一个文档)在叶节点的概率较高,而那些不明确属于任何已学主题的文档(例如第三个主题)在根节点的概率较高。

量化评估​

众所周知,主题模型很难进行量化评估。 不过,用于衡量主题连贯性的最常用指标是归一化逐点互信息 (NAMI) 。 选取每个主题的前 M 个单词,如果每对单词 wi 和 wj​具有与其边际概率 P(wi) 和 P(wj) 相比更高的联合概率 P(wi,wj),则 NPI 较高:



概率是使用经验计数估计的。

 NPMI
ETM0.193
TSNTM0.227

这些结果支持定性结果,即 TSNTM 是一个比 ETM 更具连贯性的模型。

合并变换器​

尽管 TSNTM 会生成直观且易于解释的结果,但学习模型仍然存在缺陷。 例如,在图 3 中,与政治和空间相关的主题已分组到同一父节点下。 这可能并非没有道理,但其父节点与宗教相关,这可能是不一致的。 另一个更巧妙的例子是,主题 1.3 将与硬件和软件相关的计算主题分组;也许这些应该分开。

我们假设出现这些问题是因为到目前为止训练的模型都是基于(非上下文)GloVe 嵌入。 这可能会难以消除在不同上下文中具有不同含义的单词的歧义。 在过去的几年中,基于 Transformer 的模型在学习文本的信息性上下文表示方面取得了最先进的性能。 我们希望将嵌入的 Transformer 合并到 TSNTM 中。

我们遵循组合主题模型 (CTM)的方法。 我们现在将词袋表示与变换器模型最终层状态的均值连接在一起,而不是仅使用词袋表示作为推理模型的输入。 尽管这是一个简单的修改,但它应该允许推理模型学习更好的后验近似值。 对于 Transformer 模型,我们使用Sentence-BERT (SBERT)all-mpnet-base-v2变体,因为它在许多句子级别的任务上始终取得了高分。

我们训练一个模型,该模型在其他方面与上一节中的 TSNTM 相同,不同之处在于将 SBERT 嵌入添加到了推理模型中。 同样,下面是每个主题学过的前 10 个单词,以及最有可能将每个主题作为主题的文档数量:

SBERT+TSNTM 学习的每个主题的最有可能出现的单词

具有 SBERT 嵌入的 TSNTM 似乎解决了仅使用 Gmail 模型的一些不一致问题。 现在,“宗教”、“政治”和“加密”主题已分组在同一父主题下。 但与仅使用“GloVe”的模式不同,此父项现在是一个更通用的主题,其排名前列的词语与人们表达意见有关。 计算机硬件和软件主题现已拆分,并且空间位于树中其自己的部分。 NPM 还表明,使用 SBERT 嵌入的模型更具连贯性:

 NPMI
ETM0.193
TSNTM(仅限 GloVe)0.227
TSNTM (GloVe + SBERT)0.234

摘要​

我们已经证明,主题模型是一种很好的方法,可以让您深入了解数据集,而无需进行任何注释。

  • “扁平”主题模型是最常用的模型,但也存在一些缺陷(例如 输出不易解释,需要提前知道主题的数量)。
  • 这些缺陷可以通过使用树结构模型来解决,该模型将相关主题分组在一起,并自动从数据中学习主题结构。
  • 使用 Transformer 嵌入可以进一步改善建模结果。

如果您想在公司试用 Communications Mining,请注册试用版观看演示

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。