嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)
嵌入式系统程序开发过程(嵌入方法在推荐系统中的应用)为什么嵌入方法有效呢?是因为高维空间表达能力太强,现实生活中的样本数量一般是较小的(相比于高维空间近乎无限的表达能力),只能“占据”高维空间很小的一个区域(这个区域一般等价于一个很低维的空间),所以我们可以将这些样本投影到等价的低维空间中,也能让它们有一定的区分度。 霍夫曼编码就是一种采用最小信息量来编码的方式,我们也可以将从一种可行的长编码到最短霍夫曼编码的映射关系看成是一种嵌入。 通过嵌入,我们可以在更低的维度解决问题,人类的大脑是比较善于处理低维(三维以下)问题的,对高维问题更难理解,所以嵌入方法也是一类方便我们理解和认知的方法。
中也大致满足(可能有一定的信息损耗)关系F。
现实生活中嵌入的案例很多,比如我们在平面中画三维物体其实是一种嵌入,我们需要保持物体之间的相对距离、位置以及遮挡关系,这种关系保持得越好,那么画的就越逼真。
霍夫曼编码就是一种采用最小信息量来编码的方式,我们也可以将从一种可行的长编码到最短霍夫曼编码的映射关系看成是一种嵌入。
通过嵌入,我们可以在更低的维度解决问题,人类的大脑是比较善于处理低维(三维以下)问题的,对高维问题更难理解,所以嵌入方法也是一类方便我们理解和认知的方法。
为什么嵌入方法有效呢?是因为高维空间表达能力太强,现实生活中的样本数量一般是较小的(相比于高维空间近乎无限的表达能力),只能“占据”高维空间很小的一个区域(这个区域一般等价于一个很低维的空间),所以我们可以将这些样本投影到等价的低维空间中,也能让它们有一定的区分度。
总结一下,嵌入方法是指通过数学变换(机器学习算法)将高维空间的对象映射到低维空间并保持相关性质的一种方法。
除了方便人类理解外,通过嵌入我们至少可以获得如下价值:
- 嵌入到低维空间再处理,可以减少数据存储与计算成本(高维空间有维数灾难);
- 嵌入到低维空间,虽有部分信息损耗,但是这样反而可能提升模型的泛化能力(样本一般含有噪音,通过嵌入低维空间,其实可以“过滤掉”部分噪音);
本篇文章我们主要讲解嵌入方法在推荐系统上的应用,下面我们从嵌入方法的基本原理开始介绍。
上一节对嵌入方法做了一个比较简单的介绍,在本节我们来讲解嵌入方法怎么应用于推荐业务上。一般来说,在推荐系统上,可以采用以下两种嵌入方式进行推荐,下面我们分别介绍。
在讲之前,先说明一下,对于推荐业务来说,最主要的两种推荐(产品)形态是标的物关联标的物推荐和完全个性化推荐,这里我们讲嵌入方法在推荐上的应用,主要是应用于这两种推荐场景。
1.学习标的物的嵌入表示
通过构建算法模型,基于用户行为数据、标的物metadata数据将标的物嵌入到低维空间中,得到每个标的物的嵌入向量表示。有了标的物的嵌入向量,我们可以通过如下三种方式用于推荐业务。
(1) 构建标的物关联推荐
将标的物嵌入到同一个空间后,“距离”越近的标的物往往越相似。我们可以利用该性质来计算两个标的物之间的相似性。一般计算相似性可以采用cosine余弦的方法。
我们可以为每个标的物求出最相似的K个标的物作为关联推荐。具体在大规模数据情况下,怎么分布式求topK相似度,我在《协同过滤推荐算法》第三节计算topK相似度中有详细讲解怎么利用Spark来分布式计算,这里不再赘述。
(2) 对标的物进行聚类,形成个性化专题,用于产品运营,也可以用于关联推荐
有了标的物的向量表示,我们还可以对标的物进行聚类,同一类的标的物往往是相似的,这一类标的物可以用于制作专题,通过人工增减部分标的物,给专题起一个描述性的标题,就可以用于人工运营,这是算法和人工配合的很好的一个案例,特别适合长视频行业。
另外,聚类后的标的物也可以作为关联推荐,将同一类的其他标的物作为关联推荐列表。
(3) 为用户推荐个性化的标的物
有了标的物的嵌入向量表示,我们可以非常容易地为用户进行个性化推荐。具体的推荐策略有如下两个:
a. 通过标的物的嵌入获得用户的向量表示,通过用户向量与标的物向量内积计算预测评分
通过用户操作过的标的物的嵌入的“聚合”来获得用户的嵌入表示,可以采用(加权)平均或者RNN(见参考文献15,本文不讲解)等方式来聚合。
,记
是用户按照时间顺序最近操作过的k个标的物(
是最近操作过的),标的物
的嵌入表示记为