2014年11月16日星期日

大型CCA

有很多未标记的数据,所以最近我一直在花更多的时间在无监督的方法上。 尼科斯 我花了一些时间 CCA,类似于SVD,但在数据上采用了一些结构。特别是,它假设有两个(或多个)数据视图,其中一个视图基本上是一组功能。一种 生成解释 给定一个特征,条件是给定一个未观察到的潜在变量的高斯分布。数值线性代数的解释是我们试图解决以下优化问题:给定两个视图$ \ 广东11选五开奖号码查 {A} \ in \ mathbb {R} ^ {n \ times d_a} $和$ \ 广东11选五开奖号码查 {B} \ in \ mathbb {R} ^ {n \ time d_b} $,CCA投影$ \ 广东11选五开奖号码查 {X} _a \ in \ mathbb {R} ^ {d_a \ times k} $和$ \ 广东11选五开奖号码查 {X} _b \ in \ mathbb {R} ^ {d_b \ times k} $是\ [
\ begin {aligned}
\ mathop {\ mathrm {maximize}} _ {\ 广东11选五开奖号码查 {X} _a,\ 广东11选五开奖号码查 {X} _b}&\ mathop {\ mathrm {Tr}} \ left(\ 广东11选五开奖号码查 {X} _a ^ \ top \ 广东11选五开奖号码查 { A} ^ \ top \ 广东11选五开奖号码查 {B} \ 广东11选五开奖号码查 {X} _b \ right),\ nonumber \\
\ mathrm {subject \ to} \;&\ 广东11选五开奖号码查 {X} _a ^ \ top \ 广东11选五开奖号码查 {A} ^ \ top \ 广东11选五开奖号码查 {A} \ 广东11选五开奖号码查 {X} _a = n \ 广东11选五开奖号码查 {I},\\
\;&\ 广东11选五开奖号码查 {X} _b ^ \ top \ 广东11选五开奖号码查 {B} ^ \ top \ 广东11选五开奖号码查 {B} \ 广东11选五开奖号码查 {X} _b = n \ 广东11选五开奖号码查 {I}。
\ end {aligned}
\]
对于“small data”,CCA可以使用SVD解决,并且我们有很好的SVD随机化方法,在分布式环境中效果很好。那么,为什么我们没有好的CCA随机方法呢?基本上,约束使CCA变成了广义特征值问题,尽管有两个分母。实际上,对于两个视图数据,CCA可以简化为一对广义特征值问题,\ [
\ 广东11选五开奖号码查 {A} ^ \ top \ 广东11选五开奖号码查 {B}(\ 广东11选五开奖号码查 {B} ^ \ top \ 广东11选五开奖号码查 {B})^ {-1} \ 广东11选五开奖号码查 {B} ^ \ top \ 广东11选五开奖号码查 {A} \ 广东11选五开奖号码查 {X } _a = \ 广东11选五开奖号码查 {A} ^ \ top \ 广东11选五开奖号码查 {A} \ 广东11选五开奖号码查 {X} _a \ Lambda_a,
\]类似的问题来找到$ \ 广东11选五开奖号码查 {X} _b $。我们有 随机平方根自由算法 对于广义特征值问题,那么问题就解决了吧?是的,有一些重要警告。首先,频谱是不利的,因此随机测距仪将需要多次通过或大量的过采样。其次,范围查找涉及计算$(\ 广东11选五开奖号码查 {B} ^ \ top \ 广东11选五开奖号码查 {B})^ {-1} $对$ \ 广东11选五开奖号码查 {B} ^ \ top \ 广东11选五开奖号码查 {A} \ Omega $的作用,并反之亦然,这是最小二乘问题(实际上 不需要非常精确地计算)。第三,这对广义特征值问题共享显着状态,因此对操作进行交织是有益的。通过这些观察,我们最终得到了一种非常类似于经典的CCA计算算法的东西,该算法称为 霍斯特迭代,但具有Halko风格的“过采样,提前停止,然后在较小的子空间中使用精确的解决方案进行完善。”我们在此方法上很幸运,该方法在github上作为 阿尔卡.

此外,事实证明,有时您可以完全避免最小二乘:在范围查找过程中,您可以将逆协方差近似为可缩放的恒等矩阵,并用(大量)额外的过采样进行补偿。如果您将使用大型正则器,则此方法效果很好,并且通过简化计算(尤其是在分布式上下文中)可以补偿过采样的开销。本质上,我们将优化限制在$ \ 广东11选五开奖号码查 {A} ^ \ top \ 广东11选五开奖号码查 {B} $的最高频谱中, 可以产生好的结果。这可以在github上以 rcca.m.

CCA具有多种用途:一种应用是 创建单词嵌入,在精神上类似于 word2vec。作为演示,我们采用了美国英语Google n-gram语料库,并使用CCA创建了嵌入。在商用台式机上的Matlab大约需要一个小时才能生成嵌入,这比下载数据要花费许多小时要快。可以在以下位置找到要复制的代码 的github (警告:您需要大约40 GB的内存,50 GB的磁盘空间和带宽才能下载n克)。您可以验证嵌入是否满足“ultimate test” of word embeddings: 国王-皇后$ \大约$男人-女人.