融合时间戳信息的改进SVDPP 推荐算法及其分析

2021-12-23 12:48丁勇
微型电脑应用 2021年12期
关键词:预测算法用户

丁勇

(云南师范大学 文理学院,云南 昆明 650228)

0 引言

随着各类网络软件的开发,促进了信息数量的大幅增加。为了在大量网络信息中获取自己所需的内容,需要对这些信息进行快速处理,从中提炼出满足自身需求的信息数据,这就要求开发更加高效的信息服务技术。如果因为信息量过大而导致信息收集困难时,便会出现“信息过载”的问题,反而降低了信息利用率[1-3]。为了满足人们的信息收集需求,通常会在智能设备上安装搜索引擎进行信息检索,从而有效克服信息过载的情况,能够实现对互联网信息的快速收集、分类,并将这些数据存入到网页中,便于用户进行查询,之后根据用户的实际搜索请求将结果传输至终端界面[4-5]。由于搜索引擎可以对大量的数据信息先做好分类,此时用户只需将搜索信息的关键字输入后便可以从系统中检索出精确匹配词条的内容,并根据匹配度的高低显示搜索结果,确保用户可以更加高效地查询到所需的信息内容。而进行实际应用的过程中,搜索引擎检索信息量大,因此还需用户花费较多时间进行信息筛选[6-7]。

随机离散马尔可夫决策过程(MDP)是一种动态规划的方法,此方法类似于强化学习试错迭代过程,虽然只通过强化学习的方式对马尔可夫决策过程进行求解,仍然使其成为当前强化学习理论的一个重要框架[8-11]。Yin设计了Q-learning,促进了强化学习方式的进一步推广[12]。采用Q-learning可以实现在无回报函数与状态转换函数的条件下也能够求解得到最佳的动作策略[13]。本文在前人研究的基础上,设计了一种包含了时间影响因素的SVDPP算法,并把该关系映射至马尔可夫决策过程,再把时间影响添加至推荐算法SVDPP模型内,由此获得包含了时间戳参数的RL-TSVDPP优化模型。

1 融合时间戳信息的改进SVDPP推荐算法

1.1 RL-TSVDPP算法

从原始数据集中提取的部分数据如表1所示。

表1 原始数据集部分数据

其中,最后一列属于时间戳,对其格式进行适当转换可以获得日期结果,例如可以将20101216182630转变为2010-12-16,18:26:30的时间参数,而以数字形式则更加便于对比。根据时间戳对用户-电影-评分实施排序并对各用户评价后的电影数量(count)进行统计得到ActionTemp表。

RL-TSVDPP算法包含了训练和预测2个部分。对于训练部分应通过强化学习算法来训练经过预处理的数据集,通过计算奖惩函数获得相应的奖惩表,实现对Q表内容的更新得到Q-table。结合之前用户对电影作出的评分从Q-table内确定相应的Q值,再利用Q值完成SVDPP模型的训练过程。

进行预测时,利用包含时间信息参数的RL-TSVDPP算法模型计算出预测评分,由此得到的算法预测模型为式(1)。

(1)

式中,bu(t)、qT、bi(t)、p(t)都是考虑时间影响条件下的训练参数。

1.2 训练过程

先通过预处理得到的数据计算出奖惩值,并将其表示成奖惩表,之后对数据进行更新,由此得到Q-table。同时结合用户前两次给出的电影评分从Q-table内获取相应的Q值,再利用此Q值训练SVDPP模型。

(2)

按照和梯度反向的方式进行移动,实现参数修正的过程为式(3)。

bu←bu+γ·(eui-λ·bu)

bi←bi+γ·(eui-λ·bi)

pu←pu+γ·(eui·qi-λ·pu)

qi←qi+γ·(eui·pu-λ·qi)

(3)

采用RL-TSVDPP算法进行处理时把Q-table的Q值代入式(4)。

(4)

其中,Q(s,a)表示用户u观察电影i前t-1和t-2时的电影评分,在t=1和t=2的条件下,以Q表平均值作为st-2,at-2取值。同时利用时间影响对SVDPP算法进行训练并优化,由此获得融合时间戳数据。

1.3 预测过程

利用之前训练获得的bu(t)、bi(t)、qT对模型进行预测,由此获得融合时间戳预测评分。

实现RL-TSVDPP算法的伪代码如下。

输入:用户数量N;用户评过分的电影数量M;学习率α;折扣因子γ。

1.对Q-table进行初始化,对任意s∈S,a∈A;

2.从数据中获取初始状态s,动作a;

3.foreachepisodei=1:Ndo

4.fork=1:Mido

5.根据式(1)计算奖惩函数;

6.将计算出的奖赏值更新Q-table;

7.endfor8.endfor

9.将Q-table用于式(3)训练参数;

10.预测模型计算预测评分。

2 结果与分析

为验证本文设计的优化算法有效性,进行实验时除预测SVDPP模型获得RL-TSVDPP模型之外,还设置了对照组实验,同时训练了SVD模型并构建RL-TSVD预测模型。考虑这2种模型都是按照用户-电影-评分-时间的方式获得Q-table,无需采用推荐算法,因此进行计算时通过奖惩函数得到的奖惩表和更新得到的Q-table是相同的,奖惩表和Q-table结果分别如表2、表3所示。

表2 基于训练集得到的奖惩表

表3 基于训练集更新后的Q-table

为了便于用户更直观进行观察,本文对表2中的数据进行作图形成三维结构,可以明显看到Q-table数据在整个空间中保持基本恒定的状态,只发生了小幅的起伏变化,表明时间戳参数确实会影响到预测结果,如图1所示。

图1 RL-TSVDPP算法Q-table三维图

接着,把Q-table数据引入SVDPP训练模型中计算出bu(t)、qT(t)、bi(t)、p,由此实现在预测模型中通过融合时间戳参数进行用户评分预测。对实验结果计算出评价指标的均方根误差,同时对比前期计算得到的RL-TSVD模型,获得结果如表4所示。

表4 RL-TSVDPP算法与已有SVDPP的RMSE对比

对表4进行分析可知,由于RL-TSVD与RL-TSVDPP 2个模型中包含了时间效应参数,与原模型相比,可以更加准确预测出用户的评分,依次提升0.017和0.022。采用SVDPP预测评分方法优化马尔科夫过程,相对于以Q-learning算法进行优化的RL-SVDPP算法,RL-SVDPP算法利用先处理数据集分析时间因素的影响,之后通过推荐模型训练参数对用户电影评分进行预测可以获得更高的准确率。

3 基于大数据分布式系统的RL-TSVDPP

在MovieLens1M数据集中总共存在6 050个用户针对3 960个影片给出的约1亿条评分,训练集占比达到80%,采用分布式方法处理训练集时应先通过用户ID进行数据集排序,之后分割排序得到的数据集,各子节点按照用户ID数据对分割得到的数据进行处理,在本研究中根据用户ID类型分割数据集,先根据用户ID对数据实施排序,再以分段方式传输至各主机,通过每个子节点对数据进行时间戳排序,同时计算得到各用户已经作出评分的电影数量,之后对此类电影重新设置编号,根据时间的先后顺序构建编号-评分索引,再汇总上述结果并进行后续计算,具体的处理过程如图2所示。

图2 数据预处理分布式框架

Data表示原Movielens的数据集,D1、D2、D3是根据ID段号进行分割得到的数据集,d1、d2、d3是根据时间戳进行排序获得的数据集,data是合并d1、d2、d3获得的数据集。

对分布式计算数据集先进行预处理,获得按照时间戳顺序对用户、电影、评分进行排序的结果,利用上述处理得到的数据作为后续计算过程的参数,该过程需消耗18 h的时间,相对于未分布式处理前的情况,缩短了近2 h,可以节省近10%时间,由此表明可以通过分布式数据预处理的方法来显著提高计算效率。对程序耗时进行分析发现,存在以多重for循环情况,其中,以双重for循环所需的耗时为n平方,以三重for循环进行处理时耗时为n三次方,随着n的增大,形成了更长的n平方耗时。

4 总结

本文设计了一种包含了时间影响因素的SVDPP算法,并把该关系映射至马尔可夫决策过程,再把时间影响添加至推荐算法SVDPP模型内,由此获得包含了时间戳参数的RL-TSVDPP优化模型。通过测试发现。

1)RL-SVDPP算法利用先处理数据集分析时间因素的影响,通过推荐模型训练参数对用户电影评分进行预测可以获得更高的准确率。

2)通过分布式数据预处理的方法来显著提高计算效率,为SVDPP模型添加时间影响因素是完全可行的,将此类影响因素加入用户预测评分可以有效提升推荐准确性。

猜你喜欢
预测算法用户
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
不必预测未来,只需把握现在
关注用户
关注用户
一种改进的整周模糊度去相关算法