《武汉工程大学学报》  2023年03期 319-324   出版日期:2023-06-30   ISSN:1674-2869   CN:42-1779/TQ
基于图书语义特征的推荐模型


从20世纪90年代首次提出至今,推荐系统经过30多年的沉淀与积累,已发展成一门独立的学科[1-3],成为重要的研究领域。个性化推荐系统利用用户对项目的偏好,为用户推荐项目[4]。作为缓解信息超载的重要手段,推荐系统如今已被广泛应用于购物、视频、新闻、音频、互联网金融等平台。近几年,深度学习由于结构灵活[5-6],能够自动提取多层特征表示,挖掘数据特征、拟合数据模式能力都要强于传统的机器学习,已成为当下最流行的研究方向,被广泛应用于各个研究领域。
在自然语言领域,研究者们运用深度学习技术提取文本特征,获得极大成功。Bengio提出的NNLM(nerual network language model)网络[7]是早期将深度学习的思想融入语言模型中的经典模型。Google团队借鉴NNLM思路,基于分布式假设提出的word2vec模型[8]是一种高效的词向量的训练模型,该模型会将单词转化为固定长度的向量,有助于解决编码的稀疏性问题。Hochreiter等[9]改进循环神经网络算法,提出的长短时记忆网络(long short-term memory,LSTM),引入了记忆单元和门控机制在神经网络内部来传播数据,能有效缓解梯度消失和梯度爆炸的问题。Zhou等[10]尝试先用卷积神经网络(convolutional neural networks,CNN)提取文本分布特征,再利用RNN(recurrent neural networks)网络提取序列特征,将CNN与RNN结合用于文本分类。
在推荐领域,Martins等[11]将协同过滤算法与深度学习相结合,提升了推荐效果;程思等[12]尝试根据用户的行为序列来分析用户兴趣;陶涛等[13]在推荐系统中引入注意力机制;丁永刚等[14]以用户专业背景为基础,通过SOM(self-organizing feature map)网络对读者聚类,并利用排序因子分解机对用户行为和专业背景等建模来提高图书推荐准确率;尹婷婷等[15]提出了一种基于读者兴趣分析的深度学习推荐模型;沈凌云[16]利用Word2vec提取图书语义特征,采用LSTM对读者借阅行为建模;黄禹等[17]基于深度学习框架改进了矩阵分解算法。
然而,现有的深度学习推荐算法难以表达图书文本信息的复杂语义,容易忽略上下文信息,存在图书特征提取不充分,特征表示不准确的问题[18]。鉴于此,本文结合BERT(bidirectional encoder representations from transformers)与TextCNN(text convolutional neural networks)网络,提出DSM(deep semantics mining)模型来提取图书语义特征进行图书推荐。先利用BERT模型处理输入的图书书名、内容摘要等文本信息,再将获得的字向量通过TextCNN模型抽取文本局部特征,然后与句向量一起输入神经网络进行训练,最后将提取的图书特征向量与读者人口统计学特征拼接后一起输入神经网络进行训练,获得预测结果。
1 DSM模型设计
1.1 模型结构
本文提出的DSM模型结构如图1所示,主要由输入层、图书语义特征提取层以及MLP层构建而成。模型输入层能够表达读者和图书特征的信息,包括读者身份信息、借阅记录以及候选图书等;在图书语义特征提取层利用BERT-TextCNN网络对输入的读者借阅历史和候选图书提取语义特征,分别获得读者借阅行为向量和候选图书向量;然后将提取到的特征向量与读者人口统计学特征拼接后一起输入MLP层,作为模型输入,参与模型训练。采用交叉熵损失函数作为目标函数,根据得到的概率值y的排序,为读者提供图书推荐。
[Loss=-1Ni=1nyilogpi+(1-yi)log(1-pi)] (1)
交叉熵损失函数公式如式(1)所示,模型的预测值用pi表示,当样本为正时,样本标签yi取1,当样本为负时,样本标签yi取0。
1.2 基于BERT-TextCNN的图书语义特征提取
1.2.1 BERT模型 BERT模型[19]是谷歌提出的一个面向自然语言处理任务的无监督预训练语言模型,是近年来自然语言处理领域公认的具有重大意义的里程碑模型,在处理文本相关任务的多项比赛中已获得骄人成绩,效果得到了充分的认证。BERT模型基于多层transformer的双向编码表示,利用了每个词的所有上下文信息,与只能使用前序信息提取语义的单向编码器相比,语义信息的提取能力更强。同时,BERT通过在大规模的自然语言语料库中进行无监督训练,已经获得了表达丰富语义特征的词向量,只需将已经训练好的词向量输入MLP或线性分类器就可以获得结果。
如图2所示,BERT模型输入每个单词的表示是由单词特征嵌入编码(词汇向量)、句子的特征嵌入编码(分段向量)以及每个单词所在的位置编码(位置向量)相加而得;通过两大核心任务“遮盖语言模型”(MLM)和“下一句预测”(NSP)联合训练挖掘语义,分别获得单词和句子的向量表示,因此能够表达句子层面的复杂语义,从而理解一词多义。BERT模型目前在分类任务、命名实体识别以及句子关系判断等任务中获得骄人成绩。
1.2.2 TextCNN模型 CNN利用多个卷积核来处理不同的特征,从局部到全局进行特征提取并匹配,拥有更深的网络结构的同时降低了网络模型的复杂度,是深度学习的代表模型之一。卷积神经网络最初用来处理大型图片,如今已经被广泛应用在图像分类、目标识别、自然语言处理等各个领域。2014年Yoon提出了TextCNN[20]模型,首次将CNN应用到文本分类任务中,并在多个实验数据集上取得了不俗的分类效果。
TextCNN使用卷积和池化操作来提取文本的局部和全局特征。在处理图像时,卷积操作是对输入的图像像素进行计算处理,而在文本处理中,它的输入通常是一个固定长度的文本序列,并将文本序列表示为一个二维矩阵,矩阵中的每一行表示文本中的一个单词或词向量,矩阵的长度代表文本序列的长度。
TextCNN模型如图3所示。卷积操作利用卷积核在文本序列上的不断滑动,通过与窗口对应元素相乘再相加的运算来捕捉文本中的n-gram特征,提取出文本局部特征。每个卷积核都是一个固定大小的窗口,宽度一般设定为词向量维度,以保持该词语义信息的完整性;长度指一次卷积操作包含的单词或词向量的个数。池化层将相似的特征合并,去除冗余信息,抽取重要特征,然后将这些局部特征聚合成一个固定长度的全局特征向量,再通过一个全连接层后得到输出结果。因为卷积核可以跨越多个单词或词向量,它可以有效地处理大规模文本数据,同时由于卷积和池化操作是高度并行的,故模型可以使用GPU进行加速。
TextCNN 中的卷积大小是一个超参数,卷积大小应该根据任务和文本数据的特点进行选择。较小尺寸的卷积核可以很好地捕捉单个字或短语之间的关系,更好地处理局部信息;而较大尺寸的卷积核善于捕捉长距离的依赖关系,可以更好地处理更广泛的上下文信息。
TextCNN 中卷积的通道数量也是一个超参数,通道数量通常可以理解为卷积核的数量,每个卷积核在文本中提取不同的特征。较大的通道数量虽然可以提高模型的复杂度和表达能力,但也会增加训练的时间和计算成本。
1.2.3 BERT-TextCNN 网络 BERT-TextCNN网络主要由BERT层、TextCNN层、拼接层和全连接神经网络层、输出层,模型如图4所示。
<G:\武汉工程大学\2023\第3期\刘园园-4.tif>[Output][全连接神经网络][e[CLS]][d][TextCNN][e[CLS]][e1][e2][e3][en][Transformer层][Transformer层][词汇向量][分段向量][位置向量][BERT][t1][t2][t3][tn][[CLS]]
图4 BERT-TextCNN模型
Fig. 4 BERT-TextCNN model
传统神经网络通常采用Word2Vec来表示文本信息,本文融合BERT与TextCNN模型,首先采用BERT模型提取图书文本特征,获取充分的文本特征,再经过TextCNN层进一步抽取特征,完成重要信息的提取,从而增加了模型的健壮性和稳定性。
在BERT层,每个输入的词自动编码成位置向量、分段向量以及词汇向量;经过多层的Transformer层变换后,序列中的每个输入都会生成对应的向量表示;模型会在文本开始处做特殊标志[CLS],其生成的e[CLS]向量可以作为输入文本的句向量表示。对于输入的文本T=(t1,t2,…,tn),BERT层会获得n个字符的向量表示,其中t1代表文本序列中第一个字:
[E=LayerBERT(T)] (2)
式(2)中,矩阵E={e1,e2,…,en},为图书文本信息获得的各词向量堆叠而成的矩阵,ei∈Rd代表文本中的第i个字经过BERT层生成的d维向量表示。
在BERT层获得的字符级别的向量化表示矩阵E将作为新的特征,输入TextCNN层。首先,对BERT层输出的字向量矩阵E进行卷积操作。如果卷积核长度设置为k,即每次对k个字进行卷积操作,滑动步长设置为1,则会生成D={d1,d2,…,dn-k+1}的向量,n表示文本中文字的个数,dj∈Rn-k+1为局部特征映射,计算公式如式(3)所示:
[di=f(WTei:i+k-1+b)] (3)
其中,f(·)表示非线性激活函数,采用常用的Relu激活函数;W为卷积操作中对应的卷积核参数,按照均匀分布随机初始化;b为偏置项,能够更好拟合数据。
对卷积操作获得的文本特征映射向量D将进行池化操作,常用的有最大池化和平均池化,本文采用最大池化的方式提取局部特征,公式如式(4)所示:
[dk=max{D}] (4)
同样尺寸的m个卷积核得到的结果如下:
[Dk=(dk1,dk2,...,dkm)] (5)
卷积核采用(3,4,5)3种不同尺寸,每种尺寸的卷积核拥有128个通道。卷积操作提取特征后,再经过池化,然后将不同尺寸的卷积核提取的特征拼接在一起,与BERT模型中获得的句向量e[cls]一同输入全连接神经网络进行训练,得到输出结果。卷积操作实质上完成了对文本特征中表示局部重要信息的捕获,池化操作则完成了局部重要特征的提取,最后的全连接神经网络增加了模型的泛化能力。
2 实验部分
2.1 实验数据
实验数据来源于武汉轻工大学2017年至2022年的借阅数据,涉及706 884条借阅记录,56 195名读者和437 348册图书。为了更好地学习读者兴趣偏好,选择借阅过10本以上图书的读者作为实验对象,将读者最新一次的借阅记录作为测试集正样本,其余历史借阅作为训练集的正样本,按1∶50比例随机选取读者没有借阅过的馆藏图书作为测试集负样本,按1∶5比例选取训练集负样本;最终获得79 002条训练集样本,74 613条测试集样本,共计153 615条实验数据。统计结果如表1所示。
表1 训练集及测试集统计结果
Tab. 1 Statistics of training sets and test sets
[样本类型 训练集数量 测试集数量 数据集数量 正样本 13 167 1 463 14 630 负样本 65 835 73 150 138 985 总计 79 002 74 613 153 615 ]
2.2 评价指标
本文采用的评价指标有准确率(accuracy)、精确率(precision)、召回率(recall)、F1指标和平均倒数排序(mean reciprocal rank,MRR)指标。其中,F1指标用来调和召回率与精确率,综合反映推荐效果;MRR指标代表命中读者真实借阅的图书排在推荐列表的位置,值越大说明推荐效果越好。公式如式(6)-式(10)所示。
[Accuracy=TP+TNTP+FP+FN+TN] (6)
[Precision=TPTP+FP ] (7)
[Recall=TPTP+FN] (8)
[F1=2?Precision?RecallPrecision+Recall] (9)
[MRR=1Ti=1T1Ri] (10)
2.3 实验结果及分析
本文选择了以下几种模型进行实验对比, 来验证本文提出模型的推荐效果:①传统的基于物品的协同过滤ItemCF模型[21];②传统的隐语义LFM模型[22];③深度学习BERT-MLP模型;④深度学习TextCNN-MLP模型。各模型的实验结果如图5、表2和图6所示。
如图5所示,本文提出的DSM模型准确率优于其他对照模型;同时实验结果显示,基于深度学习的推荐模型相比传统模型准确率有明显提升。在模型训练达到100次时,TextCNN- MLP、BERT-MLP和DSM模型准确率分别达到0.842 8、0.863 2和0.902 3,说明相比传统模型仅利用人与物之间的交互行为,深度学习模型由于利用了图书的文本信息、读者的人口统计学信息等丰富的特征,能够挖掘出数据间的更多潜在关系,具有更强的表达能力和泛化能力。
<G:\武汉工程大学\2023\第3期\刘园园-5.tif>[0 10 20 30 40 50 60 70 80 90 100
迭代次数][1.0
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1][准确率][ItemCF
LFM
TextCNN-MLP
BERT-MLP
DSM]
图5 各模型准确率对比
Fig. 5 Comparison of accuracy of various models
如表2所示,本文提出的DSM模型精确率、召回率、F1指标表现最好,分别达到0.912 2、0.870 9和0.895 4;对比深度学习的TextCNN-MLP和BERT-MLP模型,DSM模型F1指标分别提升了8.73%和3.91%。实验结果说明DSM模型比单独使用TextCNN或BERT模型,能够更深入的挖掘文本语义特征,从而更好的学习到读者偏好,提高推荐效果。
表2 实验结果
Tab. 2 Experimental results
[对比模型 精确率 召回率 F1 ItemCF 0.732 8 0.711 4 0.725 5 LFM 0.753 4 0.735 8 0.741 8 TextCNN-MLP 0.834 5 0.816 3 0.823 5 BERT-MLP 0.881 5 0.852 2 0.861 7 DSM 0.912 2 0.870 9 0.895 4 ]
MRR指标也是推荐模型的重要评价标准之一,它与准确率和F1等评估指标相比更突出“顺序性”,重视待推荐图书是否放在推荐列表中显眼的位置,即强调位置关系。从图6可以看出,DSM模型在MRR评价指标上有不错表现,不仅对比传统推荐模型ItemCF、LFM有较大提升,分别提高了34.81%和29.79%,同时比深度学习模型TextCNN和BERT-MLP提升了12.96%和3.68%,说明DSM模型在推荐列表的排序位置方面也具有优势。
3 结 论
结合BERT和TextCNN网络来提取图书的语义信息,学习读者借阅偏好。先利用BERT模型对图书文本信息进行向量编码提取文本特征,再通过TextCNN模型对已提取的文本特征进行卷积、池化等操作,获得对于语义信息更深层理解,从而实现对读者兴趣更准确的挖掘。实验结果表明,提出的模型在图书推荐上具有明显优于其他模型的推荐效果。未来工作中,考虑在模型中融合更多特征,挖掘出读者与图书之间更深层次的联系,进一步提高图书推荐效果。