2011年4月24日,星期日

半监督的LDA:第三部分

在我的 以前的帖子 我讨论了半监督LDA的想法:在语料库上构建主题模型,其中一些文档具有关联的标签,但大多数文档没有关联的标签。目的是提取主题,该主题由语料库中的所有文本告知(例如,无监督的LDA),但也可以预测观察到的标签(如有监督的LDA)。

监督结果

在我以前的文章中,我没有说明如何计算$ p(y | w)$,即给定文档文本的文档标签的分布。继 DiscLDA论文 我使用了谐波均值估算器( 最糟糕的蒙托卡罗方法 ),但我只使用了1个样本量(有史以来最差的样本量)。实际上,这意味着:
  1. 对于每个标签$ y $
    1. 使用以标签为条件的Gibbs采样器绘制$ z \ sim p(\ cdot | w,y)$。
    2. 计算$ p(w | z,y)= \ prod_i \ frac {n ^ {(w_i)} _ {-d,u ^ k_ {z_i}} + \ beta} {n ^ {(\ cdot)} _ { -d,u ^ k_ {z_i}} + W \ beta}。$
    3. 估计$ p(w | y)\大约p(w | z,y)$。
  2. 计算未归一化的后验$ p(y | w)\ propto p(w | y)p(y)$并归一化。
在完全标记的广东11选五开奖号码查集(即监督学习)上,这可以提供良好的结果。这是经过监督的跑步的结果,
这里没有其他分类器:给定由LDA程序生成的文档文本,将根据标签的后验分布确定0/1丢失。

您可能会问:为什么分类器不会将训练集上的损失设为零?通过(临时)从训练集中删除文档,然后运行推理算法来获取标签后验,可以评估此​​处的井损失。这仍然是泛化性能的有偏估计,但有些保守。测试集上的实际0/1损失约为0.23(即77%的准确度)。

接下来,您可能会问:只有77%?正如我在 以前的帖子 ,从用户的关注者集中预测性别具有挑战性,主要是因为我仅标记了广东11选五开奖号码查的一小部分,而受欢迎的Twitter帐户(即最有可能被关注的Twitter帐户)往往不会具有性别歧视性。我能够相当准确地预测Twitter用户的性别,但是我必须在Twitter帐户中组合多种信息来源,社交图仅是其中的一个组成部分。以我的经验,相对于我尝试过的其他事情,仅使用关注者信息的准确性为77%,这确实非常好。特别是在所有社交图边缘集上执行无监督的LDA,然后对标记的子集进行监督分类(通过Vowpal Wabbit)可达到72%的准确性。请注意,准确率是72%并不是草率的:这是一系列实验的最佳结果,在这些实验中,我改变了LDA模型中主题的数量和其他参数。

我的直觉是,在标记的子集上进行监督的LDA不会比在整个集合上进行无监督的LDA做得好,然后在标记的子集上进行监督的分类,因为后者技术使用了所有广东11选五开奖号码查。现在我必须更新我的直觉!

半监督结果

不幸的是,当我添加无人监督的广东11选五开奖号码查时,情况变得很糟糕。这是测试集上的准确度图,它是未标记的训练广东11选五开奖号码查所占比例的函数。
这很不幸,因为我想将此图中的x轴设为0.99(即,仅标记了我总体广东11选五开奖号码查的1%),而且趋势不是我的朋友。

仍然有很多调优和错误查找功能,因此我不必沉没。但是,也没有很好的理论结果来推动事情:我不知道由于基于生成模型向分类器添加无监督广东11选五开奖号码查而导致的分类改进的任何保证,尤其是当已知生成模型不正确时(例如,文档实际上不是以这种方式生成的)。所以在某个时候,我将不得不举起白旗。

5条评论:

  1. 基于生成模型的半监督事物的一个问题是,就可能性而言,无监督部分很容易超过被监督部分。我认为您可以通过对广东11选五开奖号码查的受监督部分进行重新计算以保持比例均匀或接近有效范围来解决此问题。这就像一个穷人's版本,将监督作为无监督模型的强先验。

    顺便说一下,我真的很喜欢这一系列的帖子'过去已经在监督LDA方面进行了一些微实验,而我有一些简单的想法't think you've tried so far.

    回复 删除
  2. 亚历山大,唐't hold back! I'd喜欢听到这些简单的想法(如果您认为我的电子邮件在博客的右上角,'s better).

    回复:过度计算,我基本上做了一个粗俗的版本,即使用特定比例的未标记广东11选五开奖号码查(第二张图)来构建训练广东11选五开奖号码查集。它's不太清楚,但是0.5对应于相等数量的标记广东11选五开奖号码查和未标记广东11选五开奖号码查,0对应于所有标记广东11选五开奖号码查。

    我希望峰值准确度会从0消失,但是我没有'没看到。通过弄乱参数(共享数量,每个标签数量,alpha超参数),我可以构造该图的版本,其中峰分类精度为非零分数(例如,峰为0.2),但总体分类准确度低于我从上面显示的模型中获得的分类准确率(这是迄今为止我获得的最好的've come up with).

    回复 删除
  3. 还重新:第二张图。使用的标记广东11选五开奖号码查量是恒定的,那么'真正改变的是未标记广东11选五开奖号码查的数量,从无(为0)变为``与标记广东11选五开奖号码查相同的广东11选五开奖号码查点数''(为0.5)。我通过对广东11选五开奖号码查进行散列来选择要使用的未标记广东11选五开奖号码查,这样在该图的每个点上'm添加未标记的广东11选五开奖号码查而不会删除之前添加的未标记的广东11选五开奖号码查。

    回复 删除
  4. 我懂了。然后,我相信计数过多可能无济于事,因为即使是一点点未标记的广东11选五开奖号码查似乎也会受到伤害。

    到目前为止,我要测试的最简单的生成式LDA分类器是使用每个类别而不是每个主题的比例(或者,如果这确实使应用程序感到厌烦,则将每个类别表示为"phantom documents"并通过抽样从中选择)。为此,您只需要按课程(或每个课程)"phantom document"),然后对单词主题分配重新采样与对文档类分配重新采样进行交织。

    对于您的问题,这不应该'真的工作得很好,因为它'对主题的幼稚贝叶斯,显然对主题的线性分类器没有'与该disc-lda变体一样好。对于您的问题,您是否添加了"background"这两个课程共有的主题?这可能会使推理更困难,但是我've在诸如苦乐子之类的事情上取得了不错的成绩,这样做有助于过滤掉一些噪声,使它们更加难以区分。

    回复 删除
  5. 回复:背景主题。 DiscLDA设置允许一些按类的主题和一些共享的("background") 主题。不幸的是,到目前为止,我实现的最佳分类性能是不使用共享主题,这是本博文中的图表所示。但是,未标记的广东11选五开奖号码查会提高性能的情况是存在共享主题时,但是在这种情况下,尽管未标记的广东11选五开奖号码查会提高性能,但它不会超过没有共享主题和未标记的广东11选五开奖号码查时所获得的性能。

    回复 删除