显示带有标签的帖子 LDA. 显示所有帖子
显示带有标签的帖子 LDA. 显示所有帖子

2011年7月26日,星期二

日志TF

我使用一种编码来解决文本分类问题,该编码在经验上有助于在使用线性分类器(例如 Vowpal兔子 与名义上编码的令牌。换句话说,如果您要输入这样的输入
1 |男孩会男孩
-1 |我来了,我看到了我被征服了
对于Vowpal来说,希望构建一个二进制分类器,您可以做得更好。

在使用logistic损失的情况下,一个是用unigram进行logistic回归,这形成了 生成辨别对 与多项朴素的贝叶斯。因此,如果编码有助于改善朴素的贝叶斯,那么它也可以改善与字母组合的逻辑回归。 伦尼(Rennie)等。等 提出了多项多项式朴素贝叶斯改进,包括对数项频率(TF)编码。为了获得动力,请考虑朴素贝叶斯背后的生成模型,该模型说,以类标签为条件,文档的可能性由\ [
p(D | \ theta)\ propto \ prod_ {w \ 在 V} \ theta_w ^ {c_w(D)},
\] 其中$ V $是词汇量,$ \ theta $是特定于标记的类标签分布,而$ c_w(D)$是文档中标记$ w $的计数。伦尼(Rennie)等。等声称此生成模型的问题在于,相对于凭经验观察到的结果而言,它低估了文档中重复标记的可能性(我同意,已经看到包含由标记``HA''组成的推文重复了11次)。这个问题类似于高斯分布,在最小二乘回归中,离群值的可能性不足。 一种解决方法 用诸如t分布之类的较重的分布代替。他们特别建议\ [
p(D | \ theta)\ propto \ prod_ {w \ 在 V} \ theta_w ^ {\ log_2(1 + c_w(D))},
\] 在结构上是相同的,但使用了计数这一术语。在实践中,我喜欢保留双字扩展的字序,因此我将$ \ log_2(1 + c_w(D))/ c_w(D)$权重分配给输入中每个令牌实例,从而得到
1 |男孩:0.792将会:1是:1男孩:0.792
-1 |我:0.666来了:1我:0.666看到了:1我:0.666被征服了:1
实际上,这可以可靠地提高文本分类性能。他们在该论文中提到的其他一些技巧可以解决某些问题,而不是其他一些问题,因此通常都值得尝试,但是以我的经验,这确实是有帮助的。

日志TF LDA

现在可以进行更多投机活动了。考虑LDA的生成模型,确定每个职位的所有广东11选五开奖号码查分配的条件,然后查看共享相同广东11选五开奖号码查分配的那些职位上单词的分布:这是多项式分布。但是,等等,我们已经确定多项式低估了文档中标记重复的可能性;理所当然地,LDA也遭受同样的问题。我建议只做上面概述的log TF转换;尽管从数学上讲这可能没有意义(结果的可能性与Dirichlet不共轭),但在操作上没有特别的困难。对于变体方法,文档通过单词计数进行汇总,分数计数没有根本问题。对于Gibbs抽样,可以维护对广东11选五开奖号码查的单词分配的各种计数以及每个文档的总数,这仍然可以是分数。

怎么知道最终的模型更好?我认为查看困惑不会有所帮助,因为通过更改令牌计数,可以更改困惑的定义。因此,我将看一下使用LDA的端到端上下文。例如,使用LDA作为监督分类系统的深度学习特征提取器,我将研究log TF LDA是否产生更好的整体分类性能。

2011年6月26日,星期日

更快的LDA:第二部分

我能够提高其他效率 Vowpal兔子的LDA实施 通过 向量化。基本思想是找到重复的昂贵操作的循环并通过 SIMD 同时执行多个昂贵的操作。特别是我正在利用 上证所 指令集。

向量化范例

对于我的简单功能 近似对数和指数,转换为SSE是一项最直接的机械任务(如此机械,实际上,我想知道为什么编译器无法为我完成此任务?)。这是一个示例:首先,原始的快速以2为底的对数,
// WARNING: this code has been updated.  Do not use this version.
// Instead get the latest version from http://code.google.com/p/fastapprox

inline float
fastlog2 (float x)
{
  union { float f; uint32_t i; } vx = { x };
  union { uint32_t i; float f; } mx = { (vx.i & 0x007FFFFF) | (0x7e << 23) };
  float y = vx.i;
  y *= 1.0f / (1 << 23);

  return
    y - 124.22544637f - 1.498030302f * mx.f - 1.72587999f / (0.3520887068f + mx.f);
}
接下来是SSE版本
// WARNING: this code has been updated.  Do not use this version.
// Instead get the latest version from http://code.google.com/p/fastapprox

typedef float v4sf __attribute__ ((__vector_size__ (16)));
typedef 在 t v4si __attribute__ ((__vector_size__ (16)));
#define v4sf_dup_literal(x) ((v4sf) { x, x, x, x })
#define v4si_dup_literal(x) ((v4si) { x, x, x, x })
#define v4sf_from_v4si __builtin_ia32_cvtdq2ps

inline v4sf
vfastlog2 (v4sf x)
{
  union { v4sf f; v4si i; } vx = { x };
  union { v4si i; v4sf f; } mx = {
    (vx.i & v4si_dup_literal (0x007FFFFF)) | v4si_dup_literal ((0x7e << 23))
  };
  v4sf y = v4sf_from_v4si (vx.i);
  y *= v4sf_dup_literal ((1.0f / (1 << 23)));
  
  const v4sf c_124_22544637 = v4sf_dup_literal (124.22544637f);
  const v4sf c_1_498030302 = v4sf_dup_literal (1.498030302f);
  const v4sf c_1_725877999 = v4sf_dup_literal (1.72587999f);
  const v4sf c_0_3520087068 = v4sf_dup_literal (0.3520887068f);
  
  return 
    y - c_124_22544637 - c_1_498030302 * mx.f - c_1_725877999 / (c_0_3520087068 + mx.f);
}
vfastlog2 运行速度与 fastlog2 (实际上有时会稍快一些,具体取决于 fastlog2 并使用x87运算进行编译),并计算几乎相同的内容(有时差异很小,比近似误差小得多)。但是,它可以一次执行4次计算。

有一个陷阱:它总是一次执行4次计算,因此,如果数组的长度不是16个字节的倍数,则最后一次计算将从内存的其他位读取(可能导致分段错误)。此外,输入必须对齐16字节,否则会出现分段错误。有人告诉我,在超高性能应用程序中,开发人员总是将阵列排列为16字节对齐,并且是16字节长的倍数。但是,没有简单的方法来安排此操作,因此我不得不进行一些防御性的编码。我使用的模式是
// WARNING: this code has been updated.  Do not use this version.
// Instead get the latest version from http://code.google.com/p/fastapprox

typedef float v4sf_aligned __attribute__ ((__vector_size__ (16))) __attribute__ ((aligned (16)));

float f (float);
v4sf vectorized_f (v4sf);

inline void
conservative_map (float* x,
                  size_t n)
{
  unsigned 在 t i;

  // handle non-aligned prefix
  for (i = 0; i < n && (((uintptr_t) (x + i)) % 16) > 0; ++i)
    { 
      x[i] = f (x[i]);
    }

  // the good stuff
  for (; i + 4 < n; i += 4)
    { 
      * (v4sf_aligned *) (x + i) = vectorized_f (* (v4sf_aligned*) (x + i));
    }

  // handle remainder
  for (; i < n; ++i)
    { 
      x[i] = f (x[i]);
    }
}
对于大约100个广东11选五开奖号码查的地图,这在最坏的情况下会导致25个操作之外的6个附加操作,因此平均可能会有10%的罚款。

结果

我在与我的基准相同的基准上进行了一些其他计时测试 以前的帖子。 \ [
\ beg {array} {c | c}
\ mbox {代码版本}&\ mbox {总挂钟} \\ \ hline
\ mbox {原始}&\ mbox {79秒} \\
\ mbox {近似值,无SSE}&\ mbox {49秒} \\
\ mbox {近似值,含SSE}&\ mbox {39秒}
\ end {array}
\]
近似加速比矢量化加速大,这很好,因为即使对于不支持SSE的环境,近似加速始终可用。

2011年6月24日,星期五

更快的LDA

现在,我已经掌握了 字节解释的邪恶力量 在整数和IEEE浮点数之间,我一直在寻找加速的东西。最近发布的 快速实施LDA 由Smola等等提醒我看Vowpal Wabbit的 LDA实施。的 官方网站 该文件充满了看起来昂贵的先验功能,可以使用近似版本来加快速度,希望不会破坏学习算法。

更快的Log Gamma和Digamma

除了许多我已经有了快速近似的指数和对数调用之外,还有一些对 对数伽玛地伽玛。幸运的是,领导词 Stirlg的近似 是对数,因此我可以利用我的快速对数近似值 以前的博客文章.

我发现对于Log Gamma和Digamma而言,两次应用移位公式可以在精度和速度之间取得最佳折衷。
// WARNING: this code has been updated.  Do not use this version.
// Instead get the latest version from http://code.google.com/p/fastapprox

inline float
fastlgamma (float x)
{
  float logterm = fastlog (x * (1.0f + x) * (2.0f + x));
  float xp3 = 3.0f + x;

  return
    -2.081061466f - x + 0.0833333f / xp3 - logterm + (2.5f + x) * fastlog (xp3);
}

inline float
fastdigamma (float x)
{
  float twopx = 2.0f + x;
  float logterm = fastlog (twopx);

  return - (1.0f + 2.0f * x) / (x * (1.0f + x))
         - (13.0f + 6.0f * x) / (12.0f * twopx * twopx)
         + logterm;
}
提速和准确性
Timg测试是通过编译完成的 -O3-功能-快速数学,在64位Ubuntu Lucid盒上运行(因此 gcc 4:4.4.3-1ubuntu1libc 2.11.1-0ubuntu7.6)。我还测量了$ x \ 在 [1/100,10] $的平均相对准确度(使用 lgammaf 来自libc作为Log Gamma的黄金标准,并且 boost :: math :: digamma 作为Digamma的黄金标准)。
fastlgamma relative accuracy = 0.00045967
fastdigamma relative accuracy = 0.000420604
fastlgamma million calls per second = 60.259
lgammaf million calls per second = 21.4703
boost::math::lgamma million calls per second = 1.8951
fastdigamma million calls per second = 66.0639
boost::math::digamma million calls per second = 18.9672
好吧,Log Gamma的速度大约是3倍(但是为什么boost :: math :: lgamma这么慢?)却略好于Digamma的3倍。

LDA提姆斯

所以我把这些近似值 官方网站 并做了一些timg测试, wiki1K 来自的文件 测试/交易集/ 目录;但是我将文件本身连接了100次以减慢速度。
原始运行
% (cd test; time ../vw --lda 100 --lda_alpha 0.01 --lda_rho 0.01 --lda_D 1000 -b 13 --minibatch 128 train-sets/wiki1Kx100.dat)
your learning rate is too high, setting it to 1
using no cache
Reading from train-sets/wiki1Kx100.dat
num sources = 1
Num weight bits = 13
learning rate = 1
initial_t = 1
power_t = 0.5
learning_rate set to 1
average    since       example  example    current  current  current
loss       last        counter   weight      label  predict features
10.296875  10.296875         3      3.0    unknown   0.0000       38
10.437156  10.577436         6      6.0    unknown   0.0000       14
10.347227  10.239314        11     11.0    unknown   0.0000       32
10.498633  10.650038        22     22.0    unknown   0.0000        2
10.495566  10.492500        44     44.0    unknown   0.0000      166
10.469184  10.442189        87     87.0    unknown   0.0000       29
10.068007  9.666831        174    174.0    unknown   0.0000       17
9.477440   8.886873        348    348.0    unknown   0.0000        2
9.020482   8.563524        696    696.0    unknown   0.0000      143
8.482232   7.943982       1392   1392.0    unknown   0.0000       31
8.106654   7.731076       2784   2784.0    unknown   0.0000       21
7.850269   7.593883       5568   5568.0    unknown   0.0000       25
7.707427   7.564560      11135  11135.0    unknown   0.0000       39
7.627417   7.547399      22269  22269.0    unknown   0.0000       61
7.583820   7.540222      44537  44537.0    unknown   0.0000        5
7.558824   7.533827      89073  89073.0    unknown   0.0000      457

finished run
number of examples = 0
weighted example sum = 0
weighted label sum = 0
average loss = -nan
best constant = -nan
total feature number = 0
../vw --lda 100 --lda_alpha 0.01 --lda_rho 0.01 --lda_D 1000 -b 13 --minibatc  69.06s user 13.60s system 101% cpu 1:21.59 total
近似运行
% (cd test; time ../vw --lda 100 --lda_alpha 0.01 --lda_rho 0.01 --lda_D 1000 -b 13 --minibatch 128 train-sets/wiki1Kx100.dat)               your learning rate is too high, setting it to 1
using no cache
Reading from train-sets/wiki1Kx100.dat
num sources = 1
Num weight bits = 13
learning rate = 1
initial_t = 1
power_t = 0.5
learning_rate set to 1
average    since       example  example    current  current  current
loss       last        counter   weight      label  predict features
10.297077  10.297077         3      3.0    unknown   0.0000       38
10.437259  10.577440         6      6.0    unknown   0.0000       14
10.347348  10.239455        11     11.0    unknown   0.0000       32
10.498796  10.650243        22     22.0    unknown   0.0000        2
10.495748  10.492700        44     44.0    unknown   0.0000      166
10.469374  10.442388        87     87.0    unknown   0.0000       29
10.068179  9.666985        174    174.0    unknown   0.0000       17
9.477574   8.886968        348    348.0    unknown   0.0000        2
9.020435   8.563297        696    696.0    unknown   0.0000      143
8.482178   7.943921       1392   1392.0    unknown   0.0000       31
8.106636   7.731093       2784   2784.0    unknown   0.0000       21
7.849980   7.593324       5568   5568.0    unknown   0.0000       25
7.707124   7.564242      11135  11135.0    unknown   0.0000       39
7.627207   7.547283      22269  22269.0    unknown   0.0000       61
7.583952   7.540696      44537  44537.0    unknown   0.0000        5
7.559260   7.534566      89073  89073.0    unknown   0.0000      457

finished run
number of examples = 0
weighted example sum = 0
weighted label sum = 0
average loss = -nan
best constant = -nan
total feature number = 0
../vw --lda 100 --lda_alpha 0.01 --lda_rho 0.01 --lda_D 1000 -b 13 --minibatc  41.97s user 7.69s system 102% cpu 48.622 total
因此,从81秒降低到49秒,速度提高了大约40%。但这有效吗?好吧,我让马特(Matt)担任最终裁判(我给他寄了一封修改过的 官方网站 (用于测试),但初步迹象表明,使用昂贵功能的近似版本不会破坏学习过程。

下一步:矢量化

毫无疑问,速度要快得多 官方网站 加载像
for (size_t i = 0; i<global.lda; i++)
    {
      sum += gamma[i];
      gamma[i] = mydigamma(gamma[i]);
    }
只是为了尖叫 向量化。敬请关注!

2011年4月24日,星期日

半监督的LDA:第三部分

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

监督结果

在我以前的文章中,我没有说明如何计算$ p(y | w)$,即给定文档文本的文档标签的分布。继 光盘LDA论文 我使用了谐波均值估算器( 最糟糕的蒙托卡罗方法),但我只使用了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)$并归一化。
在完全标记的数据集(即监督学习)上,这可以提供良好的结果。这是经过监督的跑步的结果,
这里没有其他分类器:给定由LDA程序生成的文档文本,将根据标签的后验分布确定0/1丢失。

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

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

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

半监督结果

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

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

2011年4月17日,星期日

半监督的LDA:第二部分

在我的 以前的帖子 我提出了半监督LDA的想法:在语料库上构建广东11选五开奖号码查模型,其中一些文档具有关联的标签,但大多数文档没有关联的标签。目的是提取广东11选五开奖号码查,该广东11选五开奖号码查由语料库中的所有文本告知(例如,无监督的LDA),但也可以预测观察到的标签(如有监督的LDA)。我的一些初步结果看起来很有希望。

该方法

我的方法是基于 光盘LDA (及其表象 标有LDA)。 光盘LDA修改了原始LDA,以便文档类标签$ y_d $可以将原始文档广东11选五开奖号码查$ z $重新映射为转换后的广东11选五开奖号码查$ u $,然后控制单词发射概率。这是DiscLDA论文中的板岩表示,
对于那些代数思考的人,这是生成模型的描述。
  1. 绘制广东11选五开奖号码查比例$ \ theta | \ alpha \ sim \ mbox {Dir}(\ alpha)$。
  2. 绘制单词发射向量$ \ phi | \ beta \ sim \ mbox {Dir}(\ beta)$。
  3. 绘制类标签$ y | \ pi \ sim p(y | \ pi)$来自某些先前的分发。
  4. 每个字
    1. 绘制广东11选五开奖号码查分配$ z_n | \ theta \ sim \ mbox {Mult}(\ theta)$。
    2. 绘制转换后的广东11选五开奖号码查分配$ u_n | z_n,T,y \ sim \ mbox {Mult}(T ^ y_ {u_n,z_n})$。
    3. 画字$ w_n | z_n,\ phi_ {1:K} \ sim \ mbox {Mult}(\ phi_ {z_n})$。
接下来的$ T $矩阵固定为块零和块对角线的混合,基本上是为1)一些在所有类标签上共享的广东11选五开奖号码查$ k_1 $和2)一些$ | Y | k_0 $个广东11选五开奖号码查,每个类别标签会获得$ k_0 $个广东11选五开奖号码查,该广东11选五开奖号码查保留与该特定类别标签\ [
T ^ y = \ beg {pmatrix}
0&I_ {k_0} 1_ {y = 1} \\
\ vdots和\ vdots \\
0&I_ {k_0} 1_ {y = | Y |} \\
I_ {k_1}&0
\ end {pmatrix}。
\] 请注意,存在$(k_0 + k_1)$可能的$ z $和$(| Y | k_0 + k_1)$可能的$ u $。此外,单个$ z_i $会与一个独立于$ y $的单个$ u $或由$ y $索引的一组$ | Y | $可能的$ u $关联。实施时,我发现根据映射\ [
u ^ y_z = \ begin {cases} z& z <k_1 \\ z + k_0(y-1)&z \ geq k_1 \ end {cases},
\] 机械地暗示更改$ y $会导致一组$ k_0 $广东11选五开奖号码查被“切换”。

尽管就学习算法的速度和可扩展性而言,在线变式贝叶斯算法目前是山丘之王,但我发现Gibbs采样相对容易推理和实现,因此我继续这样做。假设观察到文档$ d_i $的标签$ y_ {d_i} $,Gibbs采样器与无监督LDA基本上相同,\ [
p(z_i = j | w,z _ {-i},y)\ propto \ frac {n ^ {(w_i)} _ {-i,u ^ {y_ {d_i}} _ j} + \ beta} {n ^ {(\ cdot)} _ {-i,u ^ {y_ {d_i}} _ j} + W \ beta} \ frac {n ^ {(d_i)} _ {-i,u ^ {y_ {d_i}} _ j } + \ alpha} {n ^ {(d_i)} _ {-i,\ cdot} +(k_0 + k_1)\ alpha}。
\] 如果在$ u $变量上将抽样概念化,则这是单标签情况下标签LDA的结果:Gibbs抽样器与原始LDA相同,只是只允许在给定的可行广东11选五开奖号码查之间进行转换文件标签。

如果未观察到$ y_ {d_i} $,我可以将其集成。但是为了便于实施,我决定也对Gibbs进行抽样,\ [
p(y_d = k | w,z,y _ {-d})\ propto p(w_d | w _ {-d},y_d = k,z,y _ {-d})p(y_d = k | z,y_ { -d})。
\] 第一项是给定所有文档的所有广东11选五开奖号码查和标签分配以及其他文档中所有单词的文档$ d $的单词序列的可能性。这是由\ [
p(w_d | w _ {-d},y_d = k,z,y _ {-d})\ propto \ prod _ {\ {i | d_i = d,z_i \ geq k_1 \}} \ frac {n ^ {(w_i)} _ {-d,u ^ k_ {z_i}} + \ beta} {n ^ {(\ cdot)} _ {-d ,u ^ k_ {z_i}} + W \ beta}。
\] 内容如下:对于文档$ d $中的每个单词,计算在所有其他文档$ n ^ {(w_i)} _ {-d,u中将其分配给广东11选五开奖号码查$ u ^ k_ {z_i} $的次数^ k_ {z_i}} $,计算在所有其他文档$ n ^ {(\ cdot)} _ {-d,u ^ k_ {z_i中,将任何单词分配给广东11选五开奖号码查$ u ^ k _ {z_i} $的次数}} $,并应用Dirichlet-多项式共轭。基本上,就$ u $变量而言:每组基于标签的广东11选五开奖号码查对文档中单词的解释程度如何?请注意,共同的广东11选五开奖号码查会给可能性带来相同的因素,因此,优化产品只能取代特定于标签的广东11选五开奖号码查。特别是如果文档仅使用常见广东11选五开奖号码查,则在此术语中不会偏爱任何标签。

第二项$ p(y_d = k | z,y _ {-d})= p(y_d = k | y _ {-d})$是文档标签的先前(观察文档文本)分布。在在线设置中,文档标签上的先前分布取决于先前观察到的文档标签是合理的,但是在批处理Gibbs采样器中,要求用户在类标签上指定固定的多项式分布即$ p( y_ {d_i} = k | y _ {-d_i})= p_k $。

它行得通吗?

最初的动机是提取特征以构建更好的分类器,因此表达此问题的最佳方法是:``使用半监督的LDA所产生的特征比通过运行无监督的LDA所获得的特征(1)都更适合分类在所有数据上或2)在标记的数据子集上运行受监督的LDA。''我仍在努力回答这个问题。

然而,技术``运作''还有另一种感觉。由于无标签数据大大超过了有标签数据,因此我担心的是半监督方法实际上会退化为无监督方法。我有一些数据表明情况并非如此。

设置如下:我大约有200万个``文档'',其中每个文档都是特定Twitter个人资料所关注的一组人。根据Mechanical Turk的结果,我大约将这些文件中的1%标记为男性或女性。如上所述,我已经有了一个初步的Gibbs采样器实现,同时查看了两个统计信息:每个采样广东11选五开奖号码查的平均对数概率和每个观察到的文档标签的平均对数概率。通常,我希望随着系统学习单词的连贯性,话题概率会随着时间的推移而提高。但是,标签概率发生了什么?如果解释文档文本的压力压倒了符合观察标签的压力,则随着时间的推移,观察到的标签可能会变得不太可能。我特别担心这一点,因为我选择了Gibbs的捷径,对未观察到的标签进行采样,而不是将它们整合在一起。

这是我的数据的典型运行结果。 (可悲的是,在笔记本电脑上花了半天时间才能生成此输出。)
在第一次遍历数据时,标签基本上是随机分配给未标签的数据,并且文档似乎相互抵消,因此观察到的标签非常适合(平均$ \ log(p)\ approx -0.02 $类似于$ p \大约98 \%$)。平均标签对数概率仅在观察到的标签上计算;因此,在这一点上,这些广东11选五开奖号码查并不擅长预测文档中的标记,但它们却擅长预测观察到的标签。随着采样器最初进行,广东11选五开奖号码查概率增加,但标签概率降低。当我第一次观看大批量生产的产品时,我发现自己被弄砸了,最终标签被完全洗掉了。但是最终,采样器开始很好地解释标记和观察到的标签。经过100次通过后,我最终观察到的标签仍能很好地解释,平均$ \ log(p)\ approx -0.08 $,就像$ p \ approx 92 \%$。虽然无监督的数据已经降低了模型对观察到的标签的解释能力,但从泛化的角度来看这可能是一件好事(即``内置于正则化'')。

因此,下一步是在我最初的分类问题的情况下,将此半监督的LDA与非监督的LDA和监督的LDA进行比较,以了解除我自己的娱乐之外,所有这一切是否有意义。

2011年4月8日,星期五

半监督的LDA:想法

我当前的问题域的特征是大量的未标记数据和少量的标记数据。最近我 经历了一些成功 通过将LDA应用于未标记的数据以创建社交图的表示形式,并在我的监督分类器中使用所得特征。

数篇论文指出,同时提取广东11选五开奖号码查和估计分类器比上述过程具有更好的性能:1)提取广东11选五开奖号码查而不考虑分类问题,然后2)在监督分类器中使用广东11选五开奖号码查。不幸的是,我读过的论文都假定始终遵循文档类。我的案例是更经典的半监督:我想利用所有未标记和标记的数据来构建最佳分类器。出乎意料的是,尽管我觉得这是很典型的,但我在文献中没有看到这种情况。

LDA是一个生成模型,因此从直觉上看,应该感觉很容易将其适应于仅部分观察到关联文档信息的情况:在实践中存在一些陷阱。我将深入研究LDA的两个扩展的推理策略,这些扩展旨在与(充分观察到的)关联文档标签一起使用,以查看是否可以找到一种方法来使它们适应半监督数据的情况。

监督的LDA

首先是 有监督的LDA方法 来自“教父”本人(Blei)和乔恩·麦考利夫(Jon McAuliffe)。在进入细节之前,我将重复本文的总体结果:联合评估广东11选五开奖号码查和分类器比先评估广东11选五开奖号码查然后再评估广东11选五开奖号码查更好。让我再次想起,当每个文档都与受监管信息相关联时,便证明了这一结果。

这是本文图1中模型的平板显示。


该模型与原始LDA相似,但具有额外的标签发射步骤。
  1. 绘制广东11选五开奖号码查比例$ \ theta | \ alpha \ sim \ mbox {Dir}(\ alpha)$。
  2. 每个字
    1. 绘制广东11选五开奖号码查分配$ z_n | \ theta \ sim \ mbox {Mult}(\ theta)$。
    2. 画字$ w_n | z_n,\ beta_ {1:K} \ sim \ mbox {Mult}(\ beta_ {z_n})$。
  3. 绘制响应变量$ y | z_ {1:N},\ eta,\ delta \ sim \ mbox {GLM}(\ tilde z,\ eta,\ delta)$。
其中$ \ tilde z = \ frac {1} {N} \ sum_n z_n $是文档中的经验广东11选五开奖号码查频率,并且 GLM 是广义李尔模型。

在监督的LDA论文中,通过变数EM进行推理。辅助函数$ \ mathcal {L} $是使用变化分布$ q $派生的,其中每个广东11选五开奖号码查向量是从每个文档$ \ gamma $参数化的Dirichlet分布中提取的,而每个单词是从每个文档位置$ \ phi_n $参数化多项式分布。对于单个文档,它看起来像\ [
\ beg {aligned}
\ log p(w_ {1:N},y | \ alpha,\ beta_ {1:K},\ eta,\ delta)
&\geq \mathcal{L} (\gamma, \phi_{1:N};\ alpha,\ beta_ {1:K},\ eta,\ delta)\\
&= E_q [\ log p(\ theta | \ alpha)] + \ sum_ {n = 1} ^ N E_q [\ log p(Z_n | \ theta)] \\
&\;\; \; \; + E_q [\ log p(y | Z_ {1:N},\ eta,\ delta)] + H(q)。
\ end {aligned}
\] 好吧,适应半监督情况没问题,对吧?在这种情况下,对于所讨论的文档,不会观察到$ y $,因此,在该函数的辅助函数中,$ E_q [\ log p(y | Z_ {1:N},\ eta,\ delta)] $项不存在。文档,基本上没有标签的文档的变体参数遵循原始LDA的更新规则。所以基本上我需要 sLDA的公开实施 并对其进行修改以接受隐藏了目标函数的相应部分的``未观察到''类标签。

正如马特·霍夫曼(Matt Hoffman)向我指出的那样,这可能不符合我的期望。由于未标记的数据大大超过了标记的数据,因此大多数$ \ phi_n $不会承受任何压力来解释已知的标签,并且这些将主导$ \ beta_ {1:K}的最终估算$。这是因为$ \ beta_ {1:K} $的M步由\ [
\ hat \ beta_ {k,w} \ propto \ sum_ {d = 1} ^ D \ sum_ {n = 1} ^ {N_d} 1_ {w_ {d,n} = w} \ phi ^ k_ {d,n }。
\] 因此预测是,随着我使用这种技术抛出更多未标记的数据,它会退化为等同于首先运行广东11选五开奖号码查估计器,然后运行分类器的东西。坏度10000?

也许不是。给定一组$ D_s = \ {(d,l)\} $带标签的文档,以及较大的一组$ D_u = \ {d \} $无标签的文档,哪个更好?
  1. 在$ D_s $上运行受监督的LDA,而忽略$ D_u $。
  2. 在$ D_s \ cup D_u $上运行无监督的LDA,然后对$ D_s $进行分类。
直觉表明第二种方法更好:毕竟,第一种是忽略大多数数据。生成模型也许在说,当无监督数据量巨大时,单独的特征提取和分类步骤将接近最优。

情况仍然不能令人满意。一种想法是重视文件上带有标签的重量,以使它们不会被未标签的数据所淹没。这具有实际的优点,那就是希望对公开可用的sLDA实现进行直接的修改(基本上,将每个带标签的文档都视为多次出现;因此在上面的$ -beta_ {1:K} $ M步骤,则加重了带有标签的文档的$ \ phi $)。但是,感觉很脏。

另一个想法是从 转导支持向量机。在二进制情况下,基本思想是,尽管未标记数据上的标记是未知的,但它们被认为是0或1;因此,可以将它们视为0。因此,实际上,决策边界应避免未标记分布中的高密度区域。另外,还可以使用标签的经验分布来偏爱决策边界,这些决策边界会在未标记的数据中创建相似的标签分布。类似地,对于二进制情况下的``传导性LDA'',我需要$ y $上的先验值,该值更喜欢未标记点的极值,可能会偏向于促进未标记数据上的某些标签分布。最终,这意味着在变化范围内,$ E_q [\ log p(y | Z_ {1:N},\ eta,\ delta)] $项对于未标记的点变为$ E_q [E_ \ zeta(\ log p(y | Z_ {1:N},\ eta,\ delta)] $项,其中$ \ zeta $是在$ y $上优先使用的极值,因为粉碎未标记数据的一种简单方法是设置$ || \ eta || \\ 在 fty $或$ \ delta \ to 0 $这些参数的一些先前分布对于保持事物的控制是必要的。

虽然我对``传导性LDA''感到非常兴奋,但实际上,我认为要花很长时间才能使它工作。

光盘LDA

接下来是 光盘LDA 来自莎莉(Julien)和《统计迈克尔·乔丹(Michael Jordan of statistics)》。这是本文图1至图3中模型的平板显示。


该模型修改原始LDA,以使文档类标签$ y_d $可以将原始文档广东11选五开奖号码查$ z_d $重新映射为转换后的广东11选五开奖号码查$ u_d $,从而控制单词发射概率。
  1. 绘制广东11选五开奖号码查比例$ \ theta | \ alpha \ sim \ mbox {Dir}(\ alpha)$。
  2. 绘制单词发射向量$ \ phi | \ beta \ sim \ mbox {Dir}(\ beta)$。
  3. 绘制类标签$ y | \ pi \ sim p(y | \ pi)$来自某些先前的分发。
  4. 每个字
    1. 绘制广东11选五开奖号码查分配$ z_n | \ theta \ sim \ mbox {Mult}(\ theta)$。
    2. 绘制转换后的广东11选五开奖号码查分配$ u_n | z_n,T,y \ sim \ mbox {Mult}(T ^ y_ {u_n,z_n})$。
    3. 画字$ w_n | z_n,\ phi_ {1:K} \ sim \ mbox {Mult}(\ phi_ {z_n})$。
在实践中,$ T $矩阵固定为块零和块对角线的混合体,它们的基本排列方式是1)一些类别的广东11选五开奖号码查$ K_1 $在所有类标签上共享; 2)一些数字$ | Y |。 K_0 $个广东11选五开奖号码查,每个类别标签会获得$ K_0 $个广东11选五开奖号码查,该广东11选五开奖号码查保留与该特定类别标签\ [
T ^ y = \ beg {pmatrix}
0&I_ {K_0} 1_ {y = 1} \\
\ vdots和\ vdots \\
0&I_ {K_0} 1_ {y = | Y |} \\
I_ {K_1}&0
\ end {pmatrix}。
\] 以这种方式使用,生成的模型非常类似于 标有LDA;实际上,我建议阅读Labeled LDA论文以了解这种情况下的情况(快速摘要:折叠的Gibbs采样器与香草LDA相同,只是根据类标签仅允许在可行广东11选五开奖号码查之间进行转换。 )

对于半监督情况,我们可以说不是总是观察到$ y $。但是,在DiscLDA生成模型中很明显,我们需要对$ y $进行边际化。换句话说,未标记的文档将不限于仅使用在所有类标签之间共享的$ K_1 $广东11选五开奖号码查。相反,他们也将被允许使用每个类别标签广东11选五开奖号码查的某种混合,这些广东11选五开奖号码查与未观察到的类别标签的后验分布$ p(y_d | \ cdot)$有关。

那么当未标记的数据量大大超过标记的数据量时会发生什么呢?我最终可能会退化为等同于香草LDA的东西,例如,在二进制情况下,大多数未观察到的标签将最终以$ p(y_d = 1 | \ cdot)\ approx 1/2 $结束,这意味着实际上所有每个班级的广东11选五开奖号码查都被``淘汰''了。所以再次,我可能需要一个``传导先验'',这实际上是$ y $分布的先验,它比类标签更喜欢低熵分布。

在实践中,我将使用DiscLDA(标签LDA)作为起点。这基本上是因为折叠的Gibbs采样器在受限转换矩阵的情况下易于实现。在半监督情况下使此方法起作用可能会很有挑战性,因为该模型可能倾向于让未标记数据上的发明类别标签主导已标记数据上实际观察到的类别标签。

2011年3月23日,星期三

社会图谱上的LDA

在我的 以前的帖子 我指出我面临各种半监督的问题,并且我希望在社交图中利用LDA来构建特征表示,以提高我在各种分类任务上的性能。既然我已经真正做到了,我想我会分享一些结果。

图上的LDA

该策略是将社交图的每个顶点处的边集视为文档,然后将LDA应用于生成的文档语料库,类似于 张等等 由于我正在考虑Twitter的社交图谱,因此潜在因素可能代表兴趣或社区,但实际上我并不在乎,只要所得到的功能改善了我的监督分类器即可。

当LDA首次应用于Computer Vision时,它基本上未经修改就被首次应用 取得了一些成功。然后将生成模型调整到问题域以提高性能(例如,在Computer Vision的情况下,通过合并 空间结构)。这样做是出于非常实际的原因:当您应用标准生成模型时,您就可以利用他人的优化和正确实现!出于同样的原因,我在这里坚持使用原始的LDA,但是我发现有些方面并不完美。
  • 在有向社交图(例如Twitter)上,有两种边缘,类似于文档中存在的两种不同标记。 LDA只有一种令牌类型。可以通过在每个边缘前面加上“ +”或“-”指示方向来解决此问题。在实践中,我仅通过对输出边进行建模(即有人跟随的一组人)来回避此问题。
  • 一个边在边集中只能存在一次,而使用香草LDA,令牌可以在文本文档中多次出现。考虑到边缘发射概率之间的这种负相关性可能会改善结果。

广泛的社会话题

即使我实际上并不关心了解潜在因素,也可以用来娱乐博客。所以现在找乐子。我从Twitter用户的随机样本中对边缘集运行了10个广东11选五开奖号码查的LDA模型,以便获得图形结构的广泛概述。以下是每个广东11选五开奖号码查的十大最可能的Twitter帐户:
1Ugglytruth globovision LuisChataing juanes tusabiasque AlejandroSanz Calle13Oakly Shakira Erikadlv ChiguireBipolar ricky_martin BlackberryVzla miabuelasabia CiudadBizarra ElUniversal chavezcandanga luisfonsi ElChisteDelDia noticias24
2detikcom SoalCINTA sherinamunaf Metro_TV soalBOWBOW radityadika kompasdotcom TMCPoldaMetro IrfanBachdim10 ayatquran agnezmo pepatah AdrieSubono desta80s Cinema21 Fitrop vidialdiano ihatequotes sarseh
3RevRunWisdom NICKIMINAJ drakkardnoir TreySongz kanyewest chrisbrown iamdiddy myfabolouslife KevinHart4real LilTunechi KimKardashian MissKeriBaby 50cent RealWizKhalifa lilduval MsLaurenLondon BarackObama Ludacris Tyrese
4justinbieber radityadika Poconggg IrfanBachdim10 snaptu AdrieSubono MentionKe TheSalahGaul vidialdiano FaktanyaAdalah TweetRAMALAN soalBOWBOW unfollowr disneywords DamnItsTrue SoalCINTA sherinamunaf widikidiw PROMOTEforfor
5NICKIMINAJ KevinHart4real TreySongz RevRunWisdom RealWizKhalifa chrisbrown drakkardnoir Wale kanyewest lilduval Sexstrology myfabolouslife LilTunechi ZodiacFacts106andpark Ba​​rackObama Tyga FreakyFact KimKardashian
6ConanOBrien cnnbrk shitmydadsays BarackObama THE_REAL_SHAQ Theion jimmyfallon nytimes StephenAtHome BreakingNews mashable google BillGates rainnwilson twitter espn ochocinco TIME SarahKSilverman
7Ladygaga KimKardashian katyperry taylorswift13布兰妮斯皮尔斯PerltonHilton KhloeKardashian aplusk TheEllenShow KourtneyKardash rihanna jtimberlake justinbieber RyanSeacrest ParisHilton nicolerichie LaurenConrad selenagomez Pink
8iambdsami Z33kCare4women DONJAZZYMOHITS MriLL87WiLL chineyIee NICKIMINAJ MrStealYaBitch FreddyAmazin制片人Hitmann MI_Abaga DoucheMyCooch WomenLoveBrickz Uncharted_ WhyYouMadDoe MrsRoxxanne I_M_Ronnie B?
9Woodytalk vajiramedhi chocoopal PM_Abhisit js100radio kalamare Trevornoah GarethCliff suthichai Domepakornlam ploy_chermarn crishorwang paulataylor Noom_Kanchai jjetrin Khunnie0624 ThaksinLive DJFreshSA R​​adioblogger
10myfabolouslife IAMBIGO NICKIMINAJ GuessImLucky DroManoti GFBIVO90 Sexstrology FASTLANE_STUDDA PrettyboiSunny Ms_MAYbeLLine ZodiacFacts FlyLikeSpace RobbRF50PKF CLOUD9ACE Jimmy_Smacks LadieoloGistPKF TreySongz Prince_Japan
大致而言,我看到西班牙裔(广东11选五开奖号码查1),亚洲(广东11选五开奖号码查2),嘻哈(广东11选五开奖号码查3),具有西方影响力的亚洲人(广东11选五开奖号码查4),具有占星学影响力的嘻哈(广东11选五开奖号码查5),新闻和喜剧(广东11选五开奖号码查6) ,北美名人(广东11选五开奖号码查7),嘻哈(广东11选五开奖号码查8),亚洲(广东11选五开奖号码查9)和嘻哈(广东11选五开奖号码查10)。

是的,这些数据是在查理·希恩(Charlie Sheen)之前收集的 暴涨.

shitmydadsays是一个新闻网站

实际上,广东11选五开奖号码查6确实令人着迷。也许最好将其称为“新闻速递之类”。毫无疑问,新闻兴趣和喜剧兴趣是相交的,但因果关系尚不清楚:是否需要观看新闻以了解笑话,还是需要通过笑话来避免在观看新闻后出现严重的沮丧情绪?

Just Beiber的文化多义性

使用LDA分析文本时,针对多个广东11选五开奖号码查具有较高发射概率的标记通常具有多种含义。在这里,我们看到Justinbieber对于广东11选五开奖号码查4和7的发射概率很高,否则广东11选五开奖号码查分别是亚洲和北美。一种解释是,贾斯汀比伯的吸引力跨越了两种文化。

2011年3月3日,星期四

享受Lightng Fast LDA的另一个原因

在我目前的情况下,我面临着涉及大量未标记数据和少量标记数据的问题。这使我陷入 半监督学习 区。

一种流行的半监督技术是对未标记的数据使用非监督技术来学习数据表示,然后对较小的标记数据使用具有监督技术的结果数据表示。我正在查看Twitter数据,推文是文本(可以说是``非自然语言''),所以 LDA 是这里的自然选择,最近开发的 超快速实施Vowpal兔子 是德国人。

Twitter还是一个社交网络,但是以最直接的方式(名义上编码直接连接的身份)并入社交图信息类似于编码文本令牌的最直接的方式。当您有数以百万计的带有标签的示例时,它会很好用,但其他方面则很少,因此非常有用。

当您使用锤子时,一切看起来都像钉子,因此我想也许可以将与顶点关联的边集视为文档,然后对所有边集执行LDA。原来 这已经完成了,结果看起来合理。从我的角度来看,我不在乎潜在因素是社区还是兴趣(使用Twitter,可能两者兼而有之),只是最终的功能最终可以改善我的受监督学习者。

2011年1月2日,星期日

幸福是一条温馨的推文

通常,获得培训标签是完成任务的限制因素。为此, 拉米奇等等 对Twitter进行有趣的观察:推文中包含与Twitter约定相对应的注释。表情符号,#标签和指向提供有关推文的情感,语义和社交内容的信息。

因此,我决定制造一个Twitter幸福探测器。在维基百科的一点帮助下,我了解了 常见表情 用于表示幸福和悲伤。对于任何特定的推文,如果它包含至少一个快乐的图释且不包含悲伤的图释,我称其为“高兴”。如果它包含至少一个悲伤的图释而没有快乐的图释,我就称它为悲伤。否则我称其为模棱两可。大多数推文是模棱两可的,目标是将其概括化。但对于培训,我只会使用明确的推文。

有几个功能 新的誓言兔 在一起使这个问题易于攻击:支持稀疏的高基数功能;通过哈希技巧控制模型复杂度;的 -自适应 标志,就像自动改善的tf-idf加权;对n-gram扩展的本地支持;当然,在午餐结束之前,可以在笔记本电脑上浏览数以千万计的推文的功能。在一周的推文上进行训练并在未来一天的推文上进行测试,得出的AUC为0.87,即,给定随机的快乐和悲伤推文,所得回归器有87%的可能性将快乐推文的得分评为比悲伤推文更高的分数。 (注意:解析时必须删除表情符号,否则,AUC为1。这里的要点是泛化为模棱两可的推文。)在这一点上,我没有利用vowpal中的LDA支持,我只是对每个令牌进行编码名义上,因此大概可以改善这一点。

我从未来进一步抽取了10000条推文的随机样本,结果发现这些推文大多是模棱两可的,因为那是大多数推文的意思。然后,我对它们进行了排名,这是10条最幸福和10条最可悲的推文。只是重申一下,在解析过程中表情符号会从推文中剥离:最幸福和最悲伤的几条推文中都有表情符号,这表明从推文中的其他标记预测表情符号存在的难度。

10个最幸福的推文

@WRiTExMiND no doubt! <--guess who I got tht from? Bwahaha anyway doe I like surprising people it's kinda my thing so ur welcome! And hi :)
@skvillain yeh wiz is dope, got his own lil wave poppin! I'm fuccin wid big sean too he signed to kanye label g.o.o.d music
And @pumahbeatz opened for @MarshaAmbrosius & blazed! So proud of him! Go bro! & Marsha was absolutely amazing! Awesome night all around. =)
Awesome! RT @robscoms: Great 24 hours with nephews. Watched Tron, homemade mac & cheese for dinner, Wii, pancakes & Despicable Me this am!
Good Morning 2 U Too RT @mzmonique718: Morningggg twitt birds!...up 和 getting ready for church...have a good day 和 LETS GO GIANTS!
Goodmorning #cleveland, have a blessed day stay focused 和 be productive 和 thank god for life
AMEN!!!>>>RT @DrSanlare: Daddy looks soooo good!!! God is amazing! To GOD be the glory 和 victory #TeamJesus Glad I serve an awesome God
AGREED!! RT @ILoveElizCruz: Amen to dat... We're some awesome people! RT @itsVonnell_Mars: @ILoveElizCruz gotta love my sign lol
#word thanks! :) RT @Steph0e: @IBtunes HAppy Birthday love!!! =) still a fan of ya movement... yay you get another year to be dope!!! YES!!
Happy bday isaannRT @isan_coy: Selamatt ulang tahun yaaa RT @Phitz_bow: Selamat siangg RT @isan_coy: Slamat pagiiii

10条最悲伤的推文

Migraine, sore throat, cough & stomach pains. Why me God?
Ik moet werken omg !! Ik lig nog 在  bed en ben zo moe .. Moet alleen opstaan en tis koud buitn :(
I Feel Horrible ' My Voice Is Gone Nd I'm Coughing Every 5 Minutes ' I Hate Feeling Like This :-/
SMFH !!! Stomach Hurting ; Aggy ; Upset ; Tired ;; Madd Mixxy Shyt Yo !
Worrying about my dad got me feeling sick I hate this!! I wish I could solve all these problems but I am only 1 person & can do so much..
Malam2 menggigil+ga bs napas+sakit kepala....badan remuk redam *I miss my husband's hug....#nangismanja#
Waking up with a sore throat = no bueno. Hoping someone didn't get me ill 和 it's just from sleeping. D:
Aaaa 在 i tenggorokan gak enak, idung gatel bgt bawaannya pengen bersin terus. Calon2 mau sakit nih -___-
I'm scared of being alone, I can't see to breathe when I am lost 在  this dream, I need you to hold me?
Why the hell is suzie so afraid of evelyn! Smfh no bitch is gonna hav me scared I dnt see it being possible its not!

观察结果


首先,表情符号是通用的,这使得该技巧可用于许多不同的语言(我认为?我看不懂其中的某些语言)。

其次,Twitter数据非常干净。像这样的愚蠢想法从未与Web数据一起使用,因为始终存在将内容与有效负载的其他部分(导航,结构等)分开的巨大障碍。此外,网页很大,而推文很短,因此在网页可能有多个推文的情况下,推文可以具有清晰的情感基调。

第三,vowpal应该在人们遇到文本分类问题时尝试使用的工具列表中。总共花了不到半天的时间,其中大部分是数据争执。

2010年12月29日,星期三

Lightng Fast LDA

好吧,我在一家基于Twitter的初创公司有一个新的演出。提示,有一个 Vowpal兔子的新版本 可用,所以我认为我会努力。

新vowpal的热门功能之一是 唯一的LDA (谢谢 马特·霍夫曼!)。但是Tweets确实很小,因此很自然地要问像LDA这样的模型对于这样的简短文档是否有效。 拉米奇等等 想知道同样的事情。
尽管LDA和相关模型在新闻报道和学术摘要中的应用已有很长的历史,但一个开放的问题是,它们是否适用于像Twitter帖子一样短的文档,并且其文本与传统研究的馆藏大不相同–在这里我们发现答案是肯定的。
因此,我抽取了400万条推文样本,对其进行了标记化,然后将其提供给vowpal,并提出了10个广东11选五开奖号码查模型。播放时间:3分钟。除了要注意的是,一条推文平均以11个令牌(即不多)结尾,我将为您省去令牌化的详细信息。

尽管10个广东11选五开奖号码查实在太小了,除了笔触广泛(我只是在热身)之外,什么都没有,但是结果很有趣,所以我想我应该把它粘贴在这里。这是每个广东11选五开奖号码查的前十个标记,每行1个广东11选五开奖号码查。
arenas  carter  villain guiding hoooo   ipods   amir    crazzy   confessions     snort   #awesome
de      la      a       y       que     el      en      no      me     mi      es
the     to      a       my      is      和     在       for     of     you     on
na      ka      sa      ko      ng      mo      ba      ang     ni     pa      wa
di      yg      ga      ada     aja     ya      在 i     ke      mau    gw      dan
#fb     alpha    在 lantic        2dae    orgy    und     tales   ich    fusion  koolaid creme
ik      de      je      een     en      met     is      在       op     niet    het
maggie  paula   opposition      gems    oiii    kemal   在 dustrial     cancun  ireng   unplug  controllers
9700    t0      bdae    concentration   0ut     day'    armpit  kb     2007    0f      s0
yu      ma      ii      lmaoo   lml     youu    juss    mee     uu     yeaa    ohh
除了成为一个体面的语言检测器之外,该模型还确定了Twitter用户认为很棒的内容(在竞技场中吸食,用ipod欺骗平民)以及人们选择同时选择性地发到Facebook的鸣叫(发牢骚,奶油和koolaid)。

按比例放大,在3500万条推文上运行的100个广东11选五开奖号码查模型在我的笔记本电脑上花费了3小时15分钟。 拉米奇等等 报告称在96个工作日内对800万条推文进行了大约800个广东11选五开奖号码查的LDA模型培训(24台机器为4天)。这不是一个苹果一个苹果,但我认为vowpal中的在线LDA实施要快2到3个数量级。