APP下载

面向序列推荐的小程序应用情境感知与建模

2022-07-06吴彦文龚雪武冉茂良

小型微型计算机系统 2022年7期
关键词:矩阵建模维度

吴彦文,龚雪武,荣 谦,冉茂良

1(华中师范大学 国家数字化学习工程技术研究中心,武汉 430079) 2(华中师范大学 物理科学与技术学院,武汉 430079)

1 引 言

小程序是一种无需下载安装即可使用的“快应用”,彰显 “即扫即用、即用即走”思想.自2017年1月9日上线以来,至2020年用户数已达8.3亿.随着小程序的数量和用户的激增,用户需要更便捷地使用体验.例如:疫情期间,老年人须使用智能手机扫码进入相关小程序展示健康码来乘坐交通工具或进出公共场所,而这一系列操作对老年人并不友好.此时小程序的推荐服务暴露出缺乏情境化、实时性的弊端.因此,用户更倾向于获得有针对性、高效的小程序推荐服务需求.

借鉴推荐理论及情境感知的相关技术,针对小程序的推荐服务研究有着实际的社会意义.例如,通过用户偏好建模可实现不同用户的个性化推荐,如向男性用户推荐新闻时事类小程序,向女性用户推荐购物美食类小程序等;通过情境感知建模,又可满足用户临时性、特定情境下的使用需求;通过推荐物品的关系建模丰富推荐结果多样性,可以有效缓解以往推荐结果类型单一的问题.

综上,为解决用户在特定情境下无法找到满足需求的小程序这一问题,本文拟通过基于活动理论对小程序情境感知信息进行情境本体建模,拟利用序列推荐算法来提升用户对具有针对性、多样性的小程序推荐服务的体验感.

2 相关研究现状

2.1 情境感知在推荐领域的研究

目前情境感知在推荐服务中的应用研究内容主要涉及两个方面:一方面是融合情境感知的推荐服务的实现技术研究;另一方面则聚焦于具体领域内的情境感知信息推荐系统的设计开发,包括休闲领域、健康服务领域、生活便利领域等.

经相关文献检索,应用情境感知的推荐服务应用较多.例如,Véras D等将情境感知与跨领域推荐结合在一起,可同时考虑到来自多个领域数据的可用性和情境信息的使用,证明情境感知可以提高跨领域推荐准确性[1];Zhao等提出一种张量因子分解模型,利用用户的社会信息和隐式反馈进一步提高推荐的准确率[2];Richthammer等开发出一个面向推荐系统的情境感知模型,应用于音乐推荐系统[3];Quinde M等为个性化哮喘管理开发出情境感知解决方案[4].可见,情境信息与推荐系统融合在技术实现层面上是可行的,且推荐服务的精确性、情境敏感性的实现与情境信息密切相关.

作为APP另一种衍生形式的小程序具有“小、灵、快”的特点,这也意味着小程序推荐服务与用户所处的使用情境是非常契合的.因此,本文拟在情境感知推荐服务过程中融入活动理论,对用户情境进行建模,从整体的角度分析情境感知信息推荐的过程,避免了目前有关情境感知信息推荐模型的局限性.

2.2 序列推荐的研究

序列推荐是推荐算法的一种,它试图构造和分析序列模型,从而捕捉用户的长短期偏好、目标和商品的消费趋势等特征,近而实现更加准确、多样化及动态地推荐.

与此同时,深度神经网络对序列进行建模以及获取用户、项目和交互行为之间的隐藏关系存在原生的优势.例如,Liu等提出了一种上下文感知的序列推荐模型(CA-RNN),采用自适应输入和转换矩阵来表示各种特定的情境[5];沈冬东等将知识图谱学习到的信息嵌入到项目中,并设计了一种深度双向LSTM对长期偏好建模;赵串串等提出一种序列感知深度网络(SeqaDN),利用自注意力机制确定每个项目对下一个项目影响的权重,通过深度双向循环神经网络学习用户的历史偏好.由于序列信息很大程度上决定用户偏好建模效果,因此有关深度神经网络的推荐算法被大量引入,然而这些方法有许多局限性:例如序列推荐模型(CA-RNN)[5]过分关注序列的影响,而忽略了相邻项间的相关性、忽略情境信息等.为了进一步解决这些问题,本文提出了一种基于注意力网络的情境感知序列推荐模型.

3 关键技术

3.1 基于活动理论的小程序应用情境建模

小程序的推荐服务往往发生于特定情境下,而活动理论能全面地描述该情境化推荐服务过程,因此小程序推荐服务、情景感知和活动理论三者存在不可小觑的契机.恩格斯托姆把活动概括为主体、客体、共同体、工具、规则、分工6个构成要素以及各要素相互作用使客体转化为结果的过程,全面阐述了活动理论的结构以及各元素之间的关系[6].

本文对基于活动理论的小程序推荐服务与各要素的关系进行具体划分,如表1所示.同时参照情境划分理论[7],将小程序应用情境信息分为用户情境(User Context)、物理情境(Physical Context)与历史情境(History Context).

根据表1,本文应用建模工具Protégé对小程序应用情境本体进行建模,其本体模型用OWL语言表达如下.

# User Context模块定义用户情境包括用户姓名Name、性别Gender、年龄Age、住址Address、偏好(Preference)等.

rdf:ID=“Address”>

rdf:ID=“Profession”>

……………………

# Physical Context模块定义物理情境,包括用户所处地理位置Location、具体时间Time等.

……………………

# History Context模块定义了历史情境,包括用户背景信息BackgroundInfo、用户历史操作记录HistoricalReco等.

……

表1 基于活动理论的小程序推荐服务与各要素的关系Table 1 Relationship between applet recommendation service and its elements based on activity theory

3.2 基于注意力的情境感知序列推荐模型

3.2.1 相关定义

为了清晰地描述本文所提出的基于注意力网络的情境感知序列推荐模型(ACA-SR),给出了以下的定义.

3.2.2 ACA-SR框架

本文将小程序的推荐视为序列预测问题,则用户与小程序交互序列中的每个小程序对最终的推荐结果都存在不同的贡献.考虑到该序列中小程序顺序差异的影响、相邻小程序之间的相关性及其对用户偏好变化的影响,故本文设计了基于注意力网络的情境感知序列推荐模型(下文简写为ACA-SR模型),其结构如图1所示.其中GRUs单元是对传统门控循环单元(GRU)的改进,新增了情境信息等,其结构见图2,其目标是依据序列与情境来捕获用户动态偏好,作为ACA-SR模型的输入.

图1 ACA-SR框架Fig.1 ACA-SR framework

图2 ACA-SR中GRUs单元Fig.2 GRUs unit in ACA-SR

ACA-SR模型的计算过程如下.

第1步.定义GRUs单元

(1)

(2)

与传统GRU相比,它的更新门不仅依赖于当前输入隐藏状态和前一隐藏状态,还依赖于关联情境所对应的向量.

图3 基于注意力网络的关联情境结构Fig.3 Structure of the associated context based on the attention network

(3)

(4)

(5)

(6)

(7)

第5步.模型优化

在优化ACA-SR时,本文使用了BPR,它是一种广泛应用的隐式反馈数据的成对排序框架.BPR的基本假设是用户喜欢选择的项目而不是消极的项目.在BPR框架下,在每个序列位置k,ACA-SR的目标是使下列概率最大化:

(8)

式中,j为消极的项目样本.结合负对数似然性,本文可等价求解出目标函数:

(9)

3.3 推荐效果评价的计算

基于注意力网络的情境感知序列推荐模型最终会形成Top-N推荐,并以生成推荐列表的形式展示给用户,因本研究关注的是推荐列表中用户与小程序互动的顺序,故本实验选取了序列推荐中较主流的评价指标:命中率(Hit ratio,HR)、平均倒数排名(Mean Reciprocal Rank,MRR)以及归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG).它们的度量标准是值越大,性能就越好.

HR常用来度量召回率,测量推荐结果的准确性:

(10)

式中,GT为测试集中所有项目的数量,NumberofHit@N表示前N个推荐项目中与测试集合中项目的交集.

MRR指的是目标用户选择交互的项目位于第n位,则这个推荐列表得分为1/n,即表达式为:

(11)

式中,|Q|为所有用户的数量,ranki则表示为对于第i个用户,首个在生成的推荐列表中实际交互项目所处的位置.

NDCG指的是对不同用户的推荐列表的评估分数进行归一化,其定义如下所示:

(12)

用户u的NDCG定义为:

(13)

DCG为折损累计增益,表达式为式(14),其中k表示推荐列表的长度,reli表示位置i的推荐结果的相关性.若DCG为IDCG时,则表示某一用户的最满意推荐结果列表,即NDCG取值范围为(0,1].

(14)

4 实 验

4.1 实验数据集及预处理

因小程序是APP的一种衍生形式,针对小程序的推荐研究完全可以依赖于对APP的研究,故本文采用Appazaar数据集进行测试(基于Windows 7、Python 3.6和TensorFlow 1.2.0),该数据集记录了3260名用户在不同情境下选择18205个APP的370万条记录.

为了确保实验结果的真实可靠,本文对该数据集进行如下处理:剔除了使用小程序数目少于5个的用户和与用户交互次数少于10的小程序,参数λ=0.01,并且将该数据集随机划分,80%作为训练集,剩下的20%用于测试.

4.2 对比方法

为了验证本文提出的ACA-SR模型的有效性,本文选取了1种非序列推荐方法和3种序列推荐方法进行比对.

·BPR[8]:该方法采用隐式反馈进行推荐的经典算法之一,建立用户与物品之间的损失函数,通过SGD算法进行优化,预测用户对物品的偏好.

·GRU4Rec[9]:该方法利用RNN对会话序列进行相关建模,并使用基于排名的损失函数训练模型.

·DBi-LSTM[10]:该方法通过自注意机制实现项目感知以及根据双向LSTM模型学习偏好向量,来对偏好向量空间中最相似项目进行评估,生成推荐列表.

·CA-RNN[5]:该方法在传统RNN基础上,用自适应特定情境的输入矩阵和自适应特定情境的转换矩阵.

4.3 实验结果与分析

在保持其他超参数不变的前提下,为了探究嵌入矩阵维度d对ACA-SR模型的影响,本文进行了数据仿真,其结果如图4-图6所示.

从图4、图6可观察到:维度d越大,所对比的方法和本文提出的ACA-SR方法的评价指标HR@20和NDCG@20也逐渐增大,且都在维度d为100时达到峰值,随后就下降.

图4 嵌入矩阵维度d对HR@20的影响Fig.4 Effect of embedding matrix dimensions on HR@20

图5 嵌入矩阵维度d对MRR@20的影响Fig.5 Effect of embedding matrix dimensions on MRR@20

图6 嵌入矩阵维度d对NDCG@20的影响Fig.6 Effect of embedding matrix dimensions on NDCG@20

从图5可看出:在维度d为100时,BPR和GRU4Rec的评价指标MRR@20都达到峰值,而剩下的3种方法的评价指标MRR@20峰值则出现在d为150时.

由此分析可知,随着嵌入矩阵维度的增大,更加能精确地描述用户和小程序之间的关系,模型更加拟合,即推荐效果更好;但当d超过某一特定值时,就容易出现过拟合现象,且训练时长增加,推荐效果更差.

在嵌入矩阵维度d为100,推荐小程序个数为20时,4种对比算法和本文所提的方法在各性能指标的表现如表2所示.

从表2中可观察到,所涉及的5种方法在HR@20、MRR@20和NDCG@20这3种指标上的表现趋势是一致的,从高到低依次是ACA-SR、DBi-LSTM、CA-RNN、GRU4Rec、BPR.因为在本文所选取的4种对比方法中,DBi-LSTM方法表现最优异,为了突出本文所提出ACA-SR方法的有效性,故进一步选取DBi-LSTM方法进行对比;依据表2可计算出ACA-SR方法相对于DBi-LSTM在评价指标HR@20、MRR@20和NDCG@20上分别提高了14.44%、11.60%、8.89%,故实验表明本文所提出ACA-SR模型能够显著提高小程序的推荐效果.

表2 5种算法的HR@20、MRR@20和NDCG@20的性能比较Table 2 Performance comparison of HR@20,MRR@20 and NDCG@20 of five algorithms

5 总结与展望

为了解决特定情境下小程序的序列推荐问题,本文提出了一种新的方法,即基于注意力网络的情境感知序列推荐模型(ACA-SR).首先,本文根据基于活动理论视角下对情境信息进行建模,分别定义为输入、过渡、历史以及关联情境,通过计算候选隐藏状态来描述用户兴趣的动态变化.基于GRUs单元的定义,能够计算由历史情境和关联情境所决定的输出隐藏状态,从而对用户兴趣的动态进行建模.然后通过计算基于注意力网络的关联情境来量化每个小程序的重要性,以减少或忽略信息量较少或预测性较低的异常点的影响.最后,进行了实验研究以验证该ACA-SR模型的有效性.通过对实验结果分析,该模型相比于其他方法拥有较强的表达能力和性能优势.

在接下来的工作中,本文将深挖用户长期偏好对下一项交互的影响并且解决冷启动问题以及提高该模型的可解释性,进一步提升该模型的准确度;并且后续将研究其他因素对小程序推荐的用户体验感的影响.

猜你喜欢

矩阵建模维度
理解“第三次理论飞跃”的三个维度
物理建模在教与学实践中的应用
在经历中发现在探究中建模
思维建模在连续型随机变量中的应用
认识党性的五个重要维度
求距求值方程建模
浅论诗中“史”识的四个维度
多项式理论在矩阵求逆中的应用
矩阵
矩阵