1、问题的提出

  在跨媒体检索领域中,CCA(Canonical correlation analysis,典型关联分析)是应用最为广泛的算法之一。CCA可以把两种媒体的原始特征空间映射映射到相关的两个特征子空间中,从而实现两个属于不同媒体的样本之间的相似性的度量,这也是CCA实现跨媒体检索的理论基础。
  但是CCA也有其局限性,其中之一就是对特征的处理比较粗糙,不妨假设来自两种媒体的一组训练样本对的原始特征矩阵为X和Y,则CCA只是以映射后特征相关性最大为原则把X和Y分别映射为X1和Y1,而在X(Y)映射到X1(Y1)的过程中很可能会丢失原始特征矩阵X(Y)中的一些信息。此外,CCA只是寻找投影后的X1和Y1的关系,而不能通过该关系还原出X和Y。
  为了解决上面提到的CCA算法的一些缺点,可以使用PLSR(Partial Least Squares Regression,最小二乘回归)算法。PLSR是一种多因变量Y对多自变量X的回归建模方法,该算法在建立回归的过程中,既考虑了尽量提取Y和X中的主成分(PCA—Principal Component Analysis,主成分分析的思想),又考虑了使分别从X和Y提取出的主成分之间的相关性最大化(CCA的思想)。简单的说,PLSR是PCA、CCA和多元线性回归这三种基本算法组合的产物。下面将进一步探讨PLSR的算法原理。

2、算法实现

X0为Nxm维矩阵,Y0为Nxn维矩阵,即共有N个样本对,X0中样本特征为m维,Y0中样本特征为n维。而X和Y是原始数据经过标准化(减均值、除以标准差等)之后生成的数据。设X和Y的第一个主成分轴向量分别为w1(m x 1维)和c1(n x 1维)(两者均为单位向量,且两者不是由PCA求出的主轴,目前都只是变量,具体的值要到后面求解),则由w1和c1可以表示出X和Y的第一对主成分t1和u1,其中t1=X∗w1,u1=Y∗c1。
  根据上面的假设,CCA的求解思想是使t1和u1之间的相关性最大化,即Corr(t1,u1)→max;而PCA的求解思想是分别使t1和u1各自的方差最大,即Var(t1)→max,Var(u1)→max 。综合上面两种思想,即PLSR的求解思想,即Cov(t1,u1)=Var(t1)Var(u1)−−−−−−−−−−−−−√Corr(t1,u1)→max 。数学上可以形式化如下:
  
  Maximize<Xw1,Yc1> , Subject to : ||w1||=1,||c1||=1

w1,c1,求解细节参考博客“偏最小二乘法回归”[1],最后可解得,w1是对称矩阵XTYYTX的最大特征值对应的特征向量,c1是YTXXTY的最大特征值对应的特征向量。在求出了w1,c1后,可以求得X,Y的第一对相关的主成分t1,u1如下:

t1=Xw1,u1=Yc1

X,Y分别对它们的主成分t1,u1进行回归建模如下:

X=t1pT1+E
  Y=u1qT1+G
  
  这里的p1,q1不同于w1,c1,但它们之间有一定的关系,而E,G为残差矩阵。因为直接用上面两个式子还是无法建立X,Y之间的关系,所以在此利用t1,u1之间具有相关性这一情况把Y改为对X的主成分t1进行回归建模如下:
  
  Y=t1rT1+F
  
  对于上面三个回归方程,可以用最小二乘法计算出p1,q1,r1如下:
  
  p1=XTt1||t1||2
  
  q1=YTu1||u1||2
  
  r1=YTt1||t1||2
  
  从上面求出的结果可以推导出w1,p1之间的关系为:
  
  wT1p1=wT1XTt1||t1||2=tT1t1||t1||2=1
  
  其中w1是X投影出t1的方向向量,而p1在回归思想(使残差E尽可能小)下根据最小二乘法求出的,两者之间一般不是相同的关系。之后将X中主成分t1不能解释的残差部分E作为新的X,Y中主成分t1不能解释的残差部分F作为新的Y,按照前面的方法进行回归,循环往复,直到残差F达到精度要求,或者主成分数量已经达到上限(初始X的秩),算法结束。设最后共有k个主成分,则一系列向量可表示为w1,w2,...,wk;c1,c2,...,ck;t1,t2,...,tk;u1,u2,...,uk;r1,r2,...rk,其中下标不同的ti,tj是相互正交的,wi,wj也是正交的,但pi,pj一般不是正交的(这也是与PCA的表达式中不同的地方)。最终可将原始X,Y表示为:
  
  X=t1pT1+t2pT2+...+tkpTk+E
  Y=t1rT1+t2rT2+...+tkrTk+F
  
  利用wTitj=1(i=j),wTitj=0(i≠j)的关系可以把上面的公式写成矩阵的形式如下:
  
  X=TPT+E
  Y=TRT+F=XWRT+F=XA+F,即X→Y的回归方程,其中A=WRT
  
  在算法过程中把计算得出的W,R的值收集好就可以利用PLSR进行预测,即对于新输入的一条数据x,首先利用W计算各个主成分,即t1=xTw1,t2=xTw2,...,tk=xTwk,然后代入y=t1rT1+t2rT2+...+tkrTk即可求出向量y的预测值,或直接代入yT=xTA进行求解。
 以上便是PLSR算法实现的主要步骤。

参考文献:

[1]偏最小二乘法回归(Partial Least Squares Regression)
[2]《Overview and Recent Advances in Partial Least Squares》