基于用户行为的协同过滤推荐方法、装置、设备和介质与流程

文档序号:19350639发布日期:2019-12-06 21:21阅读:157来源:国知局
基于用户行为的协同过滤推荐方法、装置、设备和介质与流程
本发明实施例涉及计算机
技术领域
,尤其涉及一种基于用户行为的协同过滤推荐方法、装置、设备和介质。
背景技术
:在大数据和互联网时代,用户行为数据是较为重要的一种数据。因为用户行为数据蕴含了用户及其行为对象的诸多潜在规律,可以基于这些用户行为数据,计算各行为对象之间以及用户之间的相关性,从而对用户接下来的行为进行预测或推荐。计算各行为对象之间以及用户之间相关性的模型或算法有很多,其中,采用矩阵分解推荐模型是一种主流方法,例如,als矩阵分解推荐模型,就是将用户及其行为对象映射到同一个高维度向量空间,训练得到基于用户及其行为对象的基本训练模型,然后依照此模型可以对新的用户以及行为对象进行评估。但是该训练模型的建立需要基于用户对行为对象的评分数据,通过评分数据表征行为对象间或用户间的相似度。而通常情况下用户不会对所有行为对象进行评分,此时会出现行为缺失项,那么需要预测用户是否会对该行为对象打分以及打多少分,以补全缺失项。应用此方法,计算过程复杂且依赖性较强。技术实现要素:本发明提供一种基于用户行为的协同过滤推荐方法、装置、设备和介质,能够降低用户潜在向量维度空间,减少不必要的数据依赖,简化潜在向量构建和相似度计算过程。第一方面,本发明实施例提供了一种基于用户行为的协同过滤推荐方法,包括:基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量;对所述所有用户的行为对象潜在向量进行聚类后得到行为对象聚类向量;构建与所述行为对象聚类向量具有相同维度的各个用户的用户潜在向量;根据所述所有用户的行为对象潜在向量中各元素间的相似度以及各所述用户潜在向量间的相似度,向所述用户进行相似行为对象或相似用户推荐。第二方面,本发明实施例还提供了一种基于用户行为的协同过滤推荐装置,包括:行为向量构建模块,用于基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量;聚类向量构建模块,用于对所述所有用户的行为对象潜在向量进行聚类后得到行为聚类向量;用户向量构建模块,用于构建与所述行为对象聚类向量具有相同维度的各个用户的用户潜在向量;推荐模块,用于根据所述所有用户的行为对象潜在向量中各元素间的相似度以及各所述用户潜在向量间的相似度,向所述用户进行相似行为对象或相似用户推荐。第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所提供的基于用户行为的协同过滤推荐方法。第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的基于用户行为的协同过滤推荐方法本发明实施例基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量;并对其进行聚类后得到行为对象聚类向量;进而构建与行为对象聚类向量具有相同维度的各个用户的用户潜在向量;根据所有用户的行为对象潜在向量中各元素间的相似度以及各用户潜在向量间的相似度,向用户进行相似行为对象或相似用户推荐。降低了用户潜在向量维度空间,减少不必要的数据依赖,简化了潜在向量构建和相似度计算过程。附图说明图1是本发明实施例一中提供的一种基于用户行为的协同过滤推荐方法的流程图;图2是本发明实施例二中提供的一种基于用户行为的协同过滤推荐装置的结构示意图;图3是本发明实施例三中提供的一种计算机设备的结构示意图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。实施例一图1为本发明实施例一提供的基于用户行为的协同过滤推荐方法的流程图,本实施例可适用于对用户进行相似行为对象或相似用户推荐的情况,该方法可以由基于用户行为的协同过滤推荐装置来执行,具体包括如下步骤:步骤110、基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量。可选的,历史行为可以包括搜索、点击、收听、购买和下载等不同类型的行为;历史行为对象数据为对应各类历史行为的行为内容,例如:搜索英语专辑、点击英语专辑、收听英语专辑、购买英语专辑和下载英语专辑,以及搜索、点击相声、收听相声、购买相声和下载相声等。所构建的行为对象可以为某一类行为下的同一类行为对象所对应的具体内容,也可以为不同类型行为所对应的同一类行为对象的具体内容,例如:点击新概念英语青少年版课本、收藏新概念英语入门版。此时,“点击”和“收藏”属于不同的行为类型,“新概念英语青少年版课本”和“新概念英语入门版”均属于新概念英语专辑这一类行为对象。具体的,对各用户的历史行为对象数据进行融合后取并集,生成所有用户的行为对象数据序列;其中,行为对象数据序列采用集合的形式表示;基于词语向量模型,将行为对象数据序列转化为行为对象潜在向量。其中,词语向量模型可以为word2vector模型。可选的,可以根据用户的历史行为对象数据预先训练word2vector模型,从而得到行为对象潜在向量,具体为:获取对各用户的历史行为对象数据进行融合后的所有历史行为对象数据,根据预先设置的模型参数以及出现频次,训练得到各行为对象数据对应的行为对象潜在向量。其中,模型参数可以为窗口大小参数,即在word2vector模型训练过程中,所生成的正负样本,代表每个行为对象数据在所有行为对象数据中所在位置之前和之后,出现的行为对象数据的个数;出现频次为各行为对象数据在所有行为对象数据中出现的频次,若行为对象数据在所有行为对象数据中出现的频次小于预设出现频次,则该行为对象数据将被删除,不参与模型训练,也不会得到对应的行为对象潜在向量。示例性的,若用户群体中包含有k个用户,则可以将用户群体users集合记为{user_1,user_2,……,user_k};假设用户群体在历史行为对象数据集合上有历史行为对象数据,将用户某个历史行为数据(例如,订阅)记为a,假设该历史行为数据a包括m个行为对象(例如,英语专辑、相声专辑等),则行为对象数据序列记为{a1,a2,……,am},基于word2vector模型,将行为对象序列{a1,a2,……,am}转化为行为对象潜在向量为{v1,v2,…,vm}。例如,假设用户群体集合中包含用户user_1和用户user_2,用户user_1的历史行为对象数据集合为{a1,a2,a6},用户user_2的历史行为对象数据集合为{a2,a5,a10},如表1所示,表1为用户历史行为对象数据样例。表1用户历史行为对象数据样例用户历史行为对象数据user_1a1,a2,a6user_2a2,a5,a10将用户user_1和用户user_2各自对应的历史行为对象数据集合进行融合得到所有行为对象数据为{a1,a2,a6,a2,a5,a10},进而取并集后得到用户user_1和用户user_2的行为对象数据序列为{a1,a2,a5,a6,a10},基于预先训练的word2vector模型,将行为对象数据序列{a1,a2,a5,a6,a10}转化为对应的行为对象潜在向量为{v1,v2,v5,v6,v10}。示例性的,以所构建的行为对象为某一类行为下同一个行为对象为例进行说明。例如,假设历史行为为“订阅”,其对应的行为对象为“专辑”,用户总数为97335个,则用户群体users集合为{user_1,user_2,……,user_97335},覆盖的专辑数量为10803个,则所有用户的行为对象数据序列为{a1,a2,……,a10803}。根据所覆盖的专辑对word2vector模型进行训练,形成对应专辑的行为对象潜在向量为{v1,v2,……,v10803}。步骤120、对所有用户的行为对象潜在向量进行聚类后得到行为对象聚类向量。可选的,基于聚类分析算法,对所有用户的行为对象潜在向量进行聚类,得到各类行为对象的聚类中心簇以及对应各聚类中心簇的聚类中心向量;其中,行为对象聚类向量包括各聚类中心向量,行为对象聚类向量的维度与聚类中心簇的个数相同。具体的,聚类分析算法可以为k-means算法。假设需要将数据{xi}聚为k类,经过聚类之后每个数据所属的类别为{ti},而这k个聚类的中心为{μj}。则k-means聚类模型为:在上述实施例的基础上,例如,根据k-means聚类模型对用户群体users所构建的行为对象潜在向量{v1,v2,……,vm}进行聚类后,得到包含各类行为对象的聚类中心簇c以及对应各聚类中心簇的聚类中心向量的行为对象聚类向量ve,假设聚成n类,则可以将各类行为对象的聚类中心簇分别记为{c1,c2,……,cn},对应的聚类中心向量分别记为{ve1,ve2,……,ven},行为对象聚类向量的维度为n。示例性的,在上述实施例的基础上,根据k-means聚类模型对上述所构建的行为对象潜在向量{v1,v2,……,v10803}进行聚类后,得到20个类别,即将10803个专辑聚类为20个不同的类别,相似的专辑聚到同一个类别中。则各类行为对象的聚类中心簇为{c1,c2,……,c20},对应各聚类中心簇的聚类中心向量为{ve1,ve2,……,ve20}。例如,采用上述方式对所构建的行为对象潜在向量{v1,v2,……,v10803}进行聚类后,得到了20个类别,在编号为0的类别中,专辑编号1279和专辑编号3229对应的行为对象潜在向量分别为v1279和v3229,其行为对象含义分别为“八年级上册英语课本”和“瑞尔教育——八年级上册英语单词”。由此可见,这两个专辑均属于“八年级英语”类别。步骤130、构建与行为对象聚类向量具有相同维度的各个用户的用户潜在向量。可选的,由于各聚类中心向量{ve1,ve2,……,ven}的每一个维度都代表了具体的行为含义,构建用户潜在向量实质上就是将每个用户的行为对象数据投影到各聚类中心向量所代表的具体行为含义之上。但是由于用户群体users中历史行为对象数据庞大,对用户群体users构建行为对象潜在向量{v1,v2,……,vm}后,m的取值可能很大,如果将m作为用户潜在向量的维度,将导致用户潜在向量维度过高,不便于计算,因此,可以通过降维和最大池化,将用户潜在向量的维度控制在与行为对象聚类向量对应的维度,即n维。而每个维度的取值为各用户行为潜在向量中各元素与各聚类中心向量对象相似度的最大值。具体的,从所有用户的行为对象潜在向量中,提取对应各用户历史行为对象数据的各用户行为对象潜在向量;基于余弦定理,分别计算各用户行为对象潜在向量中各元素,与行为对象聚类向量中各聚类中心向量对象相似度,取对象相似度中的最大值作为对应聚类中心向量所在维度的对象特征值;各对象特征值构成对应用户的用户潜在向量;其中,用户潜在向量维度与行为对象聚类向量维度一一对应。在上述实施例的基础上,以用户user_1和用户user_2为例进行说明,用户user_1的历史行为对象数据集合为{a1,a2,a6},用户user_2的历史行为对象数据集合为{a2,a5,a10}。从所构建的所有用户的行为对象潜在向量中,提取得到对应用户user_1的行为对象潜在向量为{v1,v2,v6},对应用户user_2的行为对象潜在向量为{v2,v5,v10}。基于余弦定理,分别计算用户user_1和用户user_2行为对象潜在向量中各元素,与行为对象聚类向量中各聚类中心向量的对象相似度,将对象相似度中的最大值作为对应聚类中心向量所在维度的对象特征值。例如,用户user_1,其行为对象潜在向量为{v1,v2,v6}和各聚类中心向量为{ve1,ve2,……,ven},因为两个向量之间的方向是否相同可用两个向量之间夹角的余弦值来判断,如果两个向量之间的余弦值越接近于1则说明两个向量方向接近,如果余弦值越接近0说明两个向量方向垂直,因此,根据如下余弦定理公式(2):计算行为对象潜在向量中各元素v1、v2、v6与聚类中心向量ve1的相似度分别为s11、s21、s61:进而取s11、s21、s61中的最大值作为对应聚类中心向量ve1所在维度的对象特征值。同理,计算行为对象潜在向量中各元素v1、v2、v6与其他维度聚类中心向量的相似度,并取最大值作为对应聚类中心向量所在维度的对象特征值。最终,计算得到的各对象特征值构成用户user_1的用户潜在向量u1。其中,用户user_1的用户潜在向量u1各维度与各聚类中心向量一一对应。进一步的,按照此计算方式得到用户user_2的用户潜在向量u2。步骤140、根据所有用户的行为对象潜在向量中各元素间的相似度以及各用户潜在向量间的相似度,向用户进行相似行为对象或相似用户推荐。可选的,基于余弦定理,计算得到所有用户的行为潜在向量中两两元素间的行为对象相似度,以及各用户潜在向量间的用户相似度;根据行为对象相似度和用户相似度,向用户推荐与用户自身的历史行为对象相似的行为对象,或向用户推荐兴趣相似的用户,或向用户推荐兴趣相似用户的行为对象。具体的,在上述实施例的基础上,根据余弦定理公式(2),计算用户群体users对应的行为对象潜在向量{v1,v2,……,vm}中两两元素间的行为对象相似度,判断所计算的行为对象相似度大于预设相似度阈值(例如,0.9),则确定对应的两个行为对象相似。示例性的,根据余弦定理公式(2),计算v1与v2两元素间的行为对象相似度,并判断其大于预设相似度阈值,则确定v1与v2对应的行为对象相似。在上述实施例的基础上,对行为对象“订阅专辑”所构建的行为对象潜在向量,共10803个,以编号分别为1092与9339的两个行为对象潜在向量为例,计算这两个行为对象潜在向量的行为对象相似度为0.99239344,说明这两个行为对象对应的专辑非常相似。而这两个行为对象所对应的实际专辑分别为“郭德纲经典相声大全”和“郭德纲于谦经典‘你’字系列”,确实是相似专辑,说明行为对象潜在向量间行为对象相似度的计算结果较为理想。在用户user_1仅订阅“郭德纲经典相声大全”专辑的情况下,可与将与之相似的“郭德纲于谦经典‘你’字系列”专辑推荐给用户user_1。在上述实施例的基础上,根据余弦定理公式(2),计算各用户潜在向量间的用户相似度,判断所计算的用户相似度大于预设相似度阈值,则确定对应的两个用户兴趣相似。例如,根据余弦定理公式(2),计算用户user_1的用户潜在向量u1与用户user_2的用户潜在向量u2的用户相似度,并判断其大于预设相似度阈值,则确定用户user_1与用户user_2为兴趣相似的用户。例如,用户user_1订阅专辑编号为14912和14913,其所对应的行为对象含义为“新概念青少版3a和“新概念青少版3b”,用户user_1对应的用户向量为u1;用户user_2订阅专辑编号为80311、23516和14912,其所对应的行为对象含义为“新概念英语入门级b(starterb)”、“新概念英语青少年版1a”和“新概念青少版3a”,用户user_2对应的用户向量为u2,通过余弦定理公式(2),计算u1与u2的用户相似度为0.98756357,确定用户user_1与用户user_2兴趣相投,而两用户实际兴趣点确实均为“新概念英语”,此时,可以将彼此订阅的专辑推荐给对方。可选的,还可以基于用户特征,其中,用户特征包括性别、年龄和当前所处地区,对所构建的用户潜在向量进行扩充,得到包含用户特征的用户潜在向量,计算包含用户特征的用户潜在向量的相似度,根据计算得到的相似度可以向用户推荐同性别、同年龄、同地区的兴趣相似的用户。需要说明的是,在本发明实施例中所列举的数据均为样例展示,不作为实际数据。在实际应用过程中,所采集的用户数量、行为对象等数据可能会远大于本发明实施例中所列举的样例数据。本发明实施例基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量;并对其进行聚类后得到行为对象聚类向量;进而构建与行为对象聚类向量具有相同维度的各个用户的用户潜在向量;根据所有用户的行为对象潜在向量中各元素间的相似度以及各用户潜在向量间的相似度,向用户进行相似行为对象或相似用户推荐。降低了用户潜在向量维度空间,减少不必要的数据依赖,简化了潜在向量构建和相似度计算过程。实施例二图2为本发明实施例二提供的一种基于用户行为的协同过滤推荐装置的结构示意图,如图2所示,该装置具体包括:行为向量构建模块210,用于基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量;聚类向量构建模块220,用于对所有用户的行为对象潜在向量进行聚类后得到行为聚类向量;用户向量构建模块230,用于构建与行为对象聚类向量具有相同维度的各个用户的用户潜在向量;推荐模块240,用于根据所有用户的行为对象潜在向量中各元素间的相似度以及各用户潜在向量间的相似度,向用户进行相似行为对象或相似用户推荐。本发明实施例基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量;并对其进行聚类后得到行为对象聚类向量;进而构建与行为对象聚类向量具有相同维度的各个用户的用户潜在向量;根据所有用户的行为对象潜在向量中各元素间的相似度以及各用户潜在向量间的相似度,向用户进行相似行为对象或相似用户推荐。降低了用户潜在向量维度空间,减少不必要的数据依赖,简化了潜在向量构建和相似度计算过程。可选的,行为向量构建模块210,具体用于对各用户的历史行为对象数据进行融合后取并集,生成所有用户的行为对象数据序列;其中,行为对象数据序列采用集合的形式表示;基于词语向量模型,将行为对象数据序列转化为行为对象潜在向量。可选的,聚类向量构建模块220,具体用于基于聚类分析算法,对所有用户的行为对象潜在向量进行聚类,得到各类行为对象的聚类中心簇以及对应各聚类中心簇的聚类中心向量;其中,行为对象聚类向量包括各聚类中心向量,行为对象聚类向量的维度与聚类中心簇的个数相同。可选的,用户向量构建模块230,具体用于从所有用户的行为对象潜在向量中,提取对应各用户历史行为对象数据的各用户行为对象潜在向量;基于余弦定理,分别计算各用户行为对象潜在向量中各元素,与行为对象聚类向量中各聚类中心向量的对象相似度,取对象相似度中的最大值作为对应聚类中心向量所在维度的对象特征值;各对象特征值构成对应用户的用户潜在向量;其中,用户潜在向量维度与行为对象聚类向量维度一一对应。可选的,推荐模块240,具体用于基于余弦定理,计算得到所有用户的行为潜在向量中两两元素间的行为对象相似度,以及各用户潜在向量间的用户相似度;根据行为对象相似度和用户相似度,向用户推荐与用户自身的历史行为对象相似的行为对象,或向用户推荐兴趣相似的用户,或向用户推荐兴趣相似用户的行为对象。进一步的,该装置还可以包括特征扩充模块,用于基于用户特征,对用户潜在向量进行扩充,构建包含用户特征的用户潜在向量;根据计算的包含用户特征的用户潜在向量的相似度,向用户推荐特征相似的用户。可选的,历史行为对象数据为对应各类历史行为的行为内容;历史行为包括搜索、点击、收听、购买和下载;用户特征包括性别、年龄和当前所处地区。本发明实施例所提供的基于用户行为的协同过滤推荐装置可执行本发明任意实施例所提供的基于用户行为的协同过滤推荐方法,具备执行方法相应的功能模块和有益效果。实施例三图3为本发明实施例三提供的一种计算机设备的结构示意图,如图3所示,该计算机设备包括处理器31、存储器30、输入装置32和输出装置33;计算机设备中处理器31的数量可以是一个或多个,图3中以一个处理器31为例;计算机设备中的处理器31、存储器30、输入装置32和输出装置33可以通过总线或其他方式连接,图3中以通过总线连接为例。存储器30作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于用户行为的协同过滤推荐方法对应的程序指令/模块(例如,基于用户行为的协同过滤推荐装置中的行为向量构建模块210、聚类向量构建模块220、用户向量构建模块230、推荐模块240)。处理器31通过运行存储在存储器30中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的基于用户行为的协同过滤推荐方法。存储器30可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器30可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器30可进一步包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置32可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置33可包括显示屏等显示设备。实施例四本发明实施例四还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种基于用户行为的协同过滤推荐方法,该方法包括:基于所有用户的历史行为对象数据,构建所有用户的行为对象潜在向量;对所有用户的行为对象潜在向量进行聚类后得到行为对象聚类向量;构建与行为对象聚类向量具有相同维度的各个用户的用户潜在向量;根据所有用户的行为对象潜在向量中各元素间的相似度以及各用户潜在向量间的相似度,向用户进行相似行为对象或相似用户推荐。当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的基于用户行为的协同过滤推荐方法中的相关操作。通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。值得注意的是,上述基于用户行为的协同过滤推荐装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1