原文:http://dongguo.me/blog/2014/01/01/expectation-propagation/

简介

第一次接触EP是10年在百度实习时,当时组里面正有计划把线上的CTR预估模型改成支持增量更新的版本,读到了微软一篇基于baysian的CTR预估模型的文章(见推荐阅读5),文章中没有给出推导的细节,自己也没有继续研究。今年在PRML中读Approximal inference这章对EP有了一些了解,同时参考了其它相关的一些资料,在这里和大家探讨。

什么是期望传播

期望传播(Expectation Propagation): 基于bayesian的一种近似推断方法,常用于图模型中计算单个节点的边缘分布或者后验分布,属于message passing这一类推断方法。

牛人

首先当然是Thomas Minka, 其在MIT读博期间提出了EP,并将EP作为博士论文课题在2001年发表。Minka毕业之后去了CMU教书,现在和Bishop一起在剑桥微软研究院。

其次是Kevin p. Murphy, 他是我做EP相关文献调研时发现的paper比较多的,我读到的一篇全文基本都是在推导Minka博士论文中一些公式的细节。btw Murphy 2013年出版了一本书,见推荐阅读2。

中英文对照

下面是一些关键词的中英文对应 (由于相关的书籍文献基本都是英文的,有些词没有想到比较好的中文翻译,故保留英文)

截断高斯: Truncated Gaussian

置信传播: Belief Propagation (后面会简称BP)

期望传播: Expectation Propagation (后面会简称为EP)

消息传递: Message passing

背景

EP本身的思想和方法都还是比较简单的,不过会涉及到一些背景知识,这边一并介绍。

高斯、截断高斯

EP的核心思想之一是用指数族分布近似复杂分布,实际应用中通常选择高斯分布,所以多个高斯分布的乘积,相除,积分在EP应用过程中不可避免。

截断高斯是高斯分布在指定区间归一化后的结果,(所以其并不是一个高斯分布),EP本身并不和截断高斯直接相关,但是如果在分类问题中应用EP,对观察样本(0-1)建模方法通常是y=sign(f(x)>t), 和另一个高斯分布相乘之后即为截断高斯分布。(然后就需要计算其的均值方差,原因后面会提到)

我在另一篇文章Gaussian and Truncated Gaussian中介绍了比较多的细节,可以参考。

指数族分布

指数族分布(exponential family distribution)有着非常好的特性,比如其有充分统计量,多个指数族分布的乘积依然是指数族分布,具体的介绍可以参见wikipedia, 介绍的非常全面,也可以参考PRML第2章。

由于指数族的良好特性,其常被拿去近似复杂的概率分布(EP和variance baysian都是)。由于EP中常常选择高斯分布,我们这边强调一下,高斯分布的充分统计量为: (x, x2), 其中x为高斯分布的自变量。

图模型

EP是贝叶斯流派的计算变量后验分布(或者说是边缘分布)的近似推断方法,通常都可以通过一个概率图模型来描述问题的生成过程(generation process),所以可以说图模型是EP的典型应用场景。

图模型在很多地方都有介绍,比如PRML第8章,在这里就不重复了。有1点提一下,一个图模型的联合分布(不管是有向图还是无向图)可以写成若干个因子的乘积,对于有向图每个因子是每个节点的条件分布(条件于其的所有直接相连的父节点),对于无限图每个因子是energy function。 这个特性在后面的置信传播算法会用到。

factor graph

图模型中节点之间的关系通过边来表达,factor graph将这种节点之间的关系通过显式的节点(factor node)来表达,比如对于有向图,每个factor node就代表一个条件概率分布,图中的所有的信息都存在于节点上(variable nodes和factor nodes)。

后面的BP和EP都基于factor graph,可以认为factor graph使得图上的inference方法变得比较直观,另一个好处是factor graph屏蔽了有向图和无向图的差异。(有向图无向图都可以转变为factor graph)

更多了解可以看PRML第8章。

置信传播

Belief Propagation (BP)又叫’sum-product’,是一种计算图模型上节点边缘分布的推断方法,属于消息传递方法的一种,非近似方法(基于其延伸的Loopy Belief propagation为近似推断方法)。 BP的核心为如下3点:

  • 单个variable node边缘分布的计算

(注:上图来之PRML)

前面提到过图模型的联合分布可以分解为若干因子的乘积,每个因子对应一个factor node:

每个variable node的边缘分布为与其直接相连的factor nodes传递过来的message的乘积:

  • 从factor node到variable node的消息传递

(注:上图来之PRML)

从factor node f传递到variable node x的message为:与f直接相连(除了x)的variable nodes传递到f的messages与f本身的乘积的积分(积分变量为与f直接相连的除x之外的所有variable nodes):

  • 从variable node到factor node的消息传递

(注:上图来之PRML)

从variable node x到factor node f的message为:与x直接相连的factor nodes(除f以外)传递到x的messages的乘积:

更多细节请参考PRML

Moment matching

在实际的问题中,要么后验分布本身比较复杂(推荐阅读3中的Clutter example),要么最大化后验的计算比较复杂,要么破坏了具体算法的假设(比如EP要求图中的所有message都是指数族),所以常常会用(有良好性质的)指数族分布近似实际的概率分布。

 

用一个分布去近似另一个分布的常见方法是最小化KL散度:

 

我们发现通过最小化KL散度得到的‘最接近’p(x)的q(x)可以简单地通过匹配充分统计量的期望得到。

当q(x)为高斯分布的时候,我们知道其充分统计量u(x)=(x, x2),这时通过KL散度最小化近似分布近似的方法称为moment matching(匹配矩)

为什么称为匹配矩呢,看看矩的定义就知道了:

期望传播方法-理论

EP的思想:在图模型中,用高斯分布近似每一个factors,然后’approximate each factor in turn in the context of all remaining facotrs’.

下面为具体的算法: (注:本算法参考了PRML)

下面通过Minka博士论文中的例子‘clutter problem’来解释:每个观察样本以(1-w)的概率由高斯分布N(x|sita, I)生成,以w的概率由noise生成(同样也是高斯分布N(x|0, aI)),于是:  

按照EP的思想,我们用一个单高斯q(sita)去近似混合高斯p(x|sita) 

单高斯去近似混合高斯听起来效果一定不好,但实际上,由于EP在近似的时候乘了其他所有factors的高斯近似之后的上下文,考虑到很多个高斯分布相乘之后的方差一般都很小,所有实际上单高斯只需要在很小的区间近似好混合高斯即可。如下图:

 

(注:上面2张图来之PRML)

其中蓝色曲线为混合高斯(没有画完整),红色曲线为近似的单高斯,绿色曲线为‘其它所有factor的乘积’。

EP怎么应用在message passing中:

在图模型中,所谓的’context of all remaining factors’就是当前节点之外所有节点和messages,所以EP在图模型中的使用方式为:和BP一样的方法计算message和marginal distribution,当某个factor或者marginal distribution不是高斯分布时,用高斯分布近似它。所以Minka认为EP也就是BP+moment matching。

由于每个factor以及variable node的边缘分布都是高斯分布(或被近似为高斯分布),所以EP的计算过程一般并不复杂。

期望传播方法-应用

EP被广泛地应用在图模型的inference上,这边提一下微软的2个应用:Bing的CTR预估,XBOX游戏中player skill的评估。

Bing的CTR预估

详细的推导及实验请参考:Bayesian CTR prediction for Bing paper中称这个model为ad predictor,其在我的数据集上预估效果很不错,训练预测速度快,天然支持增量更新,主要的缺点就是模型不是稀疏的。如果你知道怎么自然地达到稀疏效果,请指教。

和其它算法的比较请参考:Classification Models

XBOX中player skill的评估

图模型和上一篇略有差异,推导过程差不多,paper中没有给出详细的推导过程,不过Murphy的新书中给出了,请参考推荐阅读2。

一些小结

  1. EP的通用性比较好,对于实际的问题,画出graph model和factor graph,就可以尝试用EP来进行inference;
  2. 虽然应用EP时的推导过程略长(计算很多个message和marginal distribution),但是最终的整体的更新公式一般都非常简单,所以模型训练时间开销往往较小;
  3. 为了使用EP,只能用高斯分布来建模,比如Bing的CTR预估那篇对每个feature的weight建模,只能假设服从高斯分布,相当于是2范数的正则化,不能达到稀疏模型的效果;
  4. 在我的实验中,通过EP进行inference得到的模型预估效果不错,值得一试;

推荐阅读

  1. 机器学习保留书籍:Pattern recognition and machine learning 第2,8,10章 (第2章看看高斯四则运算,指数族分布特性;第8章了解图模型基础,期望传播算法;第10章了解期望传播算法)

  2. Murphy新书: Machine Learning: A Probabilistic Perspective 第22章 (本书相比PRML更加具体,第22章干脆包含了TrueSkill的详细推导步骤)

  3. Minka的博士论文:A family of algorithms for approximate Bayesian inference (想了解基本思想和理论看完前3节即可)

  4. EP的应用之一:TrueSkill: A Bayesian Skill Rating System (文中并没有给出EP每一步的细节)

  5. EP的应用之二:Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine (CTR预估的应用比较吸引人,文章写得很棒,算法的效果也很好,只是干脆忽略的inference过程,有兴趣的同学可以参看我另一个文章,里面有一步一步推导的过程)

  6. Minka整理的EP学习资料:link (其中的包含了一个videolecture上他做的variance inference的talk值得一看)

  7. 本文的PPT: 墙外墙内

Posted by Dong Guo Jan 1st, 2014  bayesianmachine_learning

 

Expectation Propagation: Theory and Application的更多相关文章

  1. 图论介绍(Graph Theory)

    1 图论概述 1.1 发展历史 第一阶段: 1736:欧拉发表首篇关于图论的文章,研究了哥尼斯堡七桥问题,被称为图论之父 1750:提出了拓扑学的第一个定理,多面体欧拉公式:V-E+F=2 第二阶段( ...

  2. Bayesian machine learning

    from: http://www.metacademy.org/roadmaps/rgrosse/bayesian_machine_learning Created by: Roger Grosse( ...

  3. R Language

    向量定义:x1 = c(1,2,3); x2 = c(1:100) 类型显示:mode(x1) 向量长度:length(x2) 向量元素显示:x1[c(1,2,3)] 多维向量:multi-dimen ...

  4. [Bayes ML] This is Bayesian Machine Learning

    From: http://www.cnblogs.com/bayesianML/p/6377588.html#central_problem You can do it: Dirichlet Proc ...

  5. Pattern Recognition and Machine Learning-01-Preface

    Preface Pattern recognition has its origins in engineering, whereas machine learning grew out of com ...

  6. 中国计算机学会CCF推荐国际学术会议

    中国计算机学会推荐国际学术会议 (计算机系统与高性能计算) 一.A类 序号 会议简称 会议全称 出版社 网址 1 ASPLOS Architectural Support for Programmin ...

  7. 【原创】.NET平台机器学习组件-Infer.NET连载(一)介绍

    Infer.NET机器学习翻译系列文章将进行连载,感兴趣的朋友请收藏或关注             本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/428 ...

  8. paper 119:[转]图像处理中不适定问题-图像建模与反问题处理

    图像处理中不适定问题 作者:肖亮博士 发布时间:09-10-25 图像处理中不适定问题(ill posed problem)或称为反问题(inverse Problem)的研究从20世纪末成为国际上的 ...

  9. PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )

    主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...

随机推荐

  1. Hibernate之Hibernate环境搭建

    Hibernate之Hibernate环境搭建 一.Hibernate环境搭建的步骤 1.添加Hibernate && SQLServer 的Jar antlr-2.7.7.jar d ...

  2. 【提权思路】绕过SecureRDP限制远程连接

    工具可以在百度上下载 直接步入正题 配置好的SecureRDP是限制远程登录的用户 原理是判断来访的计算机名是否在白名单中 如果不在,便出现如上图所示 网上也有绕过方法(https://weibo.c ...

  3. Codeforces Round #222 (Div. 1) A. Maze dfs

    A. Maze 题目连接: http://codeforces.com/contest/377/problem/A Description Pavel loves grid mazes. A grid ...

  4. Codeforces Round #293 (Div. 2) B. Tanya and Postcard 水题

    B. Tanya and Postcard time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  5. GIT(4)----免输入账号和密码方法

    1.全局方式 包删除了,再次下载也不需要在配置输入密码和用户名 参考资料:git pull 和 git push免输入账号和密码方法 2.局部方式 包删除了,密码用户也会被删除,需要重新设置 打开终端 ...

  6. c# 对字符串反序列成匿名对象

    /// <summary> /// 需求单列表 /// </summary> /// <param name="model"></para ...

  7. Android 性能监控系列一(原理篇)

    欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 一. 前言 性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿.响应速度慢.发热严重.流量电 ...

  8. CentOS 7提示:ERROR unsupported format character '(0xffffffe7) at/域安装失败,您可以运行下列命令重启您的域:

    别理会,直接装即可,这个错误不影响使用.

  9. .Net 中DataSet和DataTable的 区别与联系

    1.简要说明二者关系 在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 datatable 中.其实使用 dataset 相当于所使用数据库中数据的副本,保存在 ...

  10. [Windows核心编程]32bit程序在64bit操作系统下处理重定向细节[1]

    这段时间,都在做Ring3层的普通32bit程序兼容64bit操作系统的代码修改,在此记录修改和学习心德.编程领域太广, 任何人经历有限,本人不是专家,所以我一贯原则是: 用到的时候,才去研究,在去记 ...