基于内容的新闻推荐系统设计研究

2021-02-14 08:23朱若馨李研伟
信息记录材料 2021年12期
关键词:卷积个性化分类

朱若馨,李研伟

(陕西国防工业职业技术学院 陕西 西安 710300)

1 引言

近年来,很多用户都喜欢使用在线新闻网站和手机APP来进行新闻阅读[1]。但是,由于每天都有大量新闻产生和发布,用户难以在有限的时间内从大量新闻中找到自己感兴趣的内容,面临严重的新闻信息过载[2]。个性化新闻推荐可以根据用户个人兴趣对候选新闻进行排序展示,是提升用户在线新闻阅读体验的一项重要技术。如何设计一个高效、精准的个性化推荐系统是新闻平台的关键问题[3]。

2 系统推荐流程及设计

个性化新闻推荐的简化流程见图1[4-5]:从用户阅读历史中挖掘用户兴趣,再根据用户兴趣对候选新闻进行个性化排序,最终将排名靠前的新闻展示给用户。虽然对推荐系统已开展了广泛的研究,但现有推荐算法仍然存在局限性:(1)新闻有强时效性。新闻平台每天会产生大量新的新闻,而旧的新闻会快速消失。这带来了严重的冷启动问题,导致许多如协同过滤等依赖用户行为的推荐方法无法使用;(2)新闻文章具有丰富的文本,这些文本包含重要信息未被利用,不能简单地使用ID等特征来表示新闻;(3)准确地建模用户对新闻的兴趣存在挑战。用户的兴趣通常比较多样并随时间动态演化,需要基于大量的用户反馈行为来挖掘和建模。然而新闻平台上往往不具有显式的用户反馈,甚至隐式反馈也十分稀疏。因此,新闻推荐是一个重要并具有挑战性的研究课题。

图1 个性化新闻推荐流程

推荐系统设计主要可以分为3个部分:数据信息层、数据处理层和用户交互层。在数据信息层,主要将用户的行为,如在APP上的阅读新闻、停留时间等信息存储到Hadoop集群中,作为离线日志使用;在数据处理层,主要使用深度学习的方法从离线日志中提取用户的兴趣,同时在新闻库中使用用户的兴趣进行匹配,生成候选新闻集;在用户交互层中,我们将候选新闻集反馈给用户,当用户产生浏览、点击等行为后,再将日志落地到Hadoop集群中,以此来优化推荐系统。

在本文中,我们利用新闻丰富的文本信息来实现用户的个性化新闻推荐。

3 基于内容的新闻推荐

在基于内容的推荐系统中,我们通过对新闻标题进行文本分类,对已阅读及未阅读的新闻打上相应标签。基于新闻标签进行推荐的核心就是如何对文本进行准确的自动化分类。本文的推荐系统中,我们使用TextCNN模型对文本进行分类。

3.1 TextCNN模型

Kim首先提出了TextCNN模型。网络结构见图2。

图2 TextCNN网络结构

其中,b是偏置,f是一个非线性函数。将卷积核w应用在当前句子所有的可能位置{x1:h,x2:h+1,…,xn-h+1:n},会得到一个特征向量:

然后我们在得到的特征向量上,使用max-pooling操作,在特征向量中取最大值,max-polling操作是获取对当前卷积核响应最大的值,同时还可以将变长的向量长度变为定长的特征,这样我们就可以得到卷积核对应的特征值。

在实际使用中,我们可以使用多个卷积核与多层卷积网络进行深度特征的提取,最后利用全连接网络使输出特征数与分类类别匹配,来实现文本分类。

3.2 新闻分类模型实验

本文实验环境的设置和实验平台的搭建如下:

(1)硬件方面:Windows10系统、CPU Inter(R) Core(TM) i7-8750H 2.20 GHz、内存8 GB。

(2)软件和依赖的库:Python3.7、Tensorflow_gpu-1.13.1等。

3.2.1 TextCNN模型可调参数设置

在采用TextCNN模型进行文本分类时,需要对参数进行选择。对于模型中的可变参数,我们选择了表1所示的参数。

表1 TextCNN可调参数设置

3.2.2 实验设计

在实验中,我们使用THUCNews数据集进行测试。THUCNews数据集是根据新浪新闻RSS订阅频道2005-2011年间的历史数据筛选过滤生成,包含74万篇新闻文档(2.19 GB),划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐。

我们选择多个基准验证TextCNN 模型的分类性能,将TextCNN与传统的机器学习方法进行对比。其中,TextCNN采用一层卷积层称为TextCNN-1,TextCNN-2采用两层卷积网络,传统机器学习方法包括朴素贝叶斯(NB)、最近邻(KNN)和支持向量机(SVM)。使用各分类整体平均精确率(precision)、召回率(recall)和 F1值(F-measure)评价不同模型的分类效果,作为衡量分类器性能的标准。

3.2.3 结果分析

在训练过程中,我们随机选取90%作为训练集,5%作为测试集,5%作为验证集,结果见表2。

表2 模型分类结果比较

通过表2可以发现:(1)采用预训练词向量,作为模型的特征输入分类模型,在相同的数据集上各个分类模型均取得了80%以上的精确率,说明预训练词向量表的的文本信息基本可以满足分类需要。(2)无论单层卷积神经网络还是多层卷积神经网络,取得的分类效果都优于3种传统机器学习算法,说明CNN模型在文本分类上有巨大的提升,相比于Naive Bayesian、KNN和SVM,TextCNN-2的F1值分别提升了9.97%、6.38%、4.52%。因此,我们可以得出,使用TextCNN能够提取更加全面的局部文本块特征信息,在文本分类效果上有很好的提升。

4 新闻推荐系统实现

网页前端使用CSS和HTML完成页面布局,Java Script实现新闻的动态效果。根据预先设定的新闻分类标签,我们将相应的新闻归类到不同的栏目。同时,在首页根据用户兴趣实现个性化推荐,使网页实现千人千面,不同的用户看到的是自己感兴趣的新闻。

在网站后端,我们使用Hadoop存储用户的浏览日志,然后通过个性化推荐模块产生候选新闻后,将其存储在Redis中,在前端发送请求给后端后,可以迅速将推荐候选新闻反馈给前端,实现高并发条件下的高可用性。此外,我们在后端部署基于Tensorflow的深度学习模型,使系统获取的新闻可以实现实时分类打标签。

5 结论

本文针对现有推荐系统的局限性,提出一种基于内容的新闻个性化推荐算法。该算法利用新闻丰富的文本信息,引入自然语言处理中的文本分类技术,使用TextCNN模型对新闻自动标注,实现新闻的个性化推荐。相较于传统的编辑推荐模式,可以省去大量的人工操作,还可以根据不同的用户推荐不同的内容,做到千人千面。调查显示,基于内容的个性化推荐系统,受到用户的广泛好评。

猜你喜欢
卷积个性化分类
基于3D-Winograd的快速卷积算法设计及FPGA实现
分类算一算
坚持个性化的写作
从滤波器理解卷积
分类讨论求坐标
新闻的个性化写作
数据分析中的分类讨论
基于傅里叶域卷积表示的目标跟踪算法
教你一招:数的分类
上汽大通:C2B个性化定制未来