一、Embedding(嵌入)学习常⽤算法
为什么需要使用Embedding:
- Embedding是一个软分类问题,不需要明确的将某个用户或者物品划分到具体的类别,类似SVM引进分类错误变量 ξ \xi ξ,变成一个软分类问题;
- 我们不需要关心分类标准,就是该分为哪些具体的类别,可以由数据自动计算得到;
- 对于每一个user,可以得到对于隐层变量,也就是属于某一类的概率;
- 同样对于每一个item,也可以得到对于隐层变量,即属于某一类的概率;
下面介绍几种Embedding算法:
-
Embedding form MF:上一篇文章中所介绍的MF(矩阵分解)算法,就是Embedding学习算法之一,MF将用户和物品的评分矩阵分为用户端隐层向量和物品端隐层向量,如下图所示:
MF具有如下优点:具有如下特点:
- ⽤latent vector来表⽰user和item(ID embedding)
- 组合关系⽤内积 inner product(衡量user对于某⼀类商品的偏好)
对于FM,有篇博文很详细的阐述了,给个传送门(FM的应用)。
-
Embedding from topic model:这里我主要想介绍的是PLSA和LDA,关于PLSA和LDA,首先需要介绍两种学派:频率学派和贝叶斯学派,因为PLSA属于频率学派,而LDA属于贝叶斯学派。简单的说,频率派认为参数是客观存在,不会改变,虽然未知,但却是固定值;贝叶斯派则认为参数是随机值,因为没有观察到,那么和是一个随机数也没有什么区别,因此参数也可以有分布。例如对于抛硬币来说,频率学派可以通过做任务(如抛10000次硬币)来得到硬币抛出正面的概率分布,而贝叶斯学派则是先确定一个先验概率,然后再通过实验得到观察结果,并结合先验概率和观察结果得到后验概率;
- PLSA:通过举例文本生成来帮助理解,如下图所示:
对于topic model来说,存在连接文档和词语的主题词,这个主题词可以理解为上面MF的隐层向量,为了生成如图中的文档d,“坚强的孩子,依然前行在路上…”,首先需要由给定文档d来生成隐层向量(主题词),也就是 p ( z ∣ d ) p(z|d) p(z∣d),假设有3个,*“情感”、“事物”、“行动”、*分别选取的概率为0.1,0.5,0.4,可以理解为抛硬币随机选择一个,但不是等概率。确定好主题词后,然后选取的便是属于这个主题词的词语,如“孩子”便是属于主题词“事物”的词语,数学化表达就是 p ( w ∣ z ) p(w|z) p(w∣z),所以产生一个词的概率公式是: p ( w ∣ d ) = ∑ z p ( w ∣ z ) p ( z ∣ d ) p(w|d) = \sum\limits_z {p(w|z)} p(z|d) p(w∣d)=z∑
- PLSA:通过举例文本生成来帮助理解,如下图所示: