CN111797319B - 推荐方法、装置、设备及存储介质 - Google Patents
推荐方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111797319B CN111797319B CN202010628612.0A CN202010628612A CN111797319B CN 111797319 B CN111797319 B CN 111797319B CN 202010628612 A CN202010628612 A CN 202010628612A CN 111797319 B CN111797319 B CN 111797319B
- Authority
- CN
- China
- Prior art keywords
- historical
- target user
- matrix
- determining
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000013598 vector Substances 0.000 claims abstract description 231
- 239000011159 matrix material Substances 0.000 claims description 90
- 230000006399 behavior Effects 0.000 claims description 62
- 238000012549 training Methods 0.000 claims description 24
- 238000005457 optimization Methods 0.000 claims description 15
- 238000000354 decomposition reaction Methods 0.000 claims description 14
- 238000001914 filtration Methods 0.000 claims description 13
- 230000003542 behavioural effect Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 9
- 238000011478 gradient descent method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
- G06Q30/0203—Market surveys; Market polls
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
- G06Q30/0629—Directed, with specific intent or strategy for generating comparisons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种推荐方法、装置、设备及存储介质,该方法包括:根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定目标用户的特征向量,其中,历史物品为与历史行为数据对应的物品,根据目标用户的特征向量与多个物品的特征向量的相似度,确定向目标用户推荐的目标推荐物品,向目标用户推荐目标推荐物品。该推荐方法预先确定出了多个物品的特征向量,实现了在推荐时只需要确定出目标用户的特征向量,再基于目标用户的特征向量及物品的特征向量的相似度,确定目标推荐物品,减少了推荐时的计算量,提高了推荐的实时性。
Description
技术领域
本发明实施例涉及大数据处理技术领域,尤其涉及一种推荐方法、装置、设备及存储介质。
背景技术
随着大数据处理技术的不断发展,向用户推荐物品的推荐系统的应用越来越广泛。这里的物品可以是影视、音乐、专辑等多媒体物品。
目前,常见的推荐算法有协同过滤矩阵分解推荐模型,比如机器学习开源软件Spark MLlib中的矩阵分解推荐模型。矩阵分解推荐模型的输入数据是用户对物品的打分数据,也就是三列格式的数据,“用户,物品,分值”。这里的分值可以是显性的评分,比如1至5分,也可以是隐性的评分,比如观看时长等。矩阵分解推荐模型将用户对物品的评分矩阵分解成两个矩阵相乘,两个矩阵分别是用户和物品的在同一个空间的特征向量,通过计算用户和物品的特征向量之间的相似度,可以寻找用户感兴趣的物品。
但是,矩阵分解推荐模型在训练和推荐计算时,需要为每个用户和物品都生成一份特征向量,计算量巨大,模型训练和预测只能离线计算,实时性比较差。
发明内容
本发明提供一种推荐方法、装置、设备及存储介质,以解决目前的推荐方法中实时性较低的技术问题。
第一方面,本发明实施例提供一种推荐方法,包括:
根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定所述目标用户的特征向量;其中,所述历史物品为与所述历史行为数据对应的物品;
根据所述目标用户的特征向量与多个所述物品的特征向量的相似度,确定向所述目标用户推荐的目标推荐物品;
向所述目标用户推荐所述目标推荐物品。
第二方面,本发明实施例提供一种推荐装置,包括:
第一确定模块,用于根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定所述目标用户的特征向量;其中,所述历史物品为与所述历史行为数据对应的物品;
第二确定模块,用于根据所述目标用户的特征向量与多个所述物品的特征向量的相似度,确定向所述目标用户推荐的目标推荐物品;
推荐模块,用于向所述目标用户推荐所述目标推荐物品。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面提供的推荐方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面提供的推荐方法。
本实施例提供一种推荐方法、装置、设备及存储介质,该方法包括:根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定目标用户的特征向量,其中,历史物品为与历史行为数据对应的物品,根据目标用户的特征向量与多个物品的特征向量的相似度,确定向目标用户推荐的目标推荐物品,向目标用户推荐目标推荐物品。该推荐方法预先确定出了多个物品的特征向量,避免了在推荐时才确定物品的特征向量以及目标用户的特征向量,而导致计算量过大无法实时推荐的问题,实现了在推荐时只需要确定出目标用户的特征向量,再基于目标用户的特征向量及物品的特征向量的相似度,确定目标推荐物品,减少了推荐时的计算量,提高了推荐的实时性。
附图说明
图1为本发明一个实施例提供的推荐方法的流程示意图;
图2A为一种确定多个物品的特征向量的流程示意图;
图2B为一种确定向目标用户推荐的目标推荐物品的流程示意图;
图3为本发明一个实施例提供的推荐装置的结构示意图;
图4为本发明一个实施例提供的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明一个实施例提供的推荐方法的流程示意图。本实施例适用于根据目标用户的历史行为数据,实时向该目标用户推荐目标推荐物品的场景中。本实施例可以由推荐装置来执行,该推荐装置可以由软件和/或硬件的方式实现,该推荐装置可以集成于计算机设备中。如图1所示,本实施例提供的推荐方法包括如下步骤:
步骤101:根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定目标用户的特征向量。
其中,历史物品为与历史行为数据对应的物品。
具体地,本实施例中的计算机设备可以为服务器,也可以为终端设备。这里的终端设备可以为手持设备、车载设备、可穿戴设备,以及各种形式的用户设备(User Equipment;简称:UE),移动台(Mobile Station;简称:MS)及终端(terminal)等。示例性地,本发明实施例的终端设备可以是智能手机、平板电脑、智能电视等。本实施例中的物品可以为音乐、专辑、影视、图片、文章等多媒体物品,也可以为购物网站中可以被购买的实体物品。本实施例对此不作限制。本实施例中的目标用户指的是需要向其推荐物品的用户。
可选地,本实施例中的目标用户的历史行为数据可以包括显性评分和隐性评分。显性评分可以为目标用户对历史物品的实际评分,例如,目标用户对某个电影的打分;隐性评分可以为根据目标用户对历史物品的历史行为,例如,浏览时长、收听时长或者浏览次数等,确定出的数值。示例性地,当物品为多媒体物品时,隐性评分为根据播放的次数或者播放的时长确定出的数值;当物品为购物网站中的可以被购买的实体物品时,隐性评分为根据浏览的时长或者购买的次数确定出的数值。
进一步地,为了便于计算,可以将目标用户对历史物品的历史行为取对数后的值,作为隐性评分。例如,假设目标用户对某个电影的观看时长为2小时,即7200秒,可以将lg7200=3.86作为隐性评分。
本实施例中,为了便于描述,将历史行为数据对应的物品称为历史物品。举例来说,假设电影集合中包括100部电影,{电影1,电影2,电影3,……,电影100},目标用户观看了电影1 15分钟,观看了电影60 2小时,以及,观看了电影88 5分钟,则电影1、电影60及电影88均为历史物品。
本实施例中,可以根据推荐实时性的需求确定预设时间段内目标用户的历史行为数据。示例性地,为了实现推荐的实时性,可以统计目标用户在2个小时之前的历史行为数据。基于这些2个小时之前的历史行为数据,对目标用户进行推荐。
本实施例提供的推荐方法中,预先确定出了多个物品的特征向量。本实施例中的多个物品可以为物品集合中的所有物品。之后,从多个物品的特征向量中,筛选出历史物品的特征向量,再根据目标用户的历史行为数据以及历史物品的特征向量,确定目标用户的特征向量。后续基于目标用户的特征向量以及多个物品的特征向量的相似度,确定出目标推荐物品。
上述过程由于预先确定出了多个物品的特征向量,避免了在进行推荐时才确定物品的特征向量以及目标用户的特征向量,实现了在推荐时只需要确定出目标用户的特征向量,减少了推荐时的计算量,提高了推荐的实时性。
以下对如何确定多个物品的特征向量的过程进行详细描述。图2A为一种确定多个物品的特征向量的流程示意图。如图2A所示,确定多个物品的特征向量的过程包括如下步骤:
步骤201:构建协同过滤矩阵分解模型的训练数据。
其中,训练数据包括:样本用户的标识、物品的标识以及样本用户在物品上的行为数据。
步骤202:根据模型优化目标,采用交替最小二乘估计方法或者梯度下降法,对协同过滤矩阵分解模型进行训练,确定多个物品的特征向量。
将样本用户群体记为Users,假设有k个样本用户,其集合记为{user_1,user_2,……,user_k}。
将物品集合记为A,这里以电影为例,假设电影集合A有m部电影,其集合记为{A_1,A_2,……,A_m}。
将样本用户的行为数据记为Rating,其集合记为{rating_1_1,rating_1_2,……,rating_k_m},其中rating_i_j表示样本用户i在物品j上的行为记录,一般是评分数据,可以是显示的评分,如1至5分,也可以是隐性的评分,如根据观看时长确定出的数值等。
构建出的协同过滤矩阵分解模型的训练数据结构为:usrId,itemId,rating。
其中,usrId表示样本用户的编号,可以是一个正整数;itemId表示物品的编号,也可以是一个正整数;rating表示样本用户在物品上的行为数据,来自于Rating集合。
这里以user_1、user_2为例,假设用户user_1在A_1,A_2上有行为数据,数值分别是rating_1_1,rating_1_2;用户user_2在A_5,A_10上有行为数据,数值分别是rating_2_5,rating_2_10。
则构造的训练数据如表1所示:
表1协同过滤矩阵分解模型训练数据样例
usrId | itemId | rating |
user_1 | A_1 | rating_1_1 |
user_1 | A_2 | rating_1_2 |
user_2 | A_5 | rating_2_5 |
user_2 | A_10 | rating_2_10 |
在确定出训练数据之后,可以执行步骤202,对协同过滤矩阵分解模型进行训练。基于样本用户的行为数据的不同表现形式,本实施例中的模型优化目标有以下两种实现方式。
第一种实现方式,当样本用户在物品上的行为数据为显性评分时,模型优化目标为:
其中,X表示样本用户的特征向量组成的矩阵,Y表示物品的特征向量组成的矩阵,L(X,Y)表示损失函数,rui表示样本用户u对物品i的显性评分,xu表示样本用户u的特征向量,表示xu的转置向量,yi表示物品i的特征向量,λ1表示预设的第一参数。|xu|2表示xu中各个元素的平方和,|yi|2表示yi中各个元素的平方和。可选地,λ1一般取0.01。
第二种实现方式,当样本用户在物品上的行为数据为隐性评分时,模型优化目标为: cui=1+α*rui。
其中,X表示样本用户的特征向量组成的矩阵,Y表示物品的特征向量组成的矩阵,L(X,Y)表示损失函数,rui表示样本用户u对物品i的隐性评分的变换后的值,α表示预设的第三参数,λ2表示预设的第二参数,表示样本用户u有评分的物品的数量,/>表示在物品i上有评分的样本用户的数量。可选地,λ2一般取0.01,α一般取2.5。
需要说明的是,上述两类模型优化目标中,在遍历物品时,只需要遍历样本用户u有行为数据的物品即可,而不需要遍历物品集合中的所有物品。上述两类模型优化目标中,λ1及λ2为正则化系数,以防止过拟合。
本实施例中,在模型训练时,可以采用交替最小二乘估计(Alternating LeastSquares,ALS)方法或者梯度下降法。本实施例在离线训练阶段直接采用开源软件SparkMLlib中的矩阵分解模型进行训练。
在步骤202中,可以基于步骤201中构建的训练数据,训练协同过滤矩阵分解模型,并将模型中的物品的特征向量保存下来,作为基础数据,供后续使用。矩阵分解给每个用户和物品都生成了一个特征向量,这里的用户的特征向量不需要保存,一是因为用户的数量可能会很大,耗费存贮空间,二是用户的特征向量可以通过实时计算得到,不需要保存。
在求解协同过滤矩阵分解模型时,ALS的方法是将用户和物品的特征向量进行交替更新,即固定用户的特征向量用于更新物品的特征向量,然后固定物品的特征向量更新用户的特征向量。
基于该思想,在步骤202中通过模型训练得到了物品的特征向量,该物品的特征向量得到了充分学习,其不再需要更新。因此,如果将这些物品的特征向量固定下来,经过一次迭代计算就能得到用户的特征向量,并且可以使用用户的特征向量和物品的特征向量的相似度,来给用户推荐物品。
由于ALS算法在交替更新用户和物品的特征向量时,可以用显式的数学公式来进行计算。在充分学习并且固定物品的特征向量的情况下,用户的特征向量的一次迭代计算也可以通过数学公式直接计算得到。
以上描述的确定多个物品的特征向量的过程中,通过对协同过滤矩阵分解模型进行训练,确定多个物品的特征向量,一方面,采用模型训练的方式确定物品的特征向量,使得确定出的多个物品的特征向量较为准确,提高了后续推荐的精准性,另一方面,预先确定出多个物品的特征向量,减少了实时推荐中的计算量,提高了推荐的实时性。
进一步地,在这个过程中,考虑到样本用户的行为数据的不同表现形式,采用不同的模型优化目标进行训练,进一步提高了确定出的物品的特征向量的准确性。
以下描述如何确定目标用户的特征向量的实现方式。可选地,可以通过以下步骤确定目标用户的特征向量:确定历史物品的特征向量组成的历史物品的特征矩阵;确定历史行为数据对应的列向量;根据历史物品的特征矩阵以及历史行为数据对应的列向量,确定目标用户的特征向量。
对应于历史行为数据的不同的实现方式,根据历史物品的特征矩阵以及历史行为数据对应的列向量,确定目标用户的特征向量有以下两种实现方式。
假设某个目标用户记为t,其有m个历史行为数据,分别对应历史物品A_1,A_2,…,A_m,历史行为数据分别是rating_t_1,rating_t_2,…,rating_t_m。
第一种实现方式中,历史行为数据为显性评分。根据公式xt=(ATA+λ1I)-1ATrt1,确定目标用户的特征向量。
其中,xt表示目标用户的特征向量,A表示历史物品的特征矩阵,A的维度为m*k。即,A表示历史物品A_1,A_2,…,A_m对应的特征向量组成的矩阵。m表示历史物品的数量,k表示历史物品的特征向量的维度。AT表示A的转置矩阵,I表示单位矩阵。λ1表示预设的第一参数,一般取0.01。(ATA+λ1I)-1表示矩阵ATA+λ1I的逆矩阵。rt1表示显性的评分组成的列向量,rt1的维度为m*1,即,rt1表示m个分值rating_t_1,rating_t_2,…,rating_t_m组成的一维向量。从上述A和rt1的定义中可以看出,历史物品的特征矩阵A中位于第z行的历史物品,在列向量rt1中对应的显性评分也位于第z行,z小于或者等于m,且大于或者等于1。
可以看出,该实现方式对应步骤202中第一种实现方式中的模型优化目标。
第二种实现方式中,历史行为数据为隐性评分。根据公式xt=(ATRtA+λ2mI)-1ATrt2,确定目标用户的特征向量。
其中,xt表示目标用户的特征向量,A表示历史物品的特征矩阵,A的维度为m*k。即,A表示历史物品A_1,A_2,…,A_m对应的特征向量组成的矩阵。m表示历史物品的数量,k表示历史物品的特征向量的维度。AT表示A的转置矩阵,I表示单位矩阵。λ2表示预设的第二参数,一般取0.01。Rt表示由m个隐性评分以及预设的第三参数分别确定出的m个分值组成的对角矩阵。即,Rt表示由m个分值1+α*rating_t_1,1+α*rating_t_2,…,1+α*rating_t_m组成的对角矩阵,维度为m*m。α为预设的第三参数,一般取2.5。(ATRtA+λ2mI)-1表示矩阵ATRtA+λ2mI的逆矩阵。rt2表示m个分值组成的列向量,rt2的维度为m*1。即,rt2表示由m个分值1+α*rating_t_1,1+α*rating_t_2,…,1+α*rating_t_m组成的一维向量。从上述A和rt2的定义中可以看出,历史物品的特征矩阵A中位于第z行的历史物品,在列向量rt2中对应的分值也位于第z行,z小于或者等于m,且大于或者等于1。
可以看出,该实现方式对应步骤202中第二种实现方式中的模型优化目标。
以上描述的确定目标用户的特征向量的过程中,基于历史物品的特征矩阵以及历史行为数据对应的列向量,确定目标用户的特征向量,一方面,确定出的目标用户的特征向量的准确性较高,另一方面,运算速度较快。
进一步地,在这个过程中,考虑到目标用户的历史行为数据的不同表现形式,采用不同的公式确定目标用户的特征向量,进一步提高了确定出的目标用户的特征向量的准确性。
步骤102:根据目标用户的特征向量与多个物品的特征向量的相似度,确定向目标用户推荐的目标推荐物品。
具体地,在步骤102中,一种实现方式中,可以分别计算目标用户的特征向量与每个物品的特征向量的相似度,将对应的相似度大于预设阈值的物品,或者,对应的相似度位于前预设数量的物品,确定为目标推荐物品。
如果确定出的目标推荐物品包括历史物品,则将历史物品删除后向用户推荐剩余的目标推荐物品。
另一种实现方式中,只确定目标用户的特征向量与物品集合中除历史物品之外的剩余物品的特征向量的相似度,将对应的相似度大于预设阈值的物品,或者,对应的相似度位于前预设数量的物品,确定为目标推荐物品。
以下对如何确定目标推荐物品的过程作一详细描述。以下方法基于局部敏感哈希(Locality-Sensetive Hashing,LSH)算法,确定目标推荐物品。即对物品特征向量构建LSH索引,然后用用户的特征向量快速去召回物品特征向量,从而实现实时推荐。
图2B为一种确定向目标用户推荐的目标推荐物品的流程示意图。如图2B所示,确定向目标用户推荐的目标推荐物品包括如下步骤:
步骤301:将物品中除去历史物品之外的剩余物品确定为候选推荐物品。
步骤302:根据预设的哈希函数,分别确定候选推荐物品的特征向量对应的物品哈希值以及目标用户的特征向量对应的用户哈希值。
步骤303:将对应的物品哈希值相同的候选推荐物品分为一组,形成多个候选推荐物品集合。
在步骤302及步骤303中,基于对应的物品哈希值,将候选推荐物品分为了多个组,对应的物品哈希值相同的候选推荐物品位于同一组。
步骤304:确定对应的物品哈希值与用户哈希值相同的目标候选推荐物品集合。
步骤305:分别确定目标用户的特征向量与目标候选推荐物品集合中的每个候选推荐物品的特征向量的相似度,将对应的相似度位于前预设数量的候选推荐物品,确定为目标推荐物品。
在步骤304及步骤305中,在确定出对应的物品哈希值与用户哈希值相同的目标候选推荐物品集合后,分别确定目标用户的特征向量与目标候选推荐物品集合中的每个候选推荐物品的特征向量的相似度,将对应的相似度位于前预设数量的候选推荐物品,确定为目标推荐物品。
这里的目标用户的特征向量与每个候选推荐物品的特征向量的相似度可以为余弦相似度。
上述基于LSH算法确定目标推荐物品的过程,运算速度较快,进一步提高了推荐的实时性。
步骤103:向目标用户推荐目标推荐物品。
具体地,可以采用弹窗、文字提示等方式向目标用户推荐确定出的目标推荐物品。
本实施例提供的推荐方法,包括:根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定目标用户的特征向量,其中,历史物品为与历史行为数据对应的物品,根据目标用户的特征向量与多个物品的特征向量的相似度,确定向目标用户推荐的目标推荐物品,向目标用户推荐目标推荐物品。该推荐方法预先确定出了多个物品的特征向量,避免了在推荐时才确定物品的特征向量以及目标用户的特征向量,而导致计算量过大无法实时推荐的问题,实现了在推荐时只需要确定出目标用户的特征向量,再基于目标用户的特征向量及物品的特征向量的相似度,确定目标推荐物品,减少了推荐时的计算量,提高了推荐的实时性。
图3为本发明一个实施例提供的推荐装置的结构示意图。如图3所示,本实施例提供的推荐装置包括:第一确定模块31、第二确定模块32以及推荐模块33。
第一确定模块31,用于根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定目标用户的特征向量。
其中,历史物品为与历史行为数据对应的物品。
一实现方式中,该装置还包括:构建模块以及训练模块。
构建模块,用于构建协同过滤矩阵分解模型的训练数据。
其中,训练数据包括:样本用户的标识、物品的标识以及样本用户在物品上的行为数据。
训练模块,用于根据模型优化目标,采用交替最小二乘估计方法或者梯度下降法,对协同过滤矩阵分解模型进行训练,确定多个物品的特征向量。
一种场景中,当行为数据为显性评分时,上述模型优化目标为:
其中,X表示样本用户的特征向量组成的矩阵,Y表示物品的特征向量组成的矩阵,L(X,Y)表示损失函数,rui表示样本用户u对物品i的显性评分,xu表示样本用户u的特征向量,表示xu的转置向量,yi表示物品i的特征向量,λ1表示预设的第一参数。
另一种场景中,当行为数据为隐性评分时,模型优化目标为:
cui=1+α*rui。
其中,rui表示样本用户u对物品i的隐性评分的变换后的值,α表示预设的第三参数,λ2表示预设的第二参数,nxu表示样本用户u有评分的物品的数量,nyi表示在物品i上有评分的样本用户的数量。
可选地,第一确定模块31具体用于:确定历史物品的特征向量组成的历史物品的特征矩阵;确定历史行为数据对应的列向量;根据历史物品的特征矩阵以及历史行为数据对应的列向量,确定目标用户的特征向量。
一种场景中,当历史行为数据为显性评分时,在根据历史物品的特征矩阵以及历史行为数据对应的列向量,确定目标用户的特征向量的方面,第一确定模块31具体用于:根据公式xt=(ATA+λ1I)-1ATrt1,确定目标用户的特征向量。
其中,xt表示目标用户的特征向量,A表示历史物品的特征矩阵,A的维度为m*k,m表示历史物品的数量,k表示历史物品的特征向量的维度,AT表示A的转置矩阵,I表示单位矩阵,λ1表示预设的第一参数,(ATA+λ1I)-1表示矩阵ATA+λ1I的逆矩阵,rt1表示显性的评分组成的列向量,rt1的维度为m*1,历史物品的特征矩阵A中位于第z行的历史物品,在列向量rt1中对应的显性评分也位于第z行,z小于或者等于m,且大于或者等于1。
另一种场景中,当历史行为数据为隐性评分时,在根据历史物品的特征矩阵以及历史行为数据对应的列向量,确定目标用户的特征向量的方面,第一确定模块31具体用于:根据公式xt=(ATRtA+λ2mI)-1ATrt2,确定目标用户的特征向量。
其中,xt表示目标用户的特征向量,A表示历史物品的特征矩阵,A的维度为m*k,m表示历史物品的数量,k表示历史物品的特征向量的维度,AT表示A的转置矩阵,I表示单位矩阵,λ2表示预设的第二参数,Rt表示由m个隐性评分以及预设的第三参数分别确定出的m个分值组成的对角矩阵,(ATRtA+λ2mI)-1表示矩阵ATRtA+λ2mI的逆矩阵,rt2表示m个分值组成的列向量,rt2的维度为m*1,历史物品的特征矩阵A中位于第z行的历史物品,在列向量rt2中对应的分值也位于第z行,z小于或者等于m,且大于或者等于1。
第二确定模块32,用于根据目标用户的特征向量与多个物品的特征向量的相似度,确定向目标用户推荐的目标推荐物品。
可选地,第二确定模块32具体用于:将物品中除去历史物品之外的剩余物品确定为候选推荐物品;根据预设的哈希函数,分别确定候选推荐物品的特征向量对应的物品哈希值以及目标用户的特征向量对应的用户哈希值;将对应的物品哈希值相同的候选推荐物品分为一组,形成多个候选推荐物品集合;确定对应的物品哈希值与用户哈希值相同的目标候选推荐物品集合;分别确定目标用户的特征向量与目标候选推荐物品集合中的每个候选推荐物品的特征向量的相似度,将对应的相似度位于前预设数量的候选推荐物品,确定为目标推荐物品。
推荐模块33,用于向目标用户推荐目标推荐物品。
本发明实施例所提供的推荐装置可执行本发明任意实施例所提供的推荐方法,具备执行方法相应的功能模块和有益效果。
图4为本发明一个实施例提供的计算机设备的结构示意图。如图4所示,该计算机设备包括处理器40和存储器41。该计算机设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;该计算机设备的处理器40和存储器41可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的推荐方法对应的程序指令以及模块(例如,推荐装置中的第一确定模块31、第二确定模块32以及推荐模块33)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及推荐,即实现上述的推荐方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实施例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种推荐方法,该方法包括:
根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定所述目标用户的特征向量;其中,所述历史物品为与所述历史行为数据对应的物品;
根据所述目标用户的特征向量与多个所述物品的特征向量的相似度,确定向所述目标用户推荐的目标推荐物品;
向所述目标用户推荐所述目标推荐物品。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的推荐方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,计算机设备,或者网络设备等)执行本发明各个实施例所述的推荐方法。
值得注意的是,上述推荐装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种推荐方法,其特征在于,包括:
根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定所述目标用户的特征向量;其中,所述历史物品为与所述历史行为数据对应的物品;
根据所述目标用户的特征向量与多个所述物品的特征向量的相似度,确定向所述目标用户推荐的目标推荐物品;
向所述目标用户推荐所述目标推荐物品;
所述根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定所述目标用户的特征向量,包括:
确定所述历史物品的特征向量组成的历史物品的特征矩阵;
确定所述历史行为数据对应的列向量;
根据所述历史物品的特征矩阵以及所述历史行为数据对应的列向量,确定所述目标用户的特征向量;
当所述历史行为数据为显性评分时,所述根据所述历史物品的特征矩阵以及所述历史行为数据对应的列向量,确定所述目标用户的特征向量,包括:
根据公式xt=(ATA+λ1I)-1ATrt1,确定所述目标用户的特征向量;其中,xt表示所述目标用户的特征向量,A表示所述历史物品的特征矩阵,A的维度为m*k,m表示所述历史物品的数量,k表示所述历史物品的特征向量的维度,AT表示A的转置矩阵,I表示单位矩阵,λ1表示预设的第一参数,(ATA+λ1I)-1表示矩阵ATA+λ1I的逆矩阵,rt1表示所述显性的评分组成的列向量,rt1的维度为m*1,所述历史物品的特征矩阵A中位于第z行的历史物品,在所述列向量rt1中对应的显性评分也位于第z行,z小于或者等于m,且大于或者等于1。
2.根据权利要求1所述的方法,其特征在于,当所述历史行为数据为隐性评分时,所述根据所述历史物品的特征矩阵以及所述历史行为数据对应的列向量,确定所述目标用户的特征向量,包括:
根据公式xt=(ATRtA+λ2mI)-1ATrt2,确定所述目标用户的特征向量;其中,xt表示所述目标用户的特征向量,A表示所述历史物品的特征矩阵,A的维度为m*k,m表示所述历史物品的数量,k表示所述历史物品的特征向量的维度,AT表示A的转置矩阵,I表示单位矩阵,λ2表示预设的第二参数,Rt表示由m个隐性评分以及预设的第三参数分别确定出的m个分值组成的对角矩阵,(ATRtA+λ2mI)-1表示矩阵ATRtA+λ2mI的逆矩阵,rt2表示所述m个分值组成的列向量,rt2的维度为m*1,所述历史物品的特征矩阵A中位于第z行的历史物品,在所述列向量rt2中对应的分值也位于第z行,z小于或者等于m,且大于或者等于1。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述根据所述目标用户的特征向量与多个所述物品的特征向量的相似度,确定向所述目标用户推荐的目标推荐物品,包括:
将所述物品中除去所述历史物品之外的剩余物品确定为候选推荐物品;
根据预设的哈希函数,分别确定所述候选推荐物品的特征向量对应的物品哈希值以及所述目标用户的特征向量对应的用户哈希值;
将对应的物品哈希值相同的候选推荐物品分为一组,形成多个候选推荐物品集合;
确定对应的物品哈希值与所述用户哈希值相同的目标候选推荐物品集合;
分别确定所述目标用户的特征向量与所述目标候选推荐物品集合中的每个候选推荐物品的特征向量的相似度,将对应的相似度位于前预设数量的候选推荐物品,确定为所述目标推荐物品。
4.根据权利要求1-2任一项所述的方法,其特征在于,所述根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定所述目标用户的特征向量之前,所述方法还包括:
构建协同过滤矩阵分解模型的训练数据;其中,所述训练数据包括:样本用户的标识、物品的标识以及样本用户在物品上的行为数据;
根据模型优化目标,采用交替最小二乘估计方法或者梯度下降法,对协同过滤矩阵分解模型进行训练,确定多个所述物品的特征向量。
5.根据权利要求4所述的方法,其特征在于,当所述行为数据为显性评分时,所述模型优化目标为:其中,X表示样本用户的特征向量组成的矩阵,Y表示物品的特征向量组成的矩阵,L(X,Y)表示损失函数,rui表示样本用户u对物品i的显性评分,xu表示样本用户u的特征向量,/>表示xu的转置向量,yi表示物品i的特征向量,λ1表示预设的第一参数;
当所述行为数据为隐性评分时,所述模型优化目标为:
cui=1+α*rui,其中,rui表示样本用户u对物品i的隐性评分的变换后的值,α表示预设的第三参数,λ2表示预设的第二参数,nxu表示样本用户u有评分的物品的数量,nyi表示在物品i上有评分的样本用户的数量。
6.一种推荐装置,其特征在于,包括:
第一确定模块,用于根据目标用户的历史行为数据以及预先确定出的多个物品的特征向量中的历史物品的特征向量,确定所述目标用户的特征向量;其中,所述历史物品为与所述历史行为数据对应的物品;
第二确定模块,用于根据所述目标用户的特征向量与多个所述物品的特征向量的相似度,确定向所述目标用户推荐的目标推荐物品;
推荐模块,用于向所述目标用户推荐所述目标推荐物品;
所述第一确定模块,具体用于确定所述历史物品的特征向量组成的历史物品的特征矩阵;
确定所述历史行为数据对应的列向量;
根据所述历史物品的特征矩阵以及所述历史行为数据对应的列向量,确定所述目标用户的特征向量;
当所述历史行为数据为显性评分时,所述根据所述历史物品的特征矩阵以及所述历史行为数据对应的列向量,确定所述目标用户的特征向量,包括:
根据公式xt=(ATA+λ1I)-1ATrt1,确定所述目标用户的特征向量;其中,xt表示所述目标用户的特征向量,A表示所述历史物品的特征矩阵,A的维度为m*k,m表示所述历史物品的数量,k表示所述历史物品的特征向量的维度,AT表示A的转置矩阵,I表示单位矩阵,λ1表示预设的第一参数,(ATA+λ1I)-1表示矩阵ATA+λ1I的逆矩阵,rt1表示所述显性的评分组成的列向量,rt1的维度为m*1,所述历史物品的特征矩阵A中位于第z行的历史物品,在所述列向量rt1中对应的显性评分也位于第z行,z小于或者等于m,且大于或者等于1。
7.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的推荐方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010628612.0A CN111797319B (zh) | 2020-07-01 | 2020-07-01 | 推荐方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010628612.0A CN111797319B (zh) | 2020-07-01 | 2020-07-01 | 推荐方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111797319A CN111797319A (zh) | 2020-10-20 |
CN111797319B true CN111797319B (zh) | 2023-10-27 |
Family
ID=72810090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010628612.0A Active CN111797319B (zh) | 2020-07-01 | 2020-07-01 | 推荐方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111797319B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113781147A (zh) * | 2020-11-17 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 物品推荐方法和装置 |
CN113065067A (zh) * | 2021-03-31 | 2021-07-02 | 达而观信息科技(上海)有限公司 | 一种物品推荐方法、装置、计算机设备及存储介质 |
CN113420222A (zh) * | 2021-07-08 | 2021-09-21 | 咪咕文化科技有限公司 | 内容推荐方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160539A (zh) * | 2015-06-17 | 2015-12-16 | 南京邮电大学 | 一种概率矩阵分解推荐方法 |
CN105894310A (zh) * | 2014-10-15 | 2016-08-24 | 祁勇 | 一种个性化推荐方法 |
CN107038226A (zh) * | 2017-03-31 | 2017-08-11 | 努比亚技术有限公司 | 一种信息推荐方法及网络设备 |
CN107292648A (zh) * | 2016-04-01 | 2017-10-24 | 株式会社理光 | 一种用户行为分析方法及装置 |
CN108205768A (zh) * | 2016-12-20 | 2018-06-26 | 百度在线网络技术(北京)有限公司 | 数据库建立方法和数据推荐方法及装置、设备和存储介质 |
CN109325544A (zh) * | 2018-10-11 | 2019-02-12 | 东北大学 | 一种基于中层特征的管道异常分类方法 |
US10353908B1 (en) * | 2018-11-12 | 2019-07-16 | Anthem, Inc. | Personalized smart provider search |
CN110222258A (zh) * | 2019-05-20 | 2019-09-10 | 山东科技大学 | 基于属性映射和自动编码神经网络的特征矩阵初始化方法 |
CN110321494A (zh) * | 2019-06-26 | 2019-10-11 | 北京交通大学 | 基于矩阵分解与网络嵌入联合模型的社会化推荐方法 |
-
2020
- 2020-07-01 CN CN202010628612.0A patent/CN111797319B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105894310A (zh) * | 2014-10-15 | 2016-08-24 | 祁勇 | 一种个性化推荐方法 |
CN105160539A (zh) * | 2015-06-17 | 2015-12-16 | 南京邮电大学 | 一种概率矩阵分解推荐方法 |
CN107292648A (zh) * | 2016-04-01 | 2017-10-24 | 株式会社理光 | 一种用户行为分析方法及装置 |
CN108205768A (zh) * | 2016-12-20 | 2018-06-26 | 百度在线网络技术(北京)有限公司 | 数据库建立方法和数据推荐方法及装置、设备和存储介质 |
CN107038226A (zh) * | 2017-03-31 | 2017-08-11 | 努比亚技术有限公司 | 一种信息推荐方法及网络设备 |
CN109325544A (zh) * | 2018-10-11 | 2019-02-12 | 东北大学 | 一种基于中层特征的管道异常分类方法 |
US10353908B1 (en) * | 2018-11-12 | 2019-07-16 | Anthem, Inc. | Personalized smart provider search |
CN110222258A (zh) * | 2019-05-20 | 2019-09-10 | 山东科技大学 | 基于属性映射和自动编码神经网络的特征矩阵初始化方法 |
CN110321494A (zh) * | 2019-06-26 | 2019-10-11 | 北京交通大学 | 基于矩阵分解与网络嵌入联合模型的社会化推荐方法 |
Non-Patent Citations (2)
Title |
---|
hanxiao sun 等.parallel factorization machine recommended algorithm based on mapreduce.《2014 10th international conference on semantics,knowledge and grids》.2014,第1-2页. * |
刘业政 等.基于多维相似度的利基产品推荐方法.《计算机工程》.2018,第44卷(第3期),第195-200页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111797319A (zh) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111797319B (zh) | 推荐方法、装置、设备及存储介质 | |
CN108829808B (zh) | 一种页面个性化排序方法、装置及电子设备 | |
WO2020135535A1 (zh) | 一种推荐模型训练方法及相关装置 | |
US8799306B2 (en) | Recommendation of search keywords based on indication of user intention | |
CN103678672B (zh) | 一种信息推荐方法 | |
CN109033101B (zh) | 标签推荐方法及装置 | |
CN111798273A (zh) | 产品的购买概率预测模型的训练方法及购买概率预测方法 | |
CN111506820B (zh) | 推荐模型、方法、装置、设备及存储介质 | |
CN111310038B (zh) | 信息推荐方法、装置、电子设备及计算机可读存储介质 | |
CN111010592B (zh) | 一种视频推荐方法、装置、电子设备及存储介质 | |
CN110879864A (zh) | 一种基于图神经网络和注意力机制的上下文推荐方法 | |
WO2020168992A1 (zh) | 一种商品推荐方法、装置、设备以及存储介质 | |
US10255300B1 (en) | Automatically extracting profile feature attribute data from event data | |
CN112149003B (zh) | 商品社群推荐方法、装置和计算机设备 | |
CN111522886A (zh) | 一种信息推荐方法、终端及存储介质 | |
CN114611128A (zh) | 一种纵向联邦学习方法、装置、系统、设备及存储介质 | |
CN110827101A (zh) | 一种店铺推荐的方法和装置 | |
CN108304407B (zh) | 一种进行对象排序的方法和系统 | |
CN105045827A (zh) | 基于熟悉度的信息推荐方法及装置 | |
CN106294456B (zh) | 机器学习的方法和设备 | |
CN108763515B (zh) | 一种基于概率矩阵分解的时间敏感个性化推荐方法 | |
CN111506816B (zh) | 推荐方法、装置、设备及存储介质 | |
CN115730217A (zh) | 模型的训练方法、物料的召回方法及装置 | |
CN115391659A (zh) | 新闻推荐方法、装置、电子设备及计算机可读存储介质 | |
KR102323424B1 (ko) | 관측평점과 유사도 그래프를 활용한 추천 알고리즘의 평점 예측 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |