概率论

  1. 概率公式
    事件A发生的概率为P(A),则有:

P(A)=n(A)nP(A) = \frac{n(A)}{n}

其中,n(A)表示事件A包含的样本数,n表示样本空间中的样本数。

  1. 乘法公式
    多个事件同时发生的概率为各事件概率的乘积,即:

P(AB)=P(A)P(BA)P(A \cap B) = P(A) \cdot P(B|A)

其中,P(B|A)表示在事件A发生的条件下事件B发生的概率。

  1. 加法公式
    两个不相交事件A和B的并发生的概率为它们各自发生的概率之和,即:

P(AB)=P(A)+P(B)P(A \cup B) = P(A) + P(B)

其中,A和B不相交,即A ∩ B = ∅。

条件概率

对于等概率模型的情况下

条件概率公式
事件B在事件A发生的条件下发生的概率为P(B|A),则有:

P(BA)=P(AB)P(A)P(B|A) = \frac{P(A \cap B)}{P(A)}

其中,P(A ∩ B)表示事件A和事件B同时发生的概率。

联合概率

P(AB)=P(BA)=P(BA)P(A)=P(AB)P(B)\begin{aligned} P(A \cap B) &= P(B \cap A) \\ &= P(B|A) \cdot P(A) \\ &= P(A|B) \cdot P(B) \end{aligned}

其中,P(A ∩ B)表示事件A和事件B同时发生的概率,P(B|A)表示在事件A发生的条件下事件B发生的概率,P(A)表示事件A发生的概率。

  • 联合概率的链式法则

全概率

简单来说全概率公式就是联合概率中消除掉一个事件得到剩余事件的概率。消除掉的方法就是对这个事件的各个状态进行求和,如果被消除事件是一个连续值概率模型,就把求和符号换成积分。

全概率公式 对于一个试验,若它的样本空间S可以分解成若干个互不相交的事件A1、A2、…、An,则有:

P(B)=i=1nP(BAi)P(Ai)P(B) = \sum_{i=1}^{n} P(B|A_i) \cdot P(A_i)

其中,P(Ai)表示事件Ai发生的概率,P(B|Ai)表示在事件Ai发生的条件下事件B发生的概率。

这么理解,全概率公式是用来求解事件B的概率的,在A 发生的每一种情况下,B发生,存在一个概率 就是P(B|A_i) ,然后再乘以A_i发生的概率,然后求和就是B发生的概率了。
如果说,A没有一种情况发生,而B发生,这种情况,全概率公式的前提条件,S可以分解成若干个互不相交的事件A1、A2、…、An,这种情况就不成立了

或者说,A没有一种情况发生,而B发生的 概率是0,这种情况,全概率公式成立;这也说明了,B的发生是A的发生的结果,A不发生,B也不发生,无论A如何发生。
或者这样理解,对于A的所有取值,B的取值都有一个概率 ,这个概率的和就是B的概率了。

贝叶斯定理

  1. 贝叶斯公式 对于一个试验,若它的样本空间S可以分解成若干个互不相交的事件A1、A2、…、An,则有:

P(AB)=P(BA)P(A)P(B)P(A|B) = \frac{P(B|A)P(A)}{P(B)}

P(AiB)=P(BAi)P(Ai)j=1nP(BAj)P(Aj)P(A_i|B) = \frac{P(B|A_i) \cdot P(A_i)}{\sum_{j=1}^{n} P(B|A_j) \cdot P(A_j)}

其中,P(Ai|B)表示在事件B发生的条件下事件Ai发生的概率,P(B|Ai)表示在事件Ai发生的条件下事件B发生的概率,P(Ai)表示事件Ai发生的概率,分母是全概率公式的求和式。

先验和后验

先验概率是 以全事件为背景下,A事件发生的概率,P(A|Ω) = P(A)

后验概率是 以新事件B为背景下,A事件发生的概率, P(A|B)

  • 全事件一般是统计获得的,所以称为先验概率,没有实验前的概率
  • 新事件一般是实验,如试验B,此时的事件背景从全事件变成了B,该事件B可能对A的概率有影响,那么需要对A现在的概率进行一个修正,从P(A|Ω)变成 P(A|B),
    1. 所以称 P(A|B)为后验概率,也就是试验(事件B发生)后的概率
    2. 应该是假设B会发生 ,那么A发生的概率 如果是B发生以后A的概率 那不就成因果关系了么
      这样考虑更全面

一些统计指标

算术平均、几何平均、调和平均、平方平均、移动平均

https://www.cnblogs.com/liuning8023/p/3525920.html

简单算术平均,它只是加权算术平均的一种特殊形式

都分简单和加权的形式

方差、标准差、均方差、均方误差

https://www.lilinchao.com/archives/892.html

Pearson相关性分析(Pearson Correlation Analysis)

https://mengte.online/archives/1864

信息熵

信息量衡量的大小反应的是某个信息输入后,某个不确定性事件不确定性减小的大小,就是信息熵减小的大小,信息熵本身不衡量信息量的大小。

KL散度

《Algorithm for Non-negative Matrix Factorization》中提出两种损失函数的定义方式,从而能够定量的比较矩阵 Vm×n 和矩阵 V^m×n 的近似程度 :

以下是提取出的内容:

平方距离:

AB2=i,j(Ai,jBi,j)2\left \| A-B \right \|^2=\sum_{i,j}\left ( A_{i,j}-B_{i,j} \right )^2

KL散度:

D(AB)=i,j(Ai,jlogAi,jBi,jAi,j+Bi,j)D\left ( A\parallel B \right )=\sum_{i,j}\left ( A_{i,j}log\frac{A_{i,j}}{B_{i,j}}-A_{i,j}+B_{i,j} \right )

平方距离损失函数最小化问题:

minimize  VWH2s.t.  W0,H0\begin{matrix} minimize\; \left \| V-WH \right \|^2\\ s.t.\; W\geqslant 0,H\geqslant 0 \end{matrix}

KL散度损失函数最小化问题:

minimize  D(VWH)s.t.  W0,H0\begin{matrix} minimize\; D\left ( V\parallel WH \right )\\ s.t.\; W\geqslant 0,H\geqslant 0 \end{matrix}

平方距离损失函数的参数更新规则:

Wi,k=Wi,k(VHT)i,k(WHHT)i,k W_{i,k}=W_{i,k}\frac{\left ( VH^T \right )_{i,k}}{\left ( WHH^T \right )_{i,k}}

Hk,j=Hk,j(WTV)k,j(WTWH)k,jH_{k,j}=H_{k,j}\frac{\left ( W^TV \right )_{k,j}}{\left ( W^TWH \right )_{k,j}}

KL散度损失函数的参数更新规则:

Wi,k=Wi,kuHk,uVi,u/(WH)i,uvHk,vW_{i,k}=W_{i,k}\frac{\sum_{u}H_{k,u}V_{i,u}/\left ( WH \right )_{i,u}}{\sum_{v}H_{k,v}}

Hk,j=Hk,juWu,kVu,j/(WH)u,j)vWv,kH_{k,j}=H_{k,j}\frac{\sum_{u}W_{u,k}V_{u,j}/\left ( WH \right )_{u,j})}{\sum_{v}W_{v,k}}

这里使用乘法更新规则主要是为了在计算的过程中保证非负性,而使用梯度下降其中的加减运算是无法保证非负性的,但其实上述的乘法更新规则与基于梯度下降的算法是等价的,这一点在论文中也有论证。

推荐系统中的 NMF 其实是一个基于非负矩阵分解的协同过滤算法,从形式上的看只是借用非负矩阵分解的乘法更新规则来保证隐向量的非负性,其他变化并不大。

乘法更新规则主要用于保持非负性,并且该规则与基于梯度下降的算法等价,这一点已在论文中得到证明。

NMF(Non-negative Matrix Factorization)是推荐系统中一种基于非负矩阵分解的协同过滤算法。从表面上看,NMF只是借用了非负矩阵分解的乘法更新规则来确保隐向量的非负性,而其他方面变化不大。

在以上乘法更新规则中加入正则化项后,对于推荐系统的NMF,隐向量的更新方式可以写成如下形式:

pufpufiIuqifruiiIuqifr^ui+λuIupufqifqifuUipufruiuUipufr^ui+λiUiqif\begin{split} p_{uf} &\leftarrow p_{uf} \cdot \frac{\sum_{i \in I_u} q_{if} \cdot r_{ui}}{\sum_{i \in I_u} q_{if} \cdot \hat{r}_{ui} + \lambda_u |I_u| p_{uf}} \\ q_{if} &\leftarrow q_{if} \cdot \frac{\sum_{u \in U_i} p_{uf} \cdot r_{ui}}{\sum_{u \in U_i} p_{uf} \cdot \hat{r}_{ui} + \lambda_i |U_i| q_{if}} \end{split}

其中,r^ui\hat{r}_{ui} 可以选择使用FunkSVD求法(r^ui=qiTpu\hat{r}_{ui} = q_i^Tp_u),也可以使用BiasSVD的求法(r^ui=μ+bu+bi+qiTpu\hat{r}_{ui} = \mu + b_u + b_i + q_i^Tp_u)。当然,也可以进一步改进为使用SVD++的求法。这些方法都可以应用于隐向量的更新过程中,以提高推荐系统的准确性和性能。

参考

  1. https://blog.csdn.net/tao_292/article/details/124883212
  2. 如何理解先验概率与后验概率 - 昌硕的文章 - 知乎
  3. 信息熵越大,信息量到底是越大还是越小? - 骚动的白米饭的回答 - 知乎
  4. 如何理解K-L散度(相对熵)
  5. 基于矩阵分解的推荐算法