APP下载

基于用户属性和生成对抗网络的推荐系统

2024-01-22王永强陈徐洪张壮壮董云泉

计算机工程与设计 2024年1期
关键词:正则物品向量

王永强,陈徐洪,张壮壮,董云泉

(1.南京信息工程大学 电子与信息工程学院,江苏 南京 210044;2.国家开发银行 重庆市分行,重庆 400023)

0 引 言

随着互联网技术的飞速发展,互联网上的信息呈现爆炸式增长。因此,为满足用户的特殊需求而设计的各种推荐系统得到广泛的研究[1-3],如基于内容的推荐[4,5]和基于协同过滤的推荐[6-8]等。深度学习在模式识别领域的广泛应用[9-12]为推荐系统的发展提供了新的研究方向。然而深度学习模型的损失函数设计对于缺乏较强领域知识的研究者颇为困难。Goodfellow等[13]在2014年提出的生成对抗网络(generative adversarial networks,GAN),代替设计复杂的损失函数,将问题置于极小极大的二人零和博弈框架中。随后Wang等[14]将GAN应用于信息检索(information retrieval,IR)领域,提出IRGAN模型,之后Dong-KyuChae等[15]又提出CFGAN模型,相比IRGAN模型,CFGAN推荐精度更好,推荐结果更理想。

CFGAN模型中考虑以用户交互向量作为条件,然而用户交互向量中存在未交互项语义模糊,即未评分项可能是用户不感兴趣或者尚未观察到的,使用这种不明确信息作为条件引导生成器生成接近真实情况的交互向量,会导致判别器回传不精确的梯度给生成器,从而造成推荐精度的降低。在实际推荐场景中,用户的很多属性信息可以被利用,将这些信息进行特征化可以充分表达和区分用户之间的关系,因而在设计推荐模型时考虑到用户属性对推荐质量的提升也起到关键作用。因此,本文在CFGAN的基础上,融合用户基本属性并进行特征提取和编码,将提取出的用户属性特征向量规范化,并作为生成对抗网络的条件指导生成器生成更加准确的推荐序列,提升用户体验。

1 相关工作

1.1 生成对抗网络模型

GAN包含两个模型:生成模型(Generator,G)生成尽可能真实的数据,判别模型(Discriminator,D)估计样本来自真实数据的概率。为了学习生成器在数据x上的分布pg(x), 生成器构建了一个从先验噪声分布pz(z) 到数据空间的映射G(z;θg); 判别器D(x;θd) 输出一个单一标量,表示x来自训练样本而不是来自生成器的概率,其中θg和θd分别为生成器和判别器的模型参数。G和D同时训练,D和G用价值函数V(D,G) 进行二人最小最大博弈

(1)

图1中给出了GAN的可视化表示,其中x′表示噪声z经生成器G映射到数据空间的合成数据样本,即x′=G(z;θg)。 通过先验噪声分布pz(z), 生成器G生成合成数据样本x′, 与真实数据样本x共同送入判别器D判别真假,利用回传的梯度学习G在数据x上的分布pg(x), 使其接近真实数据分布pdata(x), 重复对抗训练直到判别器无法判别数据是来自生成器还是真实数据。

图1 GAN基本结构

传统的GAN不能控制生成器生成数据的模式。因此,以便有条件地生成数据点,条件对抗模型(conditional GAN,cGAN)应运而生。图2为cGAN的模型框架,生成和判别模型都为多层感知机模型。在生成器G中,先验输入噪声z和y串联通过隐藏层生成与真实数据样本x相同维度的生成数据样本G(z|y); 在判别器D中,真实数据样本x或者生成数据样本G(z|y) 和y串接作为输入,送至隐藏层最后通过激活函数判定样本来自真实数据样本的概率D(x|y)。 为了公式的简洁性,省略生成器和判别器的模型参数θg和θd, 则cGAN的优化目标函数为

图2 cGAN基本框架

(2)

1.2 基于GAN的推荐模型

GAN模型在训练过程中只用到了反向传播,避免了复杂的推理过程,可以生成更加真实的样本。在推荐系统中,使用GAN可以模拟用户的偏好程度,进而实现用户的个性化推荐。

Dong-Kyu Chae等[15]指出IRGAN模型没有充分利用对抗性训练的优势,原因在于其训练方案使G生成离散的物品索引,这不同于原始GAN生成每个元素有连续值的向量,这种离散的物品索引时而标记为真时而标记为假,使判别器陷入困惑,不能传递正确的梯度给生成器,因此会降低推荐的精度。为了解决这一问题提出CFGAN模型,引入了向量形式的训练,其核心思想是将用户的历史交互信息作为特征向量,并以用户的交互信息作为条件,通过对抗训练使G生成看似合理的历史交互向量,而不是对相关物品进行离散抽样。判别器负责区分生成的用户交互向量和真实的用户交互向量。这也有助于避免使用强化算法来更新生成器,因为通过向量训练,G和D都可以使用SGD进行训练。

2 基于用户属性的CFGAN模型

假设系统有m个用户,n个物品,用ru表示用户u对所有物品的评分向量。为了模型的简洁性,本文考虑隐式反馈,即用户u对物品i有交互行为,则rui为1,没有交互行为则为0。没有交互行为不能表示用户对物品不感兴趣,也可能存在其它情况,比如用户尚未观察发现该物品。在原始CFGAN模型中,将用户(或物品的)交互向量作为额外的先验条件,通常用户交互向量非常稀疏,由于没有交互行为而语义模糊会导致判别器的性能下降继而影响生成器以及推荐的准确性。并且在实际推荐系统中,用户或物品数可高达百万,因此将用户交互向量作为条件与用户生成交互向量或真实交互向量合并进行训练,输入向量的维度较长,在隐藏层进行特征降维时会有一定的精度损失,并且训练时间较长。

为解决这一问题,本文将用户的属性特征进行编码作为CFGAN模型额外的信息条件,不同用户有不同的属性特征,常见的用户属性特征包括:性别、年龄、职业、收入、兴趣、邮政编码等。本文将用户属性分为类别类型、枚举类型和数值型变量进行编码。对于类别型变量利用one-hot进行编码,例如性别中男和女可分别表示为[0,1]和[1,0],此方法映射后将生成多个特征。对于枚举型用户属性,将标称型数据映射称为一组数字,相同的标称型映射为相同的数字,例如用递增整数值映射用户不同的职业,这种映射最后只生成一个特征。对于数值类型,通过减去均值然后除以方差(或标准差)标准化数据,这种数据标准化方法经过处理后数据符合标准正态分布。年龄、收入类等数值类属性可通过该方法特征化。最后将所有处理好的各类属性特征串接起来作为用户的属性特征向量,该特征向量的每一项都有明确的含义,不存在二义性。不同的数据集会收集不同的用户属性,本文使用Movielens电影评分数据集,该数据集提供用户的性别、年龄、职业和邮编,将其进行编码转换为五维的属性特征向量,其中性别占两维,对比使用上千维的用户交互向量作为条件,极大减小了条件特征维度。

图3 基于用户属性的CFGAN的结构

JD=-xpdata[log(D(x|y))]-

(3)

G的目标函数JG可表示为

(4)

为了解决平凡解的问题,CFGAN作者[15]引入了3种方法。它们的主要思想是,在每轮训练迭代开始时,为每个用户选择一部分未交互的物品作为负样本,负样本表示用户不感兴趣的项。负样本的占比用S表示,例如S=20, 则未交互项物品的20%将被选为负样本,3种方法的负样本抽样占比可分别表示为SZR、SPM和SZP。 假设它们与用户不相关而不是缺失,训练G在生成用户交互向量中将这些负样本物品项输出为零,3种方法如下:

零-重构正则化法(zero-reconstruction regularization,ZR):未交互项物品以SZR的比例随机选择并假设为不相关。生成器的目标函数修改为

(5)

(6)

(7)

且满足

零-重构和部分掩藏的组合方法(zero-reconstruction regularization and partial-masking,ZP):同时使用零重构正则化和部分掩藏方法,D的目标函数与部分掩藏方法的目标函数相同,G的目标函数修改如下

(8)

算法1:基于用户属性的CFGAN模型(CFGAN-A)

输入:用户的属性信息,用户对物品的交互矩阵,G和D的学习率μG、μD, 批处理大小MG、MD, 推荐序列的长度N

输出:G的参数θg,给用户推荐top-N个物品序列

(1) 用户属性进行特征编码并串接为向量

(2) 初始化G和D的模型参数θg和θd

(3)repeat:

(4) 对所有用户的未交互项进行负采样:

(7)forG-stepdo

(8) 抽样批处理MG个用户

(11)endfor

(12)forD-stepdo

(13) 抽样批处理MD个用户

(14) 获取真实交互向量 {r1,r2,…rMD}

(16)endfor

(17)until: 当D无法判别样本来自真实训练数据还是G生成数据时结束循环,并保存模型

算法1为基于用户属性的CFGAN模型的训练过程。首先将用户属性编码,并初始化生成模型和判别模型的参数。接着对用户未交互项进行负采样,使用零重构正则化法跳过步骤(6),部分掩藏法跳过步骤(5),组合方法同时使用步骤(5)和(6)进行抽样,然后分别通过生成网络和判别网络更新模型参数直至判别器无法区分真实数据与生成数据,保存模型参数。最后通过将生成器生成的用户偏好倒序排序,取前N个最相关的物品进行推荐。

3 实验结果与分析

为了验证提出方法可以改善推荐性能,在真实数据集上与一些常用的top-N推荐方法进行比较,并考虑不同的负采样比例和正则化系数对推荐性能的影响。

3.1 实验设置与数据集

表1 数据集的统计信息

经多次实验比较,将神经网络隐藏层设置为三层,判别器网络隐藏层节点数设置为{1024,128,16},生成器网络隐藏层节点数设置为{256,512,1024}。并且确定一些在经验上表现良好的超参数,使用sigmoid函数作为神经网络的激活函数,设置学习率为0.0001,批量大小为32,用{10,30,50,70,90}改变SZR和SPM,用{0.5,0.25,0.1,0.05,0.01}改变正则化系数α,比较这些超参数对推荐精度的影响。

3.2 评价指标

本文为top-N推荐任务采用了4种常用的准确度指标:准确率(precision,P@N)、召回率(recall,R@N)、归一化折损累计增益(normalized discounted cumulative gain,NDCG@N)和平均倒数排名(mean reciprocal rank,MRR@N)。前两个指标关注推荐列表中包含多少正确的项目,后两个指标关注正确项目在推荐列表中的排名位置。对用户u推荐N个物品(记为R(u)), 另用户u在测试集上交互的物品集合为T(u), 则准确率和召回率计算公式分别为

(9)

(10)

NDCG@N可表示为

(11)

MRR@N计算公式为

(12)

其中,|U| 为测试集的用户数,ranku表示用户u的推荐列表中第一个推荐正确所在的位置。

以上4个评价指标越大,模型的推荐性能越好。本文设置推荐列表长度N固定为5和20。

3.3 不同超参数下的比较

以评价指标准确率(precision,P@N)为例,设置N=5,在ml-100k数据集上比较不同参数对改进CFGAN推荐性能的影响。

首先固定正则化系数α=0.1, 图4分别为零-重构正则化法和部分掩藏法下不同负采样占比对推荐精度的影响,观察到当负采样比例较低时,有很多未交互项无法判断是否与用户相关,当负采样比例较高时,有一些相关项被选为不相关,因此会产生一些噪声,影响梯度的传播,导致准确度偏低。当SZR和SPM取到{50,70}时准确度较高,并且CFGAN作者[15]的经验表明,零-重构和部分掩藏的组合方法ZP在推荐性能上优于单一的ZR或PM方法,所以在下面的实验中使用混合方法,并固定SZR和SPM为70。

图4 不同负采样占比对推荐准确度的影响

图5为混合方法ZP使用不同正则化系数对推荐准确度的影响。观察到当α取0.1时推荐准确度最高,当α取值较大时 (α≥0.5), 生成器G将集中大量注意力使输出趋于0,而不是实现初始的目标生成看似真实的交互向量,当α取值较小时 (α≤0.01), G受零-重构正则化项影响较小,因而容易生成平凡解的交互向量。故下文对比实验设置α取0.1。

图5 不同正则化系数对推荐准确度的影响

3.4 对比实验

本节比较本文提出方法与常用top-N推荐算法的推荐性能来验证提出方法是否可以改善推荐精度。具体比较方法如下:

ItemPop:最简单的非个性化推荐算法,按照受欢迎程度降序(即购买记录的数量)对物品进行排序。

MF-BPR:一种基于矩阵分解的排序算法,针对每一个用户自己的商品喜好程度做排序优化,需要用户对商品的喜好排序三元组做训练集。

IRGAN:使用条件生成对抗网络生成离散物品索引来模仿用户真实相互行为。

CFGAN-I:采用向量式条件对抗网络学习真实数据分布,学习条件为用户真实交互行为。

CFGAN-A:将用户属性编码并作为CFGAN模型的引导条件,模拟用户的交互行为。

图6为ml-100k数据集上基于用户属性和用户交互向量的性能比较,其中虚线为基于用户属性推荐,实线为基于用户交互向量推荐,设置迭代次数1000。首先,从图中可以看出基于用户属性的CFGAN推荐方法在各评价指标上总体都略优于基于用户交互向量推荐,克服了基于用户交互向量CFGAN模型中未知项的二义性输入神经网络全连接层带来的误差,从而验证了提出方法的有效性。其次,由于基于GAN模型零和博弈收敛较为困难,易受超参数影响。从图中可以看出基于用户交互的CFGAN算法的各项评价指标整体呈现先增后减的趋势,其在运行约600轮时开始收敛,但是随着运行轮次的增加其各项评价指标开始下降,这是因为用户交互向量出现过拟合现象,导致推荐精度开始下降;而基于用户属性的CFGAN模型的各项评价指标在收敛之后保持平稳。通过以上分析可知基于用户属性的CFGAN推荐模型的推荐精度收敛更为平滑稳定,也验证了该方法收敛性能较好。

图6 两种输入条件下CFGAN模型推荐性能比较

表2和表3进一步比较了两个数据集推荐top-5和top-20相关电影在不同推荐方法下的指标性能,分别用P、R、G、M表示Precision、Recall、NDCG和MRR。从表2中可以看出基于用户属性的CFGAN-A在各评价指标上都略优于其它推荐方法,在推荐准确度P@5是非个性化推荐ItemPop的2.5倍,较基于用户交互向量CFGAN-I提高了0.04,R@5较于CFGAN-I提高了0.01;在推荐位置排序指标G@5是ItemPop的两倍,较于CFGAN-I提高了0.03,M@5较于CFGAN-I提升了0.04。在推荐top-20电影时CFGAN-A对比其它方法也有一定的精度改进,但由于推荐了相关性不是很高的电影,对比top-5改进效果略微下降。表3在ml-1m数据集上的各项推荐性能指标同样可看出本文提出方法优于其它推荐方法,从而验证了基于用户属性的CFGAN推荐模型可以改善推荐性能。

表2 ml-100k数据集不同推荐方法的性能比较

表3 ml-1m数据集不同推荐方法的性能比较

4 结束语

本文提出了一种基于用户属性的条件生成对抗网络推荐方法,在原始CFGAN模型的基础上,将模型的原始条件用户交互向量替换为用户属性编码向量,以此指导生成尽可能接近真实的用户偏好分布,根据用户对项目的偏好程度进行排序生成Top-N推荐,该方法能够降低向量表示维度,去除用户交互向量中不明确项带来的噪声,减少模型的训练参数。实验结果表明,基于用户属性信息的CFGAN模型可以改善推荐精度。未来将从项目角度入手,尝试融合项目的附加信息,使用神经网络深入挖掘用户和项目的特征表示,将其与生成对抗网络模型融合,实现更精准的推荐。

猜你喜欢

正则物品向量
称物品
向量的分解
聚焦“向量与三角”创新题
“双十一”,你抢到了想要的物品吗?
谁动了凡·高的物品
剩余有限Minimax可解群的4阶正则自同构
类似于VNL环的环
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
找物品