首页> 中国专利> 一种基于经济运行不确定性因素分析的精准服务推荐方法

一种基于经济运行不确定性因素分析的精准服务推荐方法

摘要

本发明提供了一种基于经济运行不确定性因素分析的精准服务推荐方法,包括以下步骤:步骤1:原始数据处理。对数据进行预处理,包括缺失值处理、异常值处理和标准化,然后从原始数据中提取出有效特征,并进行特征嵌入。步骤2:初始化模型。根据数据特征,初始化推荐系统模型。步骤3:训练模型。将步骤1中处理好的样本输入至步骤2中的模型,选择合适的损失函数训练模型。步骤4:采集困难负样本。使用LIME算法,得到各个特征的归因值,根据归因值采集困难负样本。步骤5:再次训练模型,输出最终模型。在负样本中加入困难负样本,再次训练模型,提高模型的鲁棒性。

著录项

  • 公开/公告号CN114841774A

    专利类型发明专利

  • 公开/公告日2022-08-02

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN202210507284.8

  • 发明设计人 窦万春;任可;戴海鹏;

    申请日2022-05-10

  • 分类号G06Q30/06(2012.01);G06K9/62(2022.01);

  • 代理机构江苏圣典律师事务所 32237;江苏圣典律师事务所 32237;

  • 代理人胡建华;于瀚文

  • 地址 210023 江苏省南京市栖霞区仙林大道163号南京大学

  • 入库时间 2023-06-19 16:14:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-19

    实质审查的生效 IPC(主分类):G06Q30/06 专利申请号:2022105072848 申请日:20220510

    实质审查的生效

说明书

技术领域

本发明涉及推荐系统的召回领域,特别涉及一种基于经济运行不确定性因素分析的精准服务推荐方法。

背景技术

“宅经济”、“懒人经济”,共同促进了线上消费的发展。根据艾瑞咨询发布的报告,对比疫情前后,用户线上消费的频率明显增加。例如,用户增量最高的生鲜水果与食品饮料品类,疫情后线上消费比疫情前分别增长了27.6%与17.3%;在 618期间,京东家电专卖店整体成交额同比增长240%。

一方面,线上市场迅速扩张,各个电商平台需要为用户提供精准的服务推荐,从海量的候选商品中召回一批用户感兴趣的商品,以方便用户线上选购。另一方面,电商推荐系统应该具有鲁棒性。推荐系统根据用户画像、用户消费记录等历史数据来捕捉用户的消费偏好,从而为用户匹配合适的商品。现有的推荐系统过度强调在历史消费数据上的精准性,认为在历史数据上的准确性越高就越能预测出用户未来的消费行为。然而,这可能导致推荐系统过度的依赖从历史数据中学习到的个别特征,缺乏鲁棒性以应对未来可能出现的不稳定因素的影响。此外,在不稳定环境下,用户兴趣随时会发生改变,模型应该敏锐的捕捉到用户的兴趣变化。

一个鲁棒的推荐系统应该不依赖于数据中的个别特征,它应该尽可能的提高辨别能力,特别是对那些难以区分的正负样本。通常推荐系统召回阶段的负样本是随机采样的,负样本大多是简单负样本,即负样本与正样本差别较大,推荐系统很容易根据少量特征就能完成判断。为了提高模型的鲁棒性,需要加入困难负样本,这些负样本与正样本比较接近,模型能够学习到更多信息。

发明内容

发明目的:本发明所要解决的技术问题是改进现有的电商推荐系统中存在的问题,提高推荐系统的鲁棒性,以减少经济发生不稳定因素带来的影响,本发明具体提供一种基于经济运行不确定性因素分析的精准服务推荐方法,包括以下步骤:

步骤1,对原始数据进行预处理,得到数据特征;

步骤2,根据数据特征,初始化推荐系统模型;

步骤3,将步骤1中处理好的样本输入至步骤2中的推荐系统模型,并训练推荐系统模型;

步骤4,采集困难负样本;

步骤5,再次训练推荐系统模型,输出最终的推荐系统模型,利用最终的推荐系统模型得到推荐结果。

步骤1中,所述原始数据包括描述用户的数据、描述物品的数据以及用户与物品之间的交互数据。

步骤1中,分别对原始数据进行缺失值处理、异常值处理和标准化,最后使用先验知识挑选出有效的特征用于训练模型,对离散型特征使用one-hot编码进行特征嵌入,数值型特征保持不变。

步骤2中,所述推荐系统模型包括线性模型和深度神经网络,所述线性模型表示为:

y=w

其中,x=[x

所述深度神经网络包括特征组合层和特征交互层,特征组合层表示为:

其中,V

步骤2中,所述特征交互层包含两个以上的隐藏层,第一个隐藏层表示如下:

h

其中,h

f(x)=max(0,x)

特征交互层的其余层表示如下:

h

其中,h

步骤2中,推荐系统模型的输出P(Y=1|x)为:

其中,Y表示数据标签,在点击预测任务中,Y=1表示用户点击了该物品,

其中,e为自然底数,x为最后一层神经元上的输入值。

步骤3包括:定义用户与正样本的匹配性高于用户与负样本的匹配性的概率p:

p=σ(P(u,i

其中,σ为sigmoid函数;u表示用户,i

将概率p和交叉熵损失函数结合,得到贝叶斯个性化排序(BayesianPersonalized Ranking,BPR)损失函数L

L

为每个正样本随机采样一个负样本,使用BPR损失函数训练推荐系统模型。

步骤4中,使用模型无关的局部可解释(Local Interpretable Model-AgnosticExplanation,LIME)算法采集困难负样本:

设g∈G为一个可解释模型,G表示一个可解释模型的集合,定义Ω()为模型复杂度,线性模型的模型复杂度为非零权重,决策树模型的模型复杂度为树的深度;定义样本x的邻域为π

ξ(x)=arg min

步骤4还包括如下步骤:

步骤4-1,定义待解释样本x的邻域π

步骤4-2,用推荐系统模型在与x相近的样本上进行预测;

步骤4-3,用与x相近的样本训练一个可解释模型,得到样本x各个特征的归因值,然后取平均,得到归因值最大的特征x

其中,n为物品的特征数量;φ

步骤5中,使用采集好的困难负样本再次训练推荐系统模型,最终得到一个具有鲁棒性的推荐系统模型。

与现有技术相比,本发明具有的有益效果是:

(1)本发明的推荐系统精准度高。推荐模型由记忆部分和泛化部分组成,记忆部分学习特征的一阶交互,能很好的记住历史交互数据中出现的高频模式;泛化部分显示的学习特征之间的高阶交互,挖掘用户的兴趣。

(2)本发明的推荐系统鲁棒性强。使用博弈论中的方法采集困难负样本再次训练模型,提高模型的鲁棒性,以减少不确定性因素带来的扰动。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/ 或其他方面的优点将会变得更加清楚。

图1是本发明步骤流程图。

图2是本发明推荐系统模型的基本框架图。

图3是某电商平台公开的数据集的数据格式示意图。

图4是物品的四个特征对模型输出的归因值归一化后显示结果示意图。

具体实施方式

本发明提供了一种基于经济运行不确定性因素分析的精准服务推荐方法,包括以下步骤:

步骤1:原始数据处理。对数据进行预处理,包括缺失值处理、异常值处理和标准化,然后从原始数据中提取出有效特征,并进行特征嵌入。

步骤2:初始化模型。根据数据特征,初始化推荐系统模型。

步骤3:训练模型。将步骤1中处理好的样本输入至步骤2中的模型,选择合适的损失函数训练模型。

步骤4:采集困难负样本。使用LIME算法,得到各个特征的归因值,根据归因值采集困难负样本。

步骤5:再次训练模型,输出最终模型。在负样本中加入困难负样本,再次训练模型,提高模型的鲁棒性。

本发明中,首先要有描述用户的数据、描述物品的数据以及用户与物品之间的交互数据。描述用户的数据有用户的性别、年龄、城市等,描述物品的数据有物品的类别、价格、标签等,用户与物品之间的交互数据有用户对物品的点击、评分或购买等交互行为数据。

接下来分别对原始数据进行缺失值处理、异常值处理和标准化。数据中的缺失值可能是客观上的存储失败、主观上的用户隐瞒等原因造成的,其处理原则是使用最可能的值填补缺失值。可以使用同类均值插补方法,用聚类的方法预测缺失值所属的类别,然后用该类别的均值填补;也可以使用近似替代方法,用欧氏距离确定与含有缺失值的样本最接近的若干个样本,将这若干个样本进行加权平均来填补缺失值。数据中的异常值指的是偏离大部分数据的数据,具体可设为与数据中平均值偏差超过三倍标准差的数据。可以将这些数据直接删除或者用缺失值处理中的方法修正这些数据。数据的标准化是将数值类数据,比如用户的年龄、物品的价格等,使用z-score标准化方法转换成均值为0、方差为1的数据,其公式为:

其中,a表示新数据,b表示原始数据,c表示原始数据的平均值,d表示原始数据标准差;

最后可以使用先验知识从中挑选出有效的特征用于训练模型,对离散型特征使用one-hot编码进行特征嵌入,数值型特征保持不变。

本发明中,使用的推荐系统模型分为两个部分,分别实现记忆功能与泛化功能。模型的记忆部分用于记住历史数据中常见的高频模式,它是一个线性模型,学习特征的一阶作用,表示为:

y=w

其中,x=[x

模型的泛化部分用于从历史数据中挖掘用户的兴趣,它是一个深度神经网络,学习特征的高阶交互作用,分为特征组合层和特征交互层。特征组合层将特征两两组合,特征交互层是一个多层感知机,将特征组合层的输出作为输入,该层自动学习特征之间的高阶交互。特征组合层表示为:

其中,V

特征交互层包含多个隐藏层,第一个隐藏层表示如下:

h

其中,h

f(x)=max(0,x)

特征交互层的其余层表示如下:

h

其中,h

最后推荐系统模型的输出为这两部分输出的逻辑回归:

上式是模型预测样本x的标签为Y=1的对数几率,可以看作模型对样本x的预测值。其中,w

至此模型已经初始化完毕,模型的结构示意图如图3所示。

推荐系统主要分为召回阶段和排序阶段,召回阶段从所有物品中选择大约几百个用户感兴趣的物品,排序阶段再给这些物品排序,将排在前几十名的物品曝光给用户。推荐系统中的正样本就是用户点击过、购买过的物品,推荐系统的排序阶段往往使用曝光未点击的样本作为负样本,但在推荐系统的召回阶段,成千上万的候选物品不可能全部给用户曝光,然后选择用户未点击的样本。所以在召回阶段负样本通常是随机采样的,这样不能保证随机采样得到的负样本都是真负样本。推荐系统通常是完成一个二分类问题,模型将用户感兴趣的物品预测为1,将用户不感兴趣的物品预测为0。而常用于二分类问题的交叉熵损失函数计算的是样本的绝对准确性,需要负样本是真负样本。所以这里不使用交叉熵损失函数,使用BPR损失函数。该损失函数对<用户,正样本,负样本>三元组建模,其目标是保证用户与正样本的匹配性要高于用户与负样本的匹配性。首先,定义用户与正样本的匹配性高于用户与负样本的匹配性的概率:

p=σ(P(u,i

其中,u表示用户,i

L

为每个正样本随机采样一个负样本,使用BPR损失函数训练模型。然而随机采样得到的负样本通常是简单负样本,简单负样本与用户的正样本往往差距过大,模型很容易区分它们。所以模型训练完毕后,为了加强模型的鲁棒性,需要使用困难负样本再次训练模型。

困难负样本是和正样本比较接近的样本,目的是尽量让模型学习到更多的信息,避免模型只依赖于个别特征就完成分类,从而提高模型对未知数据的鲁棒性,减少不确定性因素带来的扰动。这里使用基于博弈论中Shapley值法的LIME算法,该算法可以得到各个特征对模型输出值的贡献,即得到各个特征的归因值。如果正样本的一个特征的归因值较大,说明模型主要是根据该特征完成了分类。但在不确定性因素的影响下,用户的偏好会发生改变,采用简单负样本训练模型,会导致模型“偷懒”地根据该特征完成分类,即拥有该特征的样本都有比较大的概率被判定为正样本,而忽略其他特征中的信息。所以在归因值较大的特征上进行负采样,降低模型对该特征的依赖。

如果用线性模型y=w

LIME算法的步骤为:

1、定义待解释样本x的邻域π

2、用推荐系统模型在这些样本上进行预测;

3、用这些样本训练一个可解释模型,比如线性模型,得到其样本x各个特征的归因值。

用LIME算法求出用户u的所有正样本i

其中,n为物品的特征数量;φ

使用采集好的困难负样本再次训练模型,即得到一个具有鲁棒性的推荐系统模型。

实施例

本实施例公开了一种基于经济运行不确定性因素分析的精准服务推荐方法,该方法流程图如图1所示,包括以下步骤:

步骤1:原始数据处理。对数据进行预处理,包括缺失值处理、异常值处理和标准化,然后从原始数据中提取出有效特征,并进行特征嵌入。

步骤2:初始化模型。根据数据特征,初始化推荐系统模型。

步骤3:训练模型。将步骤1中处理好的样本输入至步骤2中的模型,选择合适的损失函数训练模型。

步骤4:采集困难负样本。使用LIME算法,得到各个特征的归因值,根据归因值采集困难负样本。

步骤5:再次训练模型,输出最终模型。在负样本中加入困难负样本,再次训练模型,提高模型的鲁棒性。

其中,在步骤1中首先从服务器中获取用户数据、物品数据以及用户和物品之间的交互数据。其中用户数据包括用户的id、年龄、性别、城市等,物品数据包括物品的id、类别、品牌、价格等,用户与物品的交互数据包括用户是否点击物品、用户对物品的评分等。然后对数据进行预处理,包括缺失值处理、异常值处理和标准化。然后根据推荐目标,从原始数据中提取出合适特征。

这里使用了某电商平台公开的数据集,其数据格式图3所示;

该数据集对用户的年龄进行了分类;交互时间表示用户在该时刻点击了该物品;用户每半小时内浏览的物品均设为同一个会话id。由于所有用户均来自同一个国家,故这里不使用“国家”这个特征;为了避免模型过拟合,这里使用“会话id”考虑用户点击物品的时间因素,不使用“交互时间”这个特征。

最后对特征进行嵌入,连续型数据经过标准化后可直接输入模型,像用户id、城市、物品id、类别这样的离散型数据经过one-hot编码后输入模型。

其中,在步骤2中,根据特征嵌入的维度来设置模型每层神经元的数量。本发明使用的推荐系统模型分为两个部分,分别实现记忆功能与泛化功能。模型的记忆部分用于记住历史数据中常见的高频模式,它是一个线性模型;模型的泛化部分用于从历史数据中挖掘用户的兴趣,它是一个深度神经网络;推荐系统模型的输出为这两部分输出的逻辑回归。线性模型和深度模型的输入神经元数量相同,均等于嵌入向量的维度。构建好模型后,随机初始化其参数。

其中,在步骤3中,如果当前任务是点击预测,正样本物品是用户点击过的物品,负样本物品是从所有候选物品中随机采样得到的。先将用户特征向量和正样本特征向量拼接在一起,输入至模型得到输出值p;再将用户特征向量和负样本特征向量拼接在一起,输入至模型得到输出值n。使用BPR损失函数训练模型,该损失函数对<用户,正样本,负样本>三元组建模,其目标是保证用户与正样本的匹配性要高于用户与负样本的匹配性,即上述输出值p大于输出值n。

其中,在步骤4中,使用基于博弈论中Shapley值法的LIME算法,该算法可以得到各个特征对模型输出值的贡献,即得到各个特征的归因值。如果是点击预测任务,设用户u点击过m个物品,将用户特征向量与这m个物品的特征向量分别拼接,形成 m个正样本特征向量,输入至推荐系统模型,得到m个输出。这里选择一个线性模型对推荐系统模型进行解释,将上述m个正样本特征向量和m个输出值训练该线性模型。之后得到归因值最大的特征x

该数据集的物品有四个特征,分别为物品id、品牌、商店id、类别。这里对用户 id为2399402的用户使用LIME算法,得到物品的四个特征对模型输出的归因值,然后将归因值进行归一化后显示如图4所示;

其中商店id的归因值最大,可见商店id最能影响该用户的点击行为。为了避免模型过拟合,进而提高模型鲁棒性,以

其中,在步骤5中,使用步骤4中采集到的困难负样本,按步骤3中的方法再次训练模型。最后模型就可以对新样本进行预测,加入困难负样本训练提高了模型的点击预测率。

在一些实施例中,如果任务是预测用户对物品的评分,用户与物品的交互数据中需要包含用户对物品的评分,评分超过一定阈值的物品可设为该用户的正样本物品,评分低于一定阈值的物品可设为该用户的负样本物品。

需要说明的是,在步骤3、步骤5中,训练模型需要设置合适的学习率,学习率决定模型训练的快慢,可以设置为0.01;损失函数中可以添加L2正则化项,进一步提高模型的泛化能力;可以选择随机梯度下降法对模型参数进行更新。

需要说明的是,在步骤4中,如果用户点击过的物品太少,无法使用LIME算法训练一个可解释模型,则可以将用户分类,比如按照用户的特征进行聚类,然后使用相同类别中的所有用户的交互数据来训练可解释模型。

本发明提供了一种基于经济运行不确定性因素分析的精准服务推荐方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号