深度模型(十四):CB2CF

编程入门 行业动态 更新时间:2024-10-09 02:23:58

<a href=https://www.elefans.com/category/jswz/34/1769690.html style=深度模型(十四):CB2CF"/>

深度模型(十四):CB2CF

原文地址:CB2CF: A Neural Multiview Content-to-Collaborative Filtering Model for Completely Cold Item Recommendations

1. 简介

Microsoft的推荐服务在Windows Store为全球数十亿用户提供服务(包括MS商店和Xbox)。该商店提供许多不同类型的推荐方案,其中“类似物品清单”(标题为 “其他人也喜欢”)是用户参与度和销售的主要驱动力。引入新(冷)商品时,我们希望能够仅根据CB数据即可找到其最相似的商品。CB2CF的目的是仅从内容信息产生物品的相似度,并且模型训练的监督信息来自外部的CF模型。

在推荐系统研究中,CF模型常用于各种个性化任务[9-11]。CF模型的常见方式是学习一个低维的潜空间捕获用户的偏好模式或“口味”。例如, 矩阵分解(MF)模型[8,12,44]通常基于用户使用模式或显式评分数据集,将用户和项目映射到稠密向量表示。相对CF方法,另一种替代方法是基于内容的(CB)方法,它使用项目的属性,例如元数据和项目说明等。通常认为CF方法比CB方法更准确,因为它捕获了特定的用户品味[32]。

CB2CF支持完全新的物品嵌入到CF模型空间中(物品还没有使用数据)。这个能力对于现实世界中的推荐系统至关重要,因为每天都将有新项目添加到目录中。通常,这些新项目具有内容特征 ,比如分类信息,或从连续和非结构化的文本数据中提取而来的特征。例如, 电影的内容特征包含标签(例如流派),数字值 (发行年份)和文字说明(情节)。

CB2CF模型的训练项目既包含CB数据也包含CF数据。项目的CB数据包含多种CB特征,CF向量由BPR(Bayesian Personalized Ranking)[12] 算法产生。然后,CB2CF模型学习从CB项目表示形式(输入)到其对应的CF项目向量(输出)的多视图映射 。

CB2CF在word2vec[5]表示之上利用卷积神经网络(CNN)来学习从项目的文本描述(电影情节或应用程序的描述)到BPR产生的CF向量的映射。除了文本描述之外,还可以通过添加不同类型的结构化元数据作为输入来增强模型。该元数据与文本信息一起使用时,可用于提高CB2CF模型的总体准确性。

这里提醒大家,我们选择使用非常流行的BPR模型是为了更好的重现性。监督的选择是可配置的,可以被各种其他CF方法[8]替代。同样,我们选择CNN[7]来处理CB数据,也可以替换为任何其他模型,如[36, 37]。本文的主要重点是研究项目的CB和CF表示之间的联系。CB2CF并不暗指与现有的CF或混合模型竞争。

这项工作的贡献有两方面:首先,我们引入了CB2CF模型,将项目CB属性与其CF表示联系起来。这对于推荐没有使用数据的新产品(冷启动)特别有用。我们发现CB2CF模型明显好于使用相同CB数据的经典CB模型。

2. 相关工作

深度学习模型正在越来越多的机器学习应用中得到应用。在计算机视觉和语音识别领域已经取得了相当大的技术进步。在自然语言处理(NLP)中,深度学习方法主要集中于学习单词向量表示[3-6,30]。具体来说,带负采样的SkipGram (SGNS)[5],也被称为word2vec,因其在几种语言任务中的广泛应用而受到广泛关注。

Word2vec将稀疏的1- V编码(其中V是词汇表的大小)映射到密集的低维潜在空间中编码语义信息。Kim[7]最近的一项工作进一步增强了这种方法,将CNN应用在潜在单词表示之上,以便从非结构化文本数据中收集更多信息。

我们的模型的第一部分从类似的体系结构开始:首先,建立一个word2vec模型,以便将从项目描述中提取的单词映射为潜在的语义表示。然后,层叠放置CNN模型,利用语义信息预测项目的CF表示。因此,本文中的模型充当项目的内容特征与其CF表示之间的映射。

许多人尝试利用多视图来学习表示[25]-[28]。在推荐系统的背景下,Wang等人提出了一种层次贝叶斯模型,用于学习内容信息和协同过滤评分的联合表示。Djuric等人[21]引入了层次神经语言模型,用于联合表示文档及其内容,并应用于个性化推荐。Xiao和Quan[22]提出了一种基于协同过滤和word2vec的混合推荐算法,推荐得分由CF和CB得分的加权组合计算。在[38]-[40]中介绍了其他的混合推荐系统。

本文与上述工作有所不同:首先,我们关注的是完全冷启动的场景,即CF信息完全不可用的项目。无法推断这类项目的联合表示。因此,我们训练CB2CF直接从项目的CB视图推断项目的CF视图。其次,CB2CF引入了一个灵活的模型体系结构来同时支持各种输入类型的组合。第三,CB2CF的任务是学习项目的CF表示,而不尝试学习用户表示。

可能最相似的工作是《[35]》,作者提出只用音轨来学习歌曲的表示。与[35]不同的是,我们提供了一个支持各种不同输入类型的多视图模型。

与[35]的直接比较是多余的:因为这些模型是基于完全不同的CB输入的,所以比较只能提供有关手头任务的CB输入有用程度的信息。不过,我们确实提供了比[35]广泛得多的CB2CF的评估。我们覆盖了两个不同的领域(电影和应用程序),并分析了每个信息源(视图)的贡献。

3. CB2CF模型

接下来,我们提供对所提出的CB2CF模型的详细描述。回想一下,我们的任务是根据项目的内容(文本描述/元数据)预测CF的表示形式。这项工作专注于仅从隐式反馈中推断项目关系[12]。给定数据集合 I = { k } k = 1 K I=\{k\}_{k=1}^K I={k}k=1K​,用户集合 U = { u } u = 1 Q U=\{u\}_{u=1}^Q U={u}u=1Q​,用户-项目矩阵 A ∈ { 0 , 1 } Q × K A\in\{0,1\}^{Q\times K} A∈{0,1}Q×K,首先采用BPR算法产生一个有项目 k k k到项目CF表示 v v v的映射 M C F : I → R n M_{CF}:I\rightarrow R^n MCF​:I→Rn。注意这里我们丢弃了BRP算法产生的用户表示,只保留项目表示。

项目不同的CB信息采用不通的表示方法。对于文本信息,我们采用映射 M w 2 v I → R l × m M_{w2v}I\rightarrow R^{l\times m} Mw2v​I→Rl×m将每个项目映射到一个 l × m l\times m l×m的矩阵,矩阵的行对应项目文本描述信息的前 l l l个单词的词向量,如果单词数少于 l l l,则用0向量补齐, m m m表示词向量的维度。词向量由 w o r d 2 v e c word2vec word2vec模型产生。 M w 2 v M_{w2v} Mw2v​映射的输出作为基于CNN的文本组件的输入。

文本数据的第二个映射将项目映射到其词袋(BOW)表示形式,表示为 M B O W : I → [ 0 , 1 ] b M_{BOW}:I\rightarrow [0,1]^{b} MBOW​:I→[0,1]b。此映射首先在整个词汇表的word2vec表示上应用k-means聚类。我们用b表示聚类后簇数。然后,在项目描述文字中的每个单词矢量和b个聚类中心之间应用软对齐。结果是直方图矢量,然后将其标准化为概率以形成BOW表示形式。这种方法受到计算机视觉中著名的BOW模型的启发[15](另一种方法是使用TFIDF [16],但是,在我们的初始实验中,BOW方法优于TFIDF)。

对于标签/类别形式的CB信息,我们定义了一个从项目到二值向量的映射 M t a g : I → 0 , 1 T M_{tag}:I\rightarrow {0,1}^T Mtag​:I→0,1T。 T T T表示标签的个数。二值向量中的每个位置的值都指示对应位置的标签是否与项目相关联。

我们应用的最后一个映射用于数字输入,记为 M n u m : I → R c M_{num}:I\rightarrow R^c Mnum​:I→Rc。在这项工作中,数字功能仅是电影的发行年份。因此 M n u m M_{num} Mnum​退化为 M n u m : I → N M_{num}:I\rightarrow N Mnum​:I→N。

为了利用不同的信息源,我们利用了神经多视图回归模型,该模型由与信息源类型相对应的三种不同类型的组件组成:文本,标签和数字信息。在下文中,我们将详细描述此体系结构。

3.1 文本组件

文本组件旨在接收原始文本作为输入并输出固定大小的向量。在这项工作中,我们实现了两种不同类型的文本组件:被称为“ CNN”和“ BOW”(图1中标记为红色)。CNN方法沿用了[7]中Kim的“ CNN非静态”模型。如前所述,使用 M w 3 v M_{}w3v M​w3v,我们将文本输入中的单词序列映射到一个矩阵,该矩阵用作CNN网络的输入。图1(d)中显示了这种方法的说明(摘自[7])。我们注意到,反向传播过程将通过CNN到达初始word2vec表示上,从而使单词嵌入针对当前的CF预测任务进行自由调整。因此,在整个训练过程中都会对初始映射进行微调。

我们的CNN由一个1D卷积层组成,其滤波器长度为3,L2正则化。接下来是全局最大池化层(在时间轴上应用卷积和池化)和附加的完全连接(FC)层。与[7]相反,我们没有应用具有不同滤波器长度的并行卷积层。我们进行了多种滤波器长度(2-12)的实验,但这些尝试未能实现与目标有关的任何收益。在[31]中也有类似的观察。

我们在CNN前面随机插入了一些单词。此技术有助于提高模型的泛化能力并避免过拟合。丢弃单词的概率可以是固定的,也可以与单词的频率成正比。我们发现这两种方法都产生相似的结果,因此导致使用固定的下降概率0.2。

我们考虑了基于CNN的模型的其他几种变体:(1)“ CNN随机”模型通过使用单词向量的随机初始化从头学习单词表示; (2)在整个训练过程中保持word2vec向量固定的“ CNN静态”模型; (3)“ CNN多渠道”模型,是“非静态”模型和“静态”模型的组合。但是,“ CNN非静态”变体的效果优于所有其他变体。在本文的其余部分,我们将此变体称为CNN组件。

我们使用文本信息的第二种方法是基于word2vec向量表示形式之上的BOW。 BOW表示由 M B O W M_{BOW} MBOW​产生。并输入后面的神经网络(包含两层FC层,并采用dropout)。 BOW网络架构如图1(c)所示。

3.2 标签组件

除了文本信息之外,利用项目标签元数据可能会很有用。标签网络包括一个维度等于标签数量二进制输入层,一个包含L2正则化FC隐藏层组成。实验显示通过附加更多隐藏层没有获得进一步的改进。标签组件的输入由 M t a g M_{tag} Mtag​给出。标签组件如图1(a)所示。

在电影例子中,我们为不同类型的元数据使用了不同的标签组件:流派,演员,导演和语言标签。根据标签的数量及其可用的组合的数量为每个组件确定隐藏层的维度。例如,演员组件可能分配了比语言组件更高的维度。这是由于演员的数量比语言的数量大得多。此外,电影通常包含多个演员,但只有一种语言。

3.3 数字组件

数字组件旨在处理数值数据。在电影例子中,唯一可用的数值是电影的发行年份。因此,仅将数字组件作为具有单个输入神经元的网络(图1(b))。此输入由 M n u m M_{num} Mnum​给出。

3.4 组合组件

组合器组件旨在组合来自不同组件的多个输出,以便预测到CF空间。组合器组件(图1(e)所示)由多个输入层组成,这些输入层通过L2正则化完全连接到隐藏层。因此,组合器将来自先前各层的所有输出连接起来,以形成一个单层,然后是与CF空间相同尺寸的最终FC输出层。

3.5 完整的CB2CF模型

完整的CB2CF模型如图2所示。根据图1,标签、文本和数字组件分别用蓝色、红色和绿色着色。组合器组件为黄色。图2说明了CB2CF模型在电影相似性任务中的应用,以“低俗小说”电影为例。将流派、演员、导演和语言建模为标签组件,将电影情节摘要建模为文本组件。文本组件可以是CNN或BOW网络。电影的发行年份被建模为数字部分。然后将所有组件的输出馈送到组合器组件中。我们模型采用的损失函数是均方误差(MSE),这是回归分析任务的常见选择。我们发现ReLU [1]的激活优于其他激活函数。在推断阶段,项目之间的相似性是通过它们各自向量的余弦相似度来计算的。

需要强调的是,CB2CF模型具有极大的灵活性,每个组件都可以很容易地与组合器断开连接,扩展其他信息源也很简单。例如,我们可以将电影拍摄的国家和电影的时长分别添加为附加标签和数字组件。此外,其他高级NLP模型(例如[36],[37])也可以用作文本组件,我们将这些模型留待将来研究。

图1


图2

更多推荐

深度模型(十四):CB2CF

本文发布于:2024-02-27 17:45:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707611.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:深度   模型   CB2CF   十四

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!