指数分布 v.s. 长尾分布

Wed, 16 Apr 2014 11:46:07 GMT

这篇是王益写的文章的部分摘录。讲的是很多系统是基于指数分布设计的,而忽略了长尾分布,这造成了目前机器学习的系统性瓶颈。

我倒是有个奇怪的联想:

  • 感觉指数分布恰好对应了人脑中的系统1(源自《思考,快与慢》)。指数分布强调高频事件,对于这样的常见情况,人脑用直觉快速解决,这样既快速又容易、准确。比如人听到尖叫声会立即警觉,因为尖叫means危险。对于人来说,任何重复出现的经历都可以算是高频事件(因为你遇到的不一样的事件远远更多)。系统1是基于经验训练出来的(甚至祖辈的经验,遗传来的)。
  • 而长尾部分则相当于特定的不常见的情况或者意料之外的情况,这时候调用系统2的深度逻辑思考来解决。(比如计算35×72,记忆中没有这样的经验告诉你直接答案,再比如见到一只绿色的猪,和基于经验的直觉产生了冲突)
  • 系统1和系统2都基于记忆?不同的记忆类型?系统1是高速缓存?
  • 那么,从进化心理学角度说,情绪可以理解为祖先将高频并且重要的经验遗传给后代的方式。然而,生存环境发生了极大变化,有时候的反应并不是有利于基因延续的,所以造成了不必要的痛苦。于是释迦摩尼发现了使人类解脱困扰的秘密,就在于non-self (放弃认同)。。。扯远了

描述长尾数据的数学模型 —— 王益

如果大家尝试着把训练语料中的低频词去掉,会发现训练得到的语义和用全量数据训练得到的差不多。换句话说,pLSA和LDA模型的训练算法没有在意低频数据

为什么会这样呢?因为pLSA和LDA这类概率模型的主要构造单元都是指数分布(exponential distributions)。比如pLSA假设一个文档中的语义的分布是multinomial的,每个语义中的词的分布也是multinomial的。因为multinomial是一种典型的指数分布,这样整个模型描述的海量数据的分布,不管哪个维度上的marginalization,都是指数分布。

可是Internet上的实际数据基本都不是指数分布的——而是长尾分布的。

而指数分布基本就只有大头部分——换句话说,如果我们假设长尾数据是指数分布的,我们实际上就把尾巴给割掉了。

conceptual

割掉数据的尾巴——这就是pLSA和LDA这样的模型做的——那条长尾巴覆盖的多种多样的数据类型,就是Internet上的人生百态。理解这样的百态是很重要的。比如百度和Google为什么能如此赚钱?因为互联网广告收益。把各种需求和各种广告通过智能技术匹配起来,就酝酿了互联网广告的革命性力量。这其中,理解各种小众需求、长尾意图就非常重要了。

既然如此,为什么这类模型还要假设数据是指数分布的呢?——实在是不得已。指数分布是一种数值计算上非常方便的数学元素。

实际上,这种掩耳盗铃在机器学习领域很普遍。掩耳盗铃的做法怎么能存在得如此自然呢?这是因为指数分布假设(尤其是Gaussian assumption)有过很多成功的应用,包括通信、数据压缩、制导系统等。这些应用里,我们关注的就是数据中的低频部分;而高频部分(或者说距离mean比较远的数据)即使丢掉了,电话里的声音也能听懂,压缩还原的图像也看得明白,导弹也还是能沿着“最可能”靠谱的路线飞行。我们当然会假设数据是指数分布的,这样不仅省计算开销,而且自然的忽略高频数据,我们还鄙夷地称之为outlier或者noise。

可是在互联网的世界里,正是这些五花八门的outliers和noise,蕴含了世间百态,让数据不可压缩,从而产生了“大数据”这么个概念。处理好大数据的公司,赚得盆满钵满,塑造了一个个传奇。这里有一个听起来比较极端的说法大数据里无噪声——很多一开始频率很低,相当长尾,会被词过滤系统认为是拼写错误的queries,都能后来居上成为主流。比如“神马”,“酱紫”。