正则项的物理意义–概率矩阵分解的角度

  • Post author:
  • Post category:其他


机器学习的优化目标中, 一般会加上参数的正则项. 1 范数, 2 范数都有其物理意义. 本贴根据对论文 Ruslan Salakhutdinov and Andriy Mnih, Probabilistic Matrix Factorization 的学习, 从概率矩阵分解的角度来进行解释.

本贴涉及的数学式子不多, 但写起来稍嫌复杂, 希望读者有点耐心. 毕竟是机器学习的一个坎, 迈过去就好了.



1. 数据

电影评分数据集可以表示为一个矩阵



R

=

[

r

i

j

]

N

×

M

[

0..5

]

N

×

M

\mathbf{R} = [r_{ij}]_{N \times M} \in [0..5]^{N \times M}







R





=








[



r











i


j




















]











N


×


M






























[


0


.


.


5



]











N


×


M













.

其中




  • N

    N






    N





    为用户数量;




  • M

    M






    M





    为电影数量;




  • r

    i

    j

    r_{ij}







    r











    i


    j






















    为用户



    i

    i






    i





    对电影



    j

    j






    j





    的评分, 特别地,



    r

    i

    j

    =

    0

    r_{ij} = 0







    r











    i


    j





















    =








    0





    表示用户



    i

    i






    i





    并未看过电影



    j

    j






    j





    .



2. 模型

矩阵分解的思路是获得两个低秩矩阵



U

=

[

u

1

;


;

u

N

]

=

[

u

i

k

]

N

×

K

R

N

×

K

\mathbf{U} = [\mathbf{u}_1; \dots; \mathbf{u}_N] = [u_{ik}]_{N \times K} \in \mathbb{R}^{N \times K}







U





=








[




u











1


















;











;






u











N


















]




=








[



u











i


k




















]











N


×


K
































R












N


×


K

















V

=

[

v

1

;


;

v

M

]

=

[

v

j

k

]

M

×

K

R

M

×

K

\mathbf{V} = [\mathbf{v}_1; \dots; \mathbf{v}_M] = [v_{jk}]_{M \times K} \in \mathbb{R}^{M \times K}







V





=








[




v











1


















;











;






v











M


















]




=








[



v











j


k




















]











M


×


K
































R












M


×


K













.



K

min

{

M

,

N

}

K \ll \min\{M, N\}






K













min


{



M


,




N


}





, 因此被称为 “低秩”.

如果



U

V

T

\mathbf{U} \mathbf{V}^{\mathrm{T}}







U





V













T


















R

\mathbf{R}







R






非零的部分拟合得好, 则有理由相信为零那部分的值 (未知值) 可以通过这个拟合预测出来.



3. 基本假设

假设: 给定



U

\mathbf{U}







U










V

\mathbf{V}







V






, 观测到



R

\mathbf{R}







R






的条件概率分布为:





p

(

R

U

,

V

,

σ

2

)

=

i

=

1

N

j

=

1

M

[

N

(

r

i

j

u

i

v

j

T

,

σ

2

)

]

I

i

j

(1)

p(\mathbf{R} \vert \mathbf{U}, \mathbf{V}, \sigma^2) = \prod_{i = 1}^N \prod_{j = 1}^M \left[\mathcal{N}\left(r_{ij} \vert \mathbf{u}_i \mathbf{v}_j^{\mathbf{T}}, \sigma^2\right)\right]^{I_{ij}} \tag{1}






p


(



R







U



,





V



,





σ










2









)




=

















i


=


1


















N




























j


=


1


















M






















[




N







(




r











i


j
























u











i




















v











j










T




















,





σ










2










)





]














I











i


j
































(



1



)








其中




  • N

    \mathcal{N}







    N






    是有名的高斯分布,



    N

    (

    x

    μ

    ,

    σ

    2

    )

    =

    1

    2

    π

    σ

    exp

    (

    (

    x

    μ

    )

    2

    2

    σ

    2

    )

    \mathcal{N}(x \vert \mu, \sigma^2) = \frac{1}{\sqrt{2 \pi}\sigma} \exp \left(- \frac{(x – \mu)^2}{2 \sigma^2}\right)







    N



    (


    x





    μ


    ,





    σ










    2









    )




    =




























    2


    π
























    σ
















    1























    exp






    (


















    2



    σ










    2























    (


    x





    μ



    )










    2





























    )







    ;




  • μ

    =

    u

    i

    v

    j

    T

    \mu = \mathbf{u}_i \mathbf{v}_j^{\mathbf{T}}






    μ




    =










    u











    i




















    v











    j










    T























    表示以预测值为均值;




  • x

    =

    r

    i

    j

    x = r_{ij}






    x




    =









    r











    i


    j






















    表示观测值;




  • I

    i

    j

    =

    1

    I_{ij} = 1







    I











    i


    j





















    =








    1





    当且仅当



    r

    i

    j

    0

    r_{ij} \ne 0







    r











    i


    j
























































    =









    0





    , 否则



    I

    i

    j

    =

    0

    I_{ij} = 0







    I











    i


    j





















    =








    0





    . 从连乘来看, 就表示只关心那些已经有评分的数据;

  • 所有数据一视同仁, 所以用连乘.

说明:

  • 根据子矩阵



    U

    \mathbf{U}







    U










    V

    \mathbf{V}







    V






    , 用户对



    i

    i






    i





    对项目



    j

    j






    j





    的评分预测值为



    u

    i

    v

    j

    T

    \mathbf{u}_i \mathbf{v}_j^{\mathbf{T}}








    u











    i




















    v











    j










    T























    . 而真实评分为



    r

    i

    j

    r_{ij}







    r











    i


    j






















    . 由于子矩阵的



    K

    K






    K





    值有限, 而且子矩阵要拟合的是非常多的评分值, 两者通常不会精确地相等. 例如, 预测值为 3.21, 而真实值为 3. 但我们会认为, 如果子矩阵靠谱的话, 预测值与真实值应该差别较小. 或反过来假设: 真实值在预测值左右摆动, 而且越接近后者概率越大. 这一假设可以描述为: 真实值服从以预测值为均值, 某个未知



    σ

    \sigma






    σ





    为方差的高斯分布. 作为一个分布, 它适用于所有的预测值与实际值.

  • 我们关心的是所有的已知评分的预测 (拟合) 情况, 因此用连乘式子. 连乘也是概率计算最常用招数.



4. 推导过程

由于我们观测到的是



R

\mathbf{R}







R






, 需要求的是



U

\mathbf{U}







U










V

\mathbf{V}







V






.

根据贝叶斯公式, 忽略参数



σ

2

\sigma^2







σ










2












我们可以写





p

(

U

,

V

R

)

=

p

(

R

U

,

V

)

p

(

U

,

V

)

p

(

R

)

(2)

p(\mathbf{U}, \mathbf{V} \vert \mathbf{R}) = \frac{p(\mathbf{R} \vert \mathbf{U}, \mathbf{V})p(\mathbf{U}, \mathbf{V})}{ p(\mathbf{R})} \tag{2}






p


(



U



,





V







R



)




=



















p


(



R



)














p


(



R







U



,





V



)


p


(



U



,





V



)

























(



2



)











R

\mathbf{R}







R






既然是已经观测到的数据, 优化时可以不予以考虑.

假设



U

\mathbf{U}







U










V

\mathbf{V}







V






独立. 则我们可能把优化式子写为





arg max

U

,

V

p

(

U

,

V

R

)

=

arg max

U

,

V

p

(

R

U

,

V

)

p

(

U

)

p

(

V

)

(3)

\argmax_{\mathbf{U}, \mathbf{V}} p(\mathbf{U}, \mathbf{V} \vert \mathbf{R}) = \argmax_{\mathbf{U}, \mathbf{V}} p(\mathbf{R} \vert \mathbf{U}, \mathbf{V})p(\mathbf{U}) p(\mathbf{V}) \tag{3}
















U



,



V












a


r


g




m


a


x





















p


(



U



,





V







R



)




=


















U



,



V












a


r


g




m


a


x





















p


(



R







U



,





V



)


p


(



U



)


p


(



V



)







(



3



)












U

\mathbf{U}







U










V

\mathbf{V}







V






服从均值为 0 的球形高斯分布, 即





p

(

U

σ

U

2

)

=

i

=

1

N

N

(

u

i

0

,

σ

U

2

I

)

(4)

p(\mathbf{U} \vert \sigma_{\mathbf{U}}^2) = \prod_{i = 1}^N \mathcal{N}\left(\mathbf{u}_i \vert 0, \sigma_{\mathbf{U}}^2 \mathbf{I}\right) \tag{4}






p


(



U







σ












U










2


















)




=

















i


=


1


















N




















N







(





u











i





















0


,





σ












U










2



















I




)









(



4



)












p

(

V

σ

V

2

)

=

i

=

1

M

N

(

v

i

0

,

σ

V

2

I

)

(5)

p(\mathbf{V} \vert \sigma_{\mathbf{V}}^2) = \prod_{i = 1}^M \mathcal{N}\left(\mathbf{v}_i \vert 0, \sigma_{\mathbf{V}}^2 \mathbf{I}\right) \tag{5}






p


(



V







σ












V










2


















)




=

















i


=


1


















M




















N







(





v











i





















0


,





σ












V










2



















I




)









(



5



)








由于到处是乘法, 我们使用自然对数将原式写为:





p

(

U

,

V

R

,

σ

2

,

σ

U

2

,

σ

V

2

)

=

i

=

1

N

j

=

1

M

I

i

j

(

ln

(

2

π

σ

)

+

(

r

i

j

u

i

T

v

j

)

2

2

σ

2

)

1

2

σ

U

2

i

=

1

N

u

u

T

1

2

N

K

ln

σ

U

2

1

2

σ

V

2

i

=

1

M

v

v

T

1

2

M

K

ln

σ

V

2

+

C

(6)

\begin{aligned}p(\mathbf{U}, \mathbf{V} \vert \mathbf{R}, \sigma^2, \sigma_{\mathbf{U}}^2, \sigma_{\mathbf{V}}^2) = & – \sum_{i = 1}^N \sum_{j = 1}^M I_{ij}\left(\ln(\sqrt{2\pi} \sigma) + \frac{\left(r_{ij} – \mathbf{u}_i^{\mathbf{T}} \mathbf{v}_j\right)^2}{2 \sigma^2}\right)\\ &- \frac{1}{2\sigma_{\mathbf{U}}^2} \sum_{i = 1}^N \mathbf{u}\mathbf{u}^{\mathrm{T}} – \frac{1}{2}NK \ln \sigma_{\mathbf{U}}^2\\ &- \frac{1}{2\sigma_{\mathbf{V}}^2} \sum_{i = 1}^M \mathbf{v}\mathbf{v}^{\mathrm{T}}- \frac{1}{2}MK \ln \sigma_{\mathbf{V}}^2 + C \end{aligned} \tag{6}
















p


(



U



,





V







R



,





σ










2









,





σ












U










2


















,





σ












V










2


















)




=























































i


=


1


















N




























j


=


1


















M




















I











i


j























(



ln


(










2


π
























σ


)




+















2



σ










2
























(




r











i


j




























u











i










T






















v











j



















)












2




























)






























2



σ












U










2






























1































i


=


1


















N




















u





u













T





























2














1




















N


K




ln





σ












U










2












































2



σ












V










2






























1































i


=


1


















M




















v





v













T





























2














1




















M


K




ln





σ












V










2




















+




C
























(



6



)








由于 (6) 式诸多项与参数无关, 最大化 (6) 就简化为





min

E

=

i

=

1

N

j

=

1

M

I

i

j

(

r

i

j

u

i

T

v

j

)

2

+

λ

U

2

U

F

2

+

λ

V

2

V

F

2

\min E = \sum_{i = 1}^N \sum_{j = 1}^M I_{ij}\left(r_{ij} – \mathbf{u}_i^{\mathbf{T}} \mathbf{v}_j\right)^2 + \frac{\lambda_\mathbf{U}}{2} \|\mathbf{U}\|_F^2 + \frac{\lambda_\mathbf{V}}{2} \|\mathbf{V}\|_F^2






min




E




=

















i


=


1


















N




























j


=


1


















M




















I











i


j
























(




r











i


j




























u











i










T






















v











j



















)












2











+



















2















λ











U









































U















F








2




















+



















2















λ











V









































V















F








2























其中



λ

U

=

σ

2

/

σ

U

2

\lambda_\mathbf{U} = \sigma^2 / \sigma_{\mathbf{U}}^2







λ











U





















=









σ










2









/



σ












U










2





















,



λ

V

=

σ

2

/

σ

V

2

\lambda_\mathbf{V} = \sigma^2 / \sigma_{\mathbf{V}}^2







λ











V





















=









σ










2









/



σ












V










2





















.

于是就获得了相应的正则项.



5. 小结

从这里可以看出, 正则项并非强加上去, 而是推导出来的. 这是本贴撰写的源动力.

几点未完成工作:




  1. λ

    U

    \lambda_\mathbf{U}







    λ











    U


























    λ

    V

    \lambda_\mathbf{V}







    λ











    V






















    好像不能从数据求出, 还是只有用户自己设定;

  2. 推导的过程还不完整, 需要检查. 特别是球形高斯那里, 可以视为作业.



版权声明:本文为minfanphd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。