MLaPP Chapter 9 GLM and the exponential family 指数家族

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangxb35/article/details/54928283

9.1 Introduction

前面讲过的很多概率分布其实都是属于指数家族簇,比如高斯,伯努利,泊松,狄利克雷分布等。当然,要除掉均匀分布和学生 t 分布。我们可以用指数家族分布来表示 class-conditional density,由此建立广义线性模型(GLM, Generalized Linear Model)这个生成分类器。

9.2 The exponential family 指数家族

指数家族之所以重要,主要是因为下面几点,

  • 指数家族是唯一的充分统计量是有限大小的分布家族
  • 指数家族是唯一存在共轭先验的分布家族
  • 指数家族在认为选定限制下作的假设最少的分布家族
  • 指数家族是广义线性模型的核心内容
  • 指数家族是变分推断(variational inference)的核心内容

9.2.1 Definition 定义

对于输入数据 x=(x1,,xm)Xm ,参数 θΘRd ,指数家族的概率密度函数(pdf)或者概率质量函数(pmf)定义如下,

p(x|θ)=1Z(θ)h(x)exp[θTϕ(x)]
其中 Z(θ)=Xmh(x)exp[θTϕ(x)]dx 表示归一化项,有时候会放到指数里去,写作
p(x|θ)=h(x)exp[θTϕ(x)A(θ)],where A(θ)=logZ(θ)

里面的参数含义如下表,

参数 名字 作用
θ 自然参数(natural parameters) or 典范参数(canonical parameters) 参数
ϕ(x)Rd 充分统计量(sufficient statistics)
Z(θ) 划分函数(partition function) 归一化
A(θ) 对数划分函数(log partition function) or 积累函数(cumulant function) 归一化
h(x) 尺度常数(scaling constant) 一般取 1

ϕ(x)=x 时,可以称作是自然指数家族(natural exponential family)。有时候我们用 η=η(θ) 代替 θ ,那么 pdf 重写为,

p(x|θ)=h(x)exp[η(θ)Tϕ(x)A(η(θ))]
dim(θ)<dim(η(θ)) 时,称作是 curved exponential family,意思是充分统计量比参数还多。若 η(θ)=θ ,模式是规范形式(canonical form),且一般只讨论这种形式。

9.2.2 Examples

9.2.2.1 Bernoulli

回忆一下伯努利分布的表达式,有离散随机变量 x{0,1}

Ber(x|μ)=μx(1μ)1x


若要写成指数家族的标准形式,有两种做法,第一种可以取

ϕ(x)=[I(x=0),I(x=1)],θ=[log(μ),log(1μ)]
带入指数家族的标准公式得到,
p(x|θ)=exp[θTϕ(x)]=exp[xlog(μ)+(1x)log(1μ)]=Ber(x|μ)
然而这种表示是过完备的(over-complete),因为 ϕ(x) 里元素是线性相关的,其实只要一个参数就够了。

因此有另一种取法,令

ϕ(x)=x,θ=logμ1μ,Z=11μ
其中 θ 是对数几率(log-odds),
p(x|θ)=(1μ)exp[xlogμ1μ]=(1μ)exp[xlogμxlog(1μ)]=Ber(x|μ)
其中均值参数 μ 和典范参数 θ 之间的转换公式正好是 sigmoid 函数,
μ=sigm(θ)=11+eθ

9.2.2.2 Multimoulli 多努利

作为伯努利分布的推广,多努利模型的推导看起来会更清晰。先来回顾一下多努利模型。

假设有随机变量 x{1,,K} ,而向量

(x1,,xK),xk=I(x=k)
是 one-hot 编码,可以看成是掷一次 K 面不均匀的筛子事件,对应每个随机变量的取值概率为 μ=(μ1,,μK) ,表示每一面筛子的概率。注意有约束, Ki=1μi=1 ,那么多努利分布的概率密度函数为,
Cat(x|μ)=k=1Kμxkk=exp[k=1Kxklogμk]
还记得我们有所有概率和为 1 的约束,可以考虑把最后一个概率 μK 提取出来,对比指数家族的表达形式,
Cat(x|μ)Cat(x|θ)=exp[k=1K1xklog(μkμK)+logμK]=exp(θTϕ(x)A(θ))
从上面两式可以看出,取
θϕ(x)=[logμ1μK,,logμK1μK],=[x1,,xK1],xk=I(x=k)
A(θ)=logμK
就可以得到多努利分布的指数家族表示。根据 θk=logμ1μK Kj=1μk=1 可以推导出最后的一个均值参数,
μK=11+K1j=1eθj
那么其他的前 K1 个均值参数也可以推出
μk=eθk1+K1j=1eθj,k=1,...K1


为了方便,可以令 θK=0 ,即 μK=1/Ki=1eθk ,那么有

μ=S(θ),μk=eθkKi=1eθk,k=1,...,K

9.2.2.3 Univariate Gaussian

一元高斯分布也可以写成指数家族形式。

9.2.2.4 Non-examples

均匀分布和学生 T 分布就不是指数家族中的分布,然而为什么呢?还有没有别的分布家族呢?他们是不是各有自己的一派呢?

9.2.3 Log partition function

对 log partition function A(θ) 求导数可以得到充分统计量的积累(cumulants of sufficient statistics),所以此函数又叫积累函数(cumulants function)。

有下面的结论,

dAdθ=E[ϕ(x)],d2Adθ2=var[ϕ(x)]
对于多元的情况,均值表达式不变,方差变成了协方差,
2Aθiθj=cov[ϕ(x)]
因为协方差是正定矩阵,所以函数 A(θ) 是凸函数。

9.2.4 MLE for the exponential family

根据 Pitman-Koopman-Darmois theorem,在某些条件下(under certain regularity conditions),指数家族分布是唯一具有有穷充分统计量(finite sufficient statistics)的家族分布。这里有穷的充分统计量指的是统计量和数据集大小无关。

对指数家族进行最大似然估计可以得到充分统计量,即 θ^ 必须满足,

E[ϕ(X)]=1Ni=1Nϕ(xi)

9.2.5 Bayes for the exponential family *

指数家族分布是唯一具有共轭先验的家族分布….

9.2.6 Maximum entropy derivation of the exponential family * 最大熵模型

当服从一些用户自定义的约束下,指数家族分布是对数据做的假设最少的分布。假设我们有许多的特征函数(feature function),均满足这样的约束,

xfk(x)p(x)=Fk
其中 Fk 是常数,特征函数表示 (x,y) 之间的某种关系,即从输入 x 中是否可以推导出 y 的分类结果。我们想求解熵最大的概率密度分布 p(x) ,但是同时要满足上面特征函数的约束条件和 p(x) 为概率密度的约束,即求解
maxp(x)(xp(x)logp(x))s.t. p(x)0, xp(x)=1, xfk(x)p(x)=Fk
可通过构造拉格朗日函数解决此带约束的最优化问题,
J(p,λ)=xp(x)logp(x)+λ0(1xp(x))+kλk(Fkxp(x)fk(x))
求偏导,令 Jp(x)=0, Z=e1+λ0 ,再根据 xp(x)=1 的约束,可以解得,
p(x)=1Zexp(kλkfk(x)),Z=xexp(kλkfk(x))
可以看出最大熵分布有着指数家族的形式,也叫作是吉普斯分布(Gibbs Distribution)。

9.3 Generalized linear models (GLMs) 广义线性模型

Linear or Logistic Regression 都算是广义线性模型的特例。这些模型的输出密度都是输入的线性组合后,经过一个非线性函数(如 sigmoid 函数)得到的。

9.3.1 Basics

举了 linear regression, binomial regression 和 poisson regression 的例子。

9.3.2 ML and MAP estimation

可以像将线性回归时那样,求解梯度向量和海森矩阵。

9.3.3 Bayesian inference 贝叶斯推断

GLMs 的贝叶斯推断,常用 MCMC,吉普斯采样(Gibbs sampling),高斯估计(Gaussian approximation),或者变分推断(variational inference).

9.4 Probit regression 概率回归

LR 模型里,是用

p(y=1|xi)=sigm(wTxi)
来建模,其实 sigm 可以换成任意的从 [,+] 映射到 [0,1] 的函数都可以,那么特别地,我们选用高斯分布的积累概率密度函数 Φ(η) ,就得到了概率回归(Probit regression)的表达式,即把输入线性组合后,认为其服从高斯分布的积累分布。

9.5 Multi-task learning

在分类和回归问题中,人们常常想把一个问题训练好的模型,应用在另一个数据较少的问题上,这个过程就叫做多任务学习(multi-task learning),或者叫迁移学习(transfer learning),或者叫 learning to learn. 这一小节主要讲怎么用层次贝叶斯模型来解决这一问题。

9.5.1 Hierarchical Bayes for multi-task learning

9.5.2 Application to personalized email spam filtering

9.5.3 Application to domain adaptation

9.5.4 Other kinds of prior

9.6 Generalized linear mixed models *

9.7 Learning to rank *

Learning to rank 问题,探讨的是如何将机器学习应用到搜索引擎的技术上去,正是这些年比较热的话题之一。搜索排序的话题属于 信息抽取(IR, Information Retrieval)领域,同样的问题在 协同过滤(collaborative filtering) 的领域也有应用。

考虑搜索引擎的工作流程:当用户在搜索引擎的前端,键入了一个请求 q ,可以理解成一个字符串,那么搜索引擎会在文档库里寻找所有与之相关的文档,记作是 d={dj|j=1:m} ,并一一计算与该字符串 q 相关度(relevance) 和该文档的 重要程度(authoritativeness) 等特征,最后给出文档的 top K 排序结果 并返回给用户。

计算查询和文档之间的相关度有很多的方法,比如 tf-idf,语义匹配等;而衡量文档的重要程度,其中一个重要的标准就是 PageRank,通过计算网站链接的结构来衡量一个网站是否重要,比如假设一个网站被很多大网站链接了很多次,那么这个网站肯定也非常重要。

9.7.1 The pointwise approach

我们把所有影响排序的因素看做是特征,记作 x(q,d) ,把这个排序问题看成是多个分类或者回归问题。比如,计算每个文档对应的排序分数(rating)

p(y=r|x(q,d))
最后根据每个文档的打分分数给出排序结果。如果是分类, rating 给出的是“不相关、相关、非常相关”类似的结果;如果是回归问题,则给出一个分数值。这种方法就叫做 Pointwise Approach.

既然是有监督问题,那么数据怎么获得呢?一种方法是大量标注数据,另一个途径是从搜索引擎的日志里抽取用户的点击结果。

缺点是啥没太看明白。。。
然而这种方法没有考虑每个文档在列表中的位置,最尾部的文档和最开头的文档的惩罚力度是一样的,这不是我们想要的。

9.7.2 The pairwise approach

相对于直接对所有的文档给出一个排序,我们两两比较两个文档的信心会更足一些。比如判断 dj dk 与给定 query 的相关度的相对大小,直接用一个二元分类器,

p(yjk|x(q,dj),x(q,dk))
规定 rel(dj,q)>rel(dk,q) yjk=0 . 具体可以这样写,
p(yjk=1|xj,xk)=sigm(f(xj)f(xk))
其中 f(x) 是评价函数(scoring function),可以取线性的关系,即 f(x)=wTx ,那么这种方法就是 RankNet. 我们可以通过梯度下降法来优化交叉熵损失。

9.7.3 The listwise approach

上面的方法,两两比较两个文档时,没有考虑整篇文档。现在用 Plackett-Luce 分布来描述一个文档排序的不确定性。若用 π 表示一种文档的排序(permutation of its indices),那么给定评分后,该序列的概率是,

p(π|s)=j=1msjmu=jsu
其中 sj=s(π1(j)) 表示排名在 j 位的文档的评分。

举个例子,三篇文档排序是 π=(A,B,C) 的概率是,给定 ABC A 排行第一的概率,乘以给定 A 排第一后 B 排行第二的概率,即,

p(π)=sAsA+sB+sC×sBsB+sC×sCsC

如果定义 s(d)=f(x(q,d)), f(x)=wTx 那么这个模型就叫做是 ListNet. 理论上可以通过优化下面的交叉熵函数,

iπp(π|yi)logp(π|si)
然而第 i 项需要 mi! 次的复杂度(排序数,指数级别),所以一般会优化前 k 个,
p(π1:k|s1:k)=j=1ksjmu=1su
复杂度降低到 m!/(mk)! 级别,特别的 k=1 时,复杂度是线性 O(m) 的。

9.7.4 Loss function for ranking 排名的损失函数

这一小节讲述了评价排序的一些标准和方法。

  • Mean reciprocal rank (MRR),比如本来该排第一的那个排到了第5,那么给出就是 1/5
  • Mean average precision (MAP),定义前 k 个的准确率为
    P@k(π)πkk
    那么平均准确率就是
    AP(π)kP@k(π)Ik
    举个例子,比如给出的五个结果 y=(1,0,1,0,1) ,那么 AP=13(11+23+35)0.76
  • Normalized discounted cumulative gain (NDCG) 假如相关度是多层标签,就是有除了相关和不相关,还有有点相关等选项,那么可以选用这个标准。定义前 k 个的 discounted cumulative gain 为,
    DCG@k(r)=r1+i=2krilog2i
    其中 ri 是第 i 个的相关度。另一种定义是
    DCG@k(r)=i=1k2ri1log2(1+i)
  • Rank Correlation 描述排序表 π 和相关度判断 π 之间的相关度(correlation),可以用 weighted Kendall’s τ statistics 来定义,
    τ(π,π)=u<vwuv[1+sgn(πuπv)sgn(πuπv)]2u<vwuv

这些损失函数可以用不同的方法来应用。贝叶斯会先用后验推断来拟合模型,频率派会最小化经验风险。交叉熵损失是一种常见的 surrogate loss function,而 weighted approximate-rank pairwise or WARP loss,提出可以模拟 precision@k loss,但是也不好算,还是要用 Monte Carlo sampling 和梯度下降的方法来做。

猜你喜欢

转载自blog.csdn.net/zhangxb35/article/details/54928283
GLM