064 | 高级推荐模型之一:张量分解模型
洪亮劼
该思维导图由 AI 生成,仅供参考
上周我们分享了推荐系统中矩阵分解的点点滴滴,简单复习一下讨论过的三个模型。
第一,“基于隐变量的矩阵分解”,其优势是显式地对用户和物品信息中的隐含结构进行建模,从而能够挖掘更加深层次的用户和物品关系。
第二,“基于回归的隐变量模型”,这是在基本的矩阵分解基础上衍生出来的一类模型。这种基于回归的矩阵分解模型把显式特性和隐变量结合起来,对解决“冷启动”问题有一定作用。
第三,“分解机”是由基于回归的隐变量模型衍生出来的,并且吸纳了基于信息的推荐系统的一些观点,成为了一种可以融合多种信息的强有力的工具。
这周,我们跟随着这个脚步,进一步来讨论一些比较高级的模型,看这些模型如何抓住更多的用户和物品之间的关系。
今天,我们先来聊一种叫作“张量分解”(Tensor Factorization)的模型。
为什么需要张量分解
在我们探讨张量分解的一些基本思想之前,先来看一看,推荐系统在什么场景下需要张量分解。
我们还是要从矩阵分解说起。矩阵分解的核心思想,是用矩阵这种数据结构来表达用户和物品的相互关系。这里,我们一般谈论的都是一些最简单的关系,例如评分、点击、购买等(本文我们依然只是讨论评分)。在这种二元的模式下,矩阵就是最好的表达用户和物品之间关系的数据结构。
然而,在真实的场景中,用户和物品的关系以及产生这种关系的周围环境是复杂的。一个矩阵并不能完全描述所有的变量。例如,用户对于某个物品的评分是发生在某个地点、某个时间段内的。这种所谓的“上下文关系”(Context)往往会对评分产生很大影响。遗憾的是,一个矩阵无法捕捉这样的上下文关系。
我们之前讨论过的“基于回归的矩阵分解”和“分解机”,本质上都是在某种程度上绕开这个问题。采用的方法就是,依然用矩阵来表达二元关系,但是把其他信息放进隐变量中,或者是采用基于信息的推荐系统的思路来得到相关信息的建模。
除了这种思路,还有没有别的方法,可以把上下文关系融入到对用户和物品的建模中去呢?
这时“张量”就该上场了。
从本质上来说,张量就是矩阵的推广。我们可以这么理解,矩阵是对二维关系建模的一种工具;而张量,就是对 N 维关系的一种建模。在二维关系中,用户和物品的评分是唯一能够被建模的变量;而到了 N 维关系中,理论上,我们可以对任意多种上下文关系进行建模。
比如,我们刚才提到的时间,就可以组成一个三维的张量,分别为用户、物品和时间。然后,在这个三维的张量中,每一个单元代表着某一个用户对于某一个物品在某一个时间段的评分。
基于张量分解的推荐模型
我们已经讲了张量的作用。那么,如何使用张量来进行推荐模型的建模呢?
我们还是用刚才所说的“用户、物品和时间”作为例子。在这个三维的张量里,每一个元素代表的是用户对于物品在某个时间段上的评分。那么,根据矩阵分解的思路,我们怎么来对这个张量进行分解呢?
遗憾的是,张量的分解要比矩阵分解更为复杂。与矩阵分解不同,张量分解至少有两种不同的形式,这两种形式会引导出不同的分解模型和算法。
第一种分解模式叫 CP 分解(CANDECOMP/PARAFAC)。
拿我们刚才所说的三维张量来讲,CP 分解是把一个三维张量分解为三个矩阵。具体来说,比如我们的三维张量是 N 维用户乘以 M 维的物品乘以 R 维的时间段。那么,分解出来的三个矩阵就分别为 N 维乘以 K 维的用户矩阵,M 维乘以 K 维的物品矩阵,以及 R 维乘以 K 维的时间矩阵。这三个矩阵中的每一个向量都代表某一个用户、某一个物品和某一个时间段。K 在这里是一个参数,类似于矩阵分解中的隐变量的维度,我们也就可以把这个 K 理解成为隐变量的维度。
那么在原始的三维张量中,某一个元素就是这三个矩阵的某三个向量对应元素乘积相加的结果。CP 分解的一大好处就是,分解出来的三个矩阵的隐变量维度是一样的,这也就减少了需要调整的参数的个数。
第二种分解模式叫作 HOSVD 分解(High Order Singular Value decomposition)。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
张量分解模型是推荐系统中的一种高级模型,用于对上下文信息进行建模。在推荐系统中,矩阵分解虽然能够表达用户和物品的相互关系,但无法完全描述复杂的用户和物品关系以及周围环境的影响。因此,张量分解作为矩阵的推广,能够对N维关系进行建模,例如用户、物品和时间的关系。 基于张量分解的推荐模型有两种主要分解模式:CP分解和HOSVD分解。CP分解将一个三维张量分解为三个矩阵,每个矩阵代表用户、物品和时间段,具有相同的隐变量维度。而HOSVD分解则将三维张量分解为三个矩阵和一个更小的张量的乘积,给予不同的数据不同的自由度,但也增加了调整的“超参数”。 在实际应用中,需要设计目标函数或定义损失函数,例如使用“平方差”作为损失函数。而在求解张量分解时,可以使用随机梯度下降法或ALS方法进行优化。 总的来说,张量分解模型能够更好地捕捉用户和物品之间的关系,尤其是在包含上下文信息的复杂场景下。然而,张量分解的复杂性也带来了挑战,包括模型的复杂性和求解过程的难度。 通过本文,读者可以了解到张量分解模型在推荐系统中的应用,以及其在建模上下文信息方面的优势和挑战。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 技术内参》,新⼈⾸单¥98
《AI 技术内参》,新⼈⾸单¥98
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- Jack_Sainity稀疏性在从矩阵扩展到张量后变得更为严重2018-03-173
- 林彦我能想到的问题:张量分解所要用到的“上下文关系”(Context),如时间,本来是一个连续变量,怎么映射成合理的离散变量。某些时间段没有评分数据如何处理?2018-03-122
收起评论