本发明涉及序列化推荐和基于深度学习的推荐系统领域,尤其涉及基于长短期偏好的序列化商品推荐的方法。
背景技术:
近推荐系统作为现代电子商务网站的重要组成部分,试图根据用户的兴趣或偏好来推荐未来用户想要购买或交互的物品。随着电子商务机制的发展,大量的用户交互(如浏览、点击、收集、购物车、购买)被记录下来,其中隐藏着用户的消费模式。这些包含充分信息量的日志为研究用户的偏好以及个性化推荐提供了数据基础。
现有的推荐系统对用户与物品之间交互的建模可以归纳为两种主要的方式。第一种方法是基于矩阵分解的协同过滤(cf)来获得用户偏好,这些工作侧重于从用户与物品的交互中挖掘其静态关联,这些关联由传统的协同过滤模型表示。然而,这些工作仅仅从静态视图考虑了用户-物品之间特定关系,忽略了序列化交互中隐含的用户偏好的演化,没有考虑到用户偏好的演化对未来购买物品的影响。
第二种方法是基于序列模式来挖掘用户与物品之间的关系从而进行个性化推荐。其中用户稳定的长期偏好是长期以来个人习惯导致的偏好;短期偏好是用户近期购买的物品决定的偏好。这种类型的工作包括:根据马尔科夫链模型建模用户与商品的交互序列;根据rnn模型建模用户与商品的交互序列。
现有的序列模型虽然可以基于交互行为序列预测用户下一次购买时可能购买的项目,但是存在以下两点不足:第一,这些方法侧重于直接使用物品之间的序列性表示物品之间关系,但由于不同的用户在购买相同的产品时关注不同的方面,导致直接使用物品之间的相似性表示的物品向量无法直接代表用户的偏好,第二,现有的模型忽略了用户的即时兴趣,不同于用户的短期偏好,即时兴趣是当用户想要购买一个产品或一系列产品时,即时的、特定的需求。
技术实现要素:
针对以上缺陷,本发明提供一种基于用户稳定的长期偏好以及动态的即时兴趣进行聚合可以更好的进行个性化推荐的方法。本发明的技术方案为:
一种基于长短期兴趣的序列化推荐方法,所述方法包括以下步骤:
s1:获取数据,对数据进行预处理;
s2:对所有的评论文本、提问文本进行处理,对每个商品的相关文本中选择得分最高的多个词作为提取特征,通过所有特征的集合来对商品进行描述,构建商品的特征表示矩阵;
s3:构建用户购买序列的向量表示:根据商品的特征表示矩阵以及用户的历史购买序列得到每个用户购买序列的向量表示;
s4:分别对用户的长期兴趣偏好和短期兴趣偏好进行表示;
s5:将用户的长期兴趣偏好和短期兴趣偏好通过attention机制获得用户聚合偏好;
s6:通过确定聚合偏好和目标物品之间的关系,获得用户提问之后与物品交互的概率;
s7:使用交叉熵损失函数来学习模型的参数,得到提问时刻后每个物品被购买的概率。
进一步的,一种基于长短期兴趣的序列化推荐方法,所述s1中预处理包括:将每个用户的购买数据、评论数据以及提问数据按照时间顺序排序、过滤总购买数低的用户。
进一步的,一种基于长短期兴趣的序列化推荐方法,所述s2中选择得分最高的多个词的个数为大于等于5个。
进一步的,一种基于长短期兴趣的序列化推荐方法,所述s2中,使用tf-idf方法对评论文本、提问文本进行处理。
进一步的,一种基于长短期兴趣的序列化推荐方法,根据用户购买序列的向量表示,使用双向rnn隐藏单元的值对用户的长期偏好进行表示。
进一步的,一种基于长短期兴趣的序列化推荐方法,短期兴趣偏好使用corenlp算法对用户在某一时刻的提问文本进行处理,得到用户在提问中比较关注的特征的分数,对用户的短期兴趣偏好进行表示。
进一步的,一种基于长短期兴趣的序列化推荐方法,所述s6中的所述聚合偏好和目标物品之间的关系通过使用全连接层来确定。
本发明的有益效果为:通过递归神经网络可以根据用户与商品的历史交互序列建模用户的长期偏好;用户对于商品的提问可以提取出用户短期内的即时兴趣;基于注意力机制可以将长期偏好与即时兴趣进行聚合,从而在下一时刻为用户进行个性化推荐。其能够有效解决由于用户偏好演化而导致的推荐不准确的问题,同时可以有效表示不同用户对于长期偏好与即时兴趣不同的依赖程度。
附图说明
图1为本发明一种基于长短期兴趣的序列化推荐方法流程图;
图2为一种基于长短期兴趣的序列化推荐方法模型图;
图3为一种基于长短期兴趣的序列化推荐方法中表示推荐性能recall、hr随推荐列表长度的变化;
图4为一种基于长短期兴趣的序列化推荐方法表示不同用户对长期偏好以及即时兴趣的依赖程度。
具体实施方式
下面结合附图来进一步描述本发明的技术方案:
如图1所示,本发明处理数据集中的用户购买序列数据以及用户提问数据,据此得到用户与商品的序列化交互数据,提取用户对于商品的评论内容来表示商品的特征;接下来使用递归神经网络(recursiveneuralnetwork,rnn)从用户的历史购买序列数据中学习用户稳定的长期偏好,同时使用提问数据来建模用户的即时兴趣;最后,对于稳定的长期偏好和动态的即时兴趣,本文使用注意力(attention)机制来刻画不同用户对这两个特征的依赖程度。具体方法,包括以下步骤,见图2:
s1:获取数据,对数据进行预处理;
根据一般数据处理方式,本发明中的预处理包括:将每个用户的购买数据、评论数据以及提问数据按照时间顺序排序、过滤总购买数低的用户。为保证推荐准确率,本实施例过滤掉了总购买数低于5次的用户。
s2:对所有的评论文本、提问文本进行处理,本发明使用tf-idf方法对评论文本、提问文本进行处理。
对每个商品的相关文本中选择得分最高的k个词作为提取特征,通过所有特征的集合a={a1,a2,...,ak}来对商品进行描述,表示为i={i1,i2,...,in},其中ij表示第j个商品的特征表示;
s3:构建用户购买序列的向量表示。
根据商品的特征表示矩阵i以及用户的历史购买序列得到每个用户购买序列的向量表示,表示为:
其中
s4:对用户的长期兴趣偏好进行表示。
根据用户购买序列的向量表示
ij=δ(wvibj whihj-1 wcicj-1 bi),
fj=δ(wvfbj whfhj-1 wcfcj-1 bf),
cj=fjcj-1 ijtanh(wvcbj whchj-1 bc),
oj=δ(wvobj whohj-1 wcocj bo),
hj=ojtanh(cj)
其中ij、fj和oj分别对应gru的输入门、遗忘门和输出门,bj为当前时刻的购物篮的向量表示,cj为gru记忆单元的值,
longpu=average(h1,h2,...,htq);
s5:对用户的短期兴趣偏好进行表示。
短期兴趣偏好建模主要使用corenlp算法对用户在tq时刻的提问文本进行处理,得到用户在提问中比较关注的特征的分数,因此用户u的短期偏好形式上可以描述为:
其中
s6:由s4得到的长期兴趣偏好和s5得到的短期兴趣偏好,通过attention机制可以得到长短期兴趣相结合的用户聚合偏好。
所述聚合偏好表示为:
使用全连接层来找到聚合偏好
步骤7:使用交叉熵损失函数来学习模型的参数,得到提问时刻tq后每个物品被购买的概率,描述为:
其中,γ表示历史购买序列中观察到的项,γ-表示消极实例,可以将未观察的商品全体视为消极实例,也可以采取负采样的方式。
推荐结果如图3、图4所示,对用户下一个时刻可能购买的商品进行预测,得到预测评分向量,从而对用户推荐top-k个商品。
1.一种基于长短期兴趣的序列化推荐方法,其特征在于:所述方法包括以下步骤:
s1:获取数据,对数据进行预处理;
s2:对所有的评论文本、提问文本进行处理,对每个商品的相关文本中选择得分最高的多个词作为提取特征,通过所有特征的集合来对商品进行描述,构建商品的特征表示矩阵;
s3:构建用户购买序列的向量表示:根据商品的特征表示矩阵以及用户的历史购买序列得到每个用户购买序列的向量表示;
s4:分别对用户的长期兴趣偏好和短期兴趣偏好进行表示;
s5:将用户的长期兴趣偏好和短期兴趣偏好通过attention机制获得用户聚合偏好;
s6:通过确定聚合偏好和目标物品之间的关系,获得用户提问之后与物品交互的概率;
s7:使用交叉熵损失函数来学习模型的参数,得到提问时刻后每个物品被购买的概率。
2.根据权利要求1所述的一种基于长短期兴趣的序列化推荐方法,其特征在于:所述s1中预处理包括:将每个用户的购买数据、评论数据以及提问数据按照时间顺序排序、过滤总购买数低的用户。
3.根据权利要求1所述的一种基于长短期兴趣的序列化推荐方法,其特征在于:所述s2中选择得分最高的多个词的个数为大于等于5个。
4.根据权利要求1所述的一种基于长短期兴趣的序列化推荐方法,其特征在于:所述s2中,使用tf-idf方法对评论文本、提问文本进行处理。
5.根据权利要求1所述的一种基于长短期兴趣的序列化推荐方法,其特征在于:根据用户购买序列的向量表示,使用双向rnn隐藏单元的值对用户的长期偏好进行表示。
6.根据权利要求1所述的一种基于长短期兴趣的序列化推荐方法,其特征在于:短期兴趣偏好使用corenlp算法对用户在某一时刻的提问文本进行处理,得到用户在提问中比较关注的特征的分数,对用户的短期兴趣偏好进行表示。
7.根据权利要求1所述的一种基于长短期兴趣的序列化推荐方法,其特征在于:所述s6中的所述聚合偏好和目标物品之间的关系通过使用全连接层来确定。
技术总结