本发明涉及深度学习和推荐系统领域,尤其涉及一种时序感知的动态社交场景推荐方法。
背景技术:
推荐系统是一种信息过滤系统,旨在通过电商平台上的用户行为数据分析其偏好并进行信息筛选,从而为用户提供个性化推荐服务。目前,推荐系统已广泛应用于各个行业,可推荐的对象包括电影、书籍、音乐、新闻等各种各样丰富的商品和服务。近年来,随着社交平台的发展和社交元素与新兴商业应用的结合,用户之间的社交行为成为推荐产品的重要依据,表现为用户在平台上的选择受到其社交关系的影响。因此,在设计推荐算法时,将社交影响因素加以考虑能够有效提升推荐效果。
在目前的研究工作和专利中,还未发现有结合动态社交影响力与用户序列行为对用户进行推荐的研究,尤其是将动态社交影响纳入时间序列的范畴加以表征建模的研究。
技术实现要素:
本发明的目的是提供一种时序感知的动态社交场景推荐方法,通过建模用户的时序消费行为与时序社交行为,从而更加真实地捕捉社交信息对用户消费选择的动态影响,并还原用户在消费过程中的偏好动态变化过程,同时解决用户偏好预测与商品推荐任务并提升推荐效果。
本发明的目的是通过以下技术方案实现的:
一种时序感知的动态社交场景推荐方法,包括:
从用户历史消费行为和社交行为记录中获取用于分析的基本数据;
根据基本数据建模用户时序消费行为与时序社交行为,从而利用获得的动态用户个人偏好与动态社交背景信息还原历史消费行为中用户的决策过程,再结合用户的决策函数估计商品的相对排序,并实现用户决策函数中相关参数的训练;
对于新的商品,基于完成参数训练的决策函数,计算用户对于每个商品的偏好得分,进而通过稳定匹配的方式预测用户选择的结果并进行推荐。
由上述本发明提供的技术方案可以看出,通过对用户时序消费行为建模,可以更为真实地还原用户在消费时的决策变化过程,同时通过动态地建模用户社交行为,可以捕获社交信息对用户消费选择的影响,从而既可以实现对于用户的精准画像,又可以提升对于社交影响力分析乃至商品推荐的性能,实现一举多得的效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种时序感知的动态社交场景推荐算法的流程图;
图2为本发明实施例提供的面向图结构信息与时序信息的注意力机制建模示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明实施例提供的一种时序感知的动态社交场景推荐算法的流程图,如图1所示,其主要包括如下步骤:
步骤1、从用户历史消费行为和社交行为记录中获取用于分析的基本数据。
步骤2、根据基本数据建模用户时序消费行为与时序社交行为,从而利用获得的动态用户个人偏好与动态社交背景信息还原历史消费行为中用户的决策过程,再结合用户的决策函数估计商品的相对排序,并实现用户决策函数中相关参数的训练;
步骤3、对于新的商品,基于完成参数训练的决策函数,计算用户对于每个商品的评分,进而通过稳定匹配的方式预测用户选择的结果并进行推荐。
本发明实施例上述方案中,通过对用户时序消费行为建模,可以更为真实地还原用户在消费时的决策变化过程,同时通过动态建模用户社交行为,捕获社交信息对用户消费选择的影响,从而既可以实现对于用户的精准画像,又可以提升对于社交影响力分析乃至商品推荐的性能,实现一举多得的效果。
为了便于理解,下面针对上述三个步骤的优选实施方式进行介绍。
1、基本数据的收集、筛选及预处理。
本步骤主要分为如下两个阶段,各阶段优选实施方式如下:
1)基本数据的收集
本发明实施例中,所述基本数据至少包括历史用户消费行为信息及用户社交行为信息。其中,历史消费行为信息至少包括:用户身份标识、商品身份标识、用户对商品的行为、以及行为发生所对应的时间戳。历史社交行为信息至少包括:用户身份标识、用户之间的行为、以及行为发生所对应的时间戳。
2)数据预处理。
由于需要对用户序列性的行为进行建模,以动态地预测用户偏好,因此,首先根据时间戳划分出多个时间段,以指定时间间隔作为一个时间窗,用户的消费行为数据与社交行为数据时间窗口划分方式相同。旨在预测用户的未来决策,因此,可以将最后一个时间窗内的数据将作为测试集,其余时间窗的数据作为训练集。
用户对商品的行为以二值形式表示是否有交互行为,同样,用户的社交行为以二值形式表示是否有社交关系。为确保每一个用户都有测试的数据,在数据筛选过程,将时间窗数目少于设定值的用户的基本数据剔除。
示例性的,可以设置一个月为时间窗口长度,设定值可以2。当然,在具体应用时,合适的时间窗口、以及设定值的具体数值可根据数据的实际情况加以调节。
2、模型训练与参数估计。
本步骤主要分为六个阶段,各阶段优选实施方式如下:
1)参数初始化。
参数初始化是指对用户对商品的评价因素进行参数初始化,所涉及的评价因素也即决策函数中的相关参数。
对于用户u而言,其对商品的评价因素包括:商品v的表示向量qv与用户u受到社交影响的个人偏好向量
各评价因素初始化方式如下:
商品的表示向量qv以小数值的均匀分布初始化,用户的u初始个人偏好向量
2)动态用户偏好预测。
动态用户偏好建模,是利用循环神经网络结合基本数据中的历史用户消费行为信息,建模用户时序消费行为,获得动态用户个人偏好。
本发明实施例中,通过对用户的历史消费行为进行建模,并预测每个时间窗口内的用户偏好。
用户u在t时间窗内的偏好向量为
将用户初始偏好向量
3)动态社交信息提取。
动态用户偏好预测,利用注意力机制结合基本数据中的用户社交行为信息,建模用户的时序社交行为,获得动态社交背景信息。具体的是利用注意力机制提取各时间窗内用户u的社交关系权重,作为用户u的动态社交信息的表示向量。
用户在消费域的偏好和选择收到其社交关系的影响,不同的社交关系具有不同的影响力,同时,社交关系的重要程度和这段关系存在的时间长短有关。为更真实的还原不同社交关系带来的影响,本环节通过注意力机制(attentionmechanism)学习社交关系的权重。
如图2所示,注意力机制分成两个组分:基于社交图结构的注意力机制与基于时间信息的注意力机制。利用这两种注意力机制分别计算相应的关系权重,再将两个关系权重的加权和作为用户u的社交关系权重。
根据用户之间的社交连接以及时间信息将社交行为表示为序列社交图,即
a)基于图结构信息。
基于社交图结构的注意力机制旨在区分用户u当前的邻居对其的重要程度。对用户u和其邻居u′的输入特征进行
其中,wx是注意力机制中的可学习参数,此处用于将输入特征转换为隐空间中的向量,向量作为用户在社交空间的隐表示;
之后,根据线性变换后的用户特征,计算两个用户之间的关系:
其中,
基于以上方式,完成全部邻居与用户u的关系计算之后,经过归一化处理得到用户u和其邻居u′所对应的权重系数:
最终得到的权重系数
b)基于时间信息。
基于时间信息的注意力机制在计算一个邻居的权重时,会考虑社交关系存在的时长的影响。在计算两个用户之间的关系表示时,输入包含三个部分:目标用户的特征,邻居用户的特征、邻居用户对应的时间向量。计算流程与基于图结构信息部分相似:
其中,
通过注意力机制获得t时间窗内社交关系的两类权重之后,对于用户u,得到对应t时间窗内的基于图结构信息的社交背景向量
将两部分结合,得到用户u在t时间窗内的动态社交信息的表示向量:
4)计算目标函数
本发明实施例中,通过结合动态用户个人偏好与动态社交背景信息,还原历史消费行为中用户的决策过程,从而计算相应目标函数。
结合动态用户个人偏好与动态社交背景信息,获得用户的最终表示向量,即含有社交影响的用户偏好向量。结合方式为向量相加:
其中,
根据用户u在t时间窗内的最终表示向量
计算得到的
在训练模型(此处的模型可以理解为实现前述2)~3)所设计的模型架构)时,根据用户商品之间真实的交互记录,对模型的期望是预测的情况尽可能还原真实的情况。模型训练指模型的参数迭代更新的过程,参数的更新取决于待优化的目标函数。本发明实施例中采用贝叶斯推断排序中的目标函数,其理论假设是用户对正样本(已消费过的商品)的偏好大于对其他样本的偏好。
通过还原历史消费行为中用户的决策过程,基于贝叶斯推断排序假设,最大化以下目标函数:
在训练过程中,模型每次输入的是多个用户的序列数据,每次计算的总目标函数
其中,p(u,t,v>v′),表示用户u在t时间窗内已消费商品v与大于未消费商品v′之间的差距;v>v′表示用户u对于已消费商品v的偏好大于未消费商品v′;σ(.)为激活函数;
对于每个用户,本发明实施例中在所有商品中随机选择一个用户未显式标记过的商品作为对应的负样本v′,用于以对级(pair-wise)的形式计算目标函数。
5)参数迭代更新。
参数迭代更新,是指利用目标函数更新用户的决策函数中相关参数。
在本发明实施例中,将基于环节4)中设计的目标函数对模型参数进行迭代更新,即模型训练过程。模型中所待训练参数θ包括:循环神经网络中的参数与注意力机制中的参数(例如,前文提到的wx、wt)。训练过程中,训练数据集以分批(batch)形式输入到模型中,参数通过梯度下降法来更新,也可以采用其他类似方法来更新,实现方式可以参照常规技术。将训练数据集迭代输入到模型中,直至模型收敛。
6)生成商品排序列表。
利用参数迭代优化结果,结合决策函数更新用户对于商品的完整排序列表,并进行循环优化,直至商品对于用户的完整排序列表不再改变。
3、模型应用与预测任务。
获得完成参数训练的决策函数后,可用来预测用户对各新的商品的偏好得分预测,从而生成推荐列表,主要过程如下:
1)对于一系列新的商品,先将各新的商品自身属性进行向量化处理,得到各新的商品的表示向量;
2)对于用户u,利用完成参数训练的决策函数结合各新的商品的表示向量,预测用户u对于新的商品的偏好得分;
3)将偏好得分按照从大至小的顺序进行排列,并取排名靠前的k(k是一个自然数,具体数值可根据情况来设定)个商品推荐给用户u。
测试阶段与实际应用阶段都可通过上述步骤1)~3)所示的方式来生成推荐列表。测试阶段,可以利用基本数据的收集、筛选及预处理时所选取的测试集来执行,利用生成的推荐列表与真实记录进行对比,再通过推荐系统常用评价指标(如准确率、召回率)衡量模型效果。模型效果满足要求即可进行实际应用,所生成的推荐列表即可反馈给相应用户。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。