基于深度神经网络的协同过滤推荐系统体系结构研究

2023-12-29 02:55蔡辉虎
信息记录材料 2023年11期
关键词:架构向量神经网络

蔡辉虎

(闽南理工学院信息管理学院 福建 泉州 362700)

0 引言

随着互联网信息的普及,人们获得信息的方式更加多样化,海量的信息使得人们难以准确地找到自己需要的信息。 在这样的背景下,推荐系统的作用越来越受到人们的重视。 推荐系统利用人们的历史记录、行为、偏好等多种信息来进行推荐,帮助人们快速准确地找到自己需要的信息,提高了信息的利用效率。 推荐系统在多个领域有着广泛应用。 在商业领域,它可以帮助企业实现精确的市场分析,从而提升销售额。 在旅游领域,推荐系统能根据用户需求提供个性化服务,辅助他们规划旅程。 在餐饮领域,它能依据用户口味推荐相应餐饮,提升用户满意度。 在推荐系统研究中,基于协同过滤的方法是最经典且常用的方法之一。 通过学习用户历史行为和偏好,该方法能进行准确可靠的推荐[1]。 此外,混合推荐系统也是一个研究热点。 通过结合多种不同类型的推荐算法,可以提高推荐的准确度和可靠性。

总之,推荐系统已经成为当今信息社会中不可或缺的重要组成部分。 它在解决信息过载、提高信息利用效率、个性化服务等方面发挥着越来越重要的作用。 未来,推荐系统将会在更多的领域得到应用,为人们提供更好的信息服务。

1 协同过滤推荐系统

推荐系统是一种用于预测用户对物品偏好的技术。在推荐系统中,协同过滤是一种常用的技术,其核心是使用机器学习算法来推荐物品[2]。 该技术可以分为基于记忆的算法和基于模型的算法。 协同过滤中的内核是指机器学习算法,其中监督学习是主要的基于内核的方法。 但是,近年来基于模型的算法更加流行,因为其具有更高的准确性。 其中矩阵分解是目前最常用的方法之一,它可以提供精确的推荐效果,并且易于理解和嵌入到系统中。 推荐系统的预测是通过对用户和项目的点击行为进行分析来实现的。 通过分析这些行为数据,可以获得潜在的偏好,并用于生成推荐结果。 然而,基于协同过滤的推荐系统存在一些缺点,例如无法考虑到非协作数据,例如图片、文本、音频、视频和会话等[3]。 为此,推荐系统的研究正在朝着基于深度学习的解决方案方向发展。 这种方法使用不同类型的深度学习架构,如卷积神经网络、循环神经网络、多层感知器和自编码器等,根据数据类型实现不同的特征提取和建模方法,以提高推荐效果。

图1 所示的是一种基于神经网络的协同过滤架构。该架构使用了原始数据向量稀疏表示的用户和项目数据。在稀疏层之上是全连接的嵌入层,该层可以将原始数据向量投影到密集向量。 通过这种方式,可以更好地表达用户和项目之间的关系。 之后,通过多层感知器(multi-layer perceptron, MLP)将这两种路径的特征结合起来,进一步提高预测的准确性[4-5]。 这种基于神经网络的协同过滤架构,不仅可以用于推荐系统,还能用于处理其他的计算机视觉和自然语言处理任务。

图1 基于神经网络的协同过滤系统架构

协同过滤(collaborative filtering, CF)中使用一种深度学习类型的架构,其中宽分量是单层感知器,而深分量是MLP。 将这两种学习技术相结合,可以使推荐系统同时捕获泛化和记忆。 宽组件捕获简单的数据关系,而深组件可以进行更有价值的抽象(概括)。 本文提出的方法可以扩展到宽深度学习架构。 深度因式分解机(deep factorization machines,DeepFM)架构将宽组件和深组件连接起来,以共享相同的输入原始特征向量。 它允许从输入的原始特征中同时学习低阶和高阶特征交互。 深度调频由两个部分组成:调频分量和深度分量。 FM 组件是用于学习特征交互的因式分解机。 DeepFM 实现了0.48%(公司数据集)和0.33%(Criteo 数据集)的精度增益比较。

经典方法通过矩阵分解(matrix factorization,MF)进行预测。 一些基于神经网络的协作滤波方法则采用非线性的多层感知器(MLP)阶段取代了线性点积的MF。 不使用矩阵分解的神经网络方法通常基于混合深度模型,这些模型利用额外数据的评级矩阵,但对大多数现有推荐系统来讲不适用。 广泛和多视图的深度学习架构已被用作纯神经网络推荐系统方法;但主要缺点在于宽层的大小影响了可扩展性。 本文提出的方法的架构具有可扩展性,因为它仅基于推荐系统的项目维度,而不依赖于庞大的用户维度和用于训练模型的样本数量。 当前的深度神经网络推荐系统方法利用MF 层或嵌入层来捕捉项目和用户潜在向量。 以下操作是基于回归的架构:预测每个用户的N个最佳推荐,然后根据推荐系统中的项目数来运行相应数量的预测,从而为用户提供推荐。

2 协同过滤推荐系统体系结构设计

文中提出一种协同过滤推荐系统体系结构,该结构基于深度神经网络,不需要像MF 那样的外部机器学习级别。 它不使用显式的嵌入层,架构来源于它通过分类过程而不是回归过程的方法。 分类方法需要与现有方法有不同的设计,通过使用分类标签而不是数值来学习。 此外,本文创建一个简单且可扩展的体系结构。 为了实现这个目标,放弃数字评级值和预测,只使用二进制相关/非相关评级和二进制投票/非投票信息。

图2 为MF 算法,神经协同过滤算法(neural networkbased collaborative filtering,NCF)和协同过滤推荐系统算法三种模型结构。 首先,矩阵分解(MF)和神经协作过滤(NCF)模型(如图2a 和图2b 所示)都是基于回归的:它们提供预测值,并按预测值最高的N 个进行推荐。 而协同过滤推荐系统(如图2c 所示)则是基于分类的神经网络。重要的是,协同过滤推荐系统并不基于机器学习的矩阵分解过程或嵌入层;它直接使用原始评级数据,避免了特征工程阶段的需求。 需要指出的是,协同过滤推荐系统的原始数据由用户向量组成,其中每个向量都含有项目信息,但没有像NCF 基线模型那样将用户向量与项目向量相结合,也没有将用户/项目向量与因子分解机的密集嵌入相结合。 这使得研究人员所提出的方法相比现有基准更为简单,且具有更高的可扩展性。

图2 MF,NCF 和协同过滤推荐系统三种模型结构

在MF 的机器学习方法中,需要为数据集中的每一个用户(U)以及每个项目(I)学习一组F 因子,其中F 的数量通常在12 ~40 之间。 值得注意的是,在商业推荐系统中,用户的数量通常远大于项目的数量。 必要的MF 参数为(U+I)F,而NCF 方法则是基于MF 进行构建。 在MLP中,需要学习一定数量的参数。 假设第一层内部含有n 个神经元(表示为Ln),则MF 模型需要(U+I+Ln)F 个参数才能运行,并处理第一层的MLP。 对于后续的层,还需要进一步学习参数(表示为Lm),但通常Lm(后续层神经元的数量)不会是一个很大的数字。 对于输出层,只需要Lm个参数,因为研究人员只需一个神经元来获取回归值(预测结果)。 综上所述,当MLP 具有两个内层时,神经协同过滤(NCF)基线模型需要(U+I+Ln)F+(Ln+1)Lm 个参数。

本文提出的协同过滤推荐系统具有可扩展性,只需利用NCF 基线的一小部分必要参数。 即便其使用了维度为I 的输出层,学习参数也仅需I(Lm+Ln)+LmLn 个。 另一个值得关注的改进在于其完全基于神经网络的处理方式,允许对从原始数据到结果(预测)的非线性关系进行建模。 NCF 方法并非基于既有的机器学习结果来构建,这样可能会遗失一些丰富的数据依赖性,而是使用需要的MF参数(U+I)F 作为基础。 此外,如图3 所示,协同过滤推荐系统采用与基线不同的方式处理RS 预测。 为了向用户提供N 个推荐,前提是忽略用户投票项目,MF 需要进行I次的点积运算(如图3a 所示)。 NCF(图3b)必须向前运行I 倍MLP,文献[6]所提出的协同过滤推荐系统(图3c)只需向前运行一次MLP。 由于研究人员使用的是分类目标,输出层将提供I 次分类概率。 若提出N 个建议,只需要选择N 个最高的概率即可。

图3 协同过滤推荐系统以与基线不同的方式处理推荐预测

图4 训练集和测试集的损失函数对比

图5 训练集和测试集的准确率对比

3 实验及结果分析

实验使用了MovieLens 1 M1 数据集。 测试的分类质量指标主要是精确度和召回率。 MovieLens 选择的关联度阈值为4。 经测试的建议数量N 从1 到96 个不等,增加了5 个。 训练集是从80%的样本中随机获得的,而测试集使用了剩余的20%。 本文对多种神经网络架构进行了实验,并最终选择了那些在测试中取得了最佳性能的架构。实验使用MovieLens 数据集的推荐和分类结果。

第一组实验利用MovieLens 数据集比较了所提出的短方法和所提出的长方法的结果,此数据集中的项目数I为1682。 已经通过实施深度学习的策略,具体使用了一种密集的深度神经网络进行训练。 这个神经网络的具体配置如下:输入层的维度为3364,输出层的维度为1682;第一个内部隐藏层含有400 个神经元,接着是一个0.2 的丢弃层以减少过拟合;然后是第二个内部隐藏层,包含200 个神经元,后接另一个0.2 的丢弃层。 所有层都使用“relu”激活,除了输出层使用“softmax”以提供概率分类结果。 由于使用分类标签,因此选择的损失函数是“分类交叉熵”,所选优化器为“adam”。 图8 显示训练和测试过程的结果。 可以看出,没有过拟合,损失函数降低到非常低的值,精度提高到0.83 的值。 神经网络只需80 个迭代次数就能学习。 结果显示该架构对获得准确的精确度和召回值的良好期望。

4 结语

本文介绍了一种可扩展深度神经网络的协同过滤推荐系统体系结构。 推荐系统在解决信息过载、提高信息利用效率、为用户提供个性化服务等方面发挥重要作用,已经成为当今信息社会中不可或缺的组成部分。 协同过滤和混合推荐系统是最经典和常用的方法之一。 本文基于深度学习的推荐系统方法,神经网络协同过滤架构可以在推荐系统效率方面提供高精度,并可用于视觉和自然语言处理任务。 同时,深度学习架构可以使用不同的架构来处理各种数据类型。 本文提出了一种基于深度神经网络的协同过滤推荐系统体系结构DNCFR,不需要外部机器学习策略,也不用显式的嵌入层。 这个方法通过分类过程来学习,在可扩展性方面优于MF 和NCF 模型。 同时,它只使用二进制分类和二进制投票/非投票信息,而不使用数字评级和预测。 通过实验使用了MovieLens 数据集评估所提出的神经网络架构,测试中使用了精确率和召回率作为分类质量指标,并取得了良好的结果,结果表明它在精确度和召回率上表现良好。

猜你喜欢
架构向量神经网络
基于FPGA的RNN硬件加速架构
向量的分解
聚焦“向量与三角”创新题
功能架构在电子电气架构开发中的应用和实践
神经网络抑制无线通信干扰探究
LSN DCI EVPN VxLAN组网架构研究及实现
向量垂直在解析几何中的应用
基于神经网络的拉矫机控制模型建立
向量五种“变身” 玩转圆锥曲线
复数神经网络在基于WiFi的室内LBS应用