信息推荐方法、装置、服务器及计算机存储介质
技术领域
本申请涉及数据分析技术领域,尤其涉及信息推荐方法、装置、服务器及计算机存储介质。
背景技术
目前,推荐***广泛应用于多种领域。例如,在购物领域,通过分析用户已有历史行为,如点击、收藏或购买等,分析用户对不同商品的偏好程度,进而向用户精准推荐符合用户喜好的一个或多个商品。
推荐***中所采用的推荐算法包括矩阵分解方法,该方法主要分为两个步骤:(1)离线模型训练:根据已有的用户对物品的行为(如购买,点击,评分等行为)历史数据,使用矩阵分解方法,得到代表每个用户对物品的偏好的实数向量,以及每个物品的实数向量;(2)在线预测:当用户上线需要推荐物品时,计算该用户的实数向量与每个物品的实数向量乘积,作为该用户对该物品的评分,接着根据评分对物品排序,最后把评分最高的一个或多个物品推荐给用户。
在实际应用场景中,待推荐物品的数据量可能非常巨大,由于需要对实数向量进行乘积运算得到评分,还需要对评分进行排序,在线预测过程非常耗时,推荐效率较低。
发明内容
为克服相关技术中存在的问题,本申请提供了信息推荐方法、装置、服务器及计算机存储介质。
一种信息推荐方法,预设K种维度,用于描述信息的K方面特征,所述方法包括:
获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K;
获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征;
对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
可选的,采用两种字符表示所述偏好值,所述两种字符分别用于指示所述目标用户对所述第n方面特征是否具有偏好;
采用所述两种字符表示所述特征值,所述两种字符分别用于指示待推荐信息是否包含所述第n方面特征。
可选的,通过如下方式预先确定多个用户的偏好编码以及信息的特征编码:
获取多个用户对多种信息的评分的样本数据,利用所述样本数据构建用户对信息的评分矩阵;
根据预设的目标函数,将所述评分矩阵分解为用户的偏好向量和信息的特征向量的乘积;
利用所述偏好向量确定用户的偏好编码,以及利用所述特征向量确定所述信息的特征编码。
可选的,所述目标函数的拟合目标包括:所述偏好编码中偏好值与所述特征编码中特征值相匹配的个数与所述用户对信息的评分呈正相关。
可选的,所述目标函数还用于约束每个偏好编码中各个所述偏好值的均匀程度,和/或约束每个特征编码中各个所述特征值的均匀程度。
可选的,所述目标函数包括:
其中,所述L为目标函数,所述Rij为用户ui对信息vj的评分,所述λ为预设的约束参数,所述K为所述维度的数量。
可选的,所述对比所述第n个偏好值与所述第n个编码值是否匹配,包括:
对比所述第n个偏好值与所述第n个编码值是否相同。
可选的,所述对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户,包括:
对比所述偏好编码与所述特征编码是否相同,若相同,将所述待推荐信息推荐给所述目标用户。
一种信息推荐装置,预设K种维度,用于描述信息的K方面特征,所述装置包括:
偏好编码获取模块,用于:获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K;
特征编码模块,用于:获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征;
推荐模块,用于:对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
可选的,采用两种字符表示所述偏好值,所述两种字符分别用于指示所述目标用户对所述第n方面特征是否具有偏好;
采用所述两种字符表示所述特征值,所述两种字符分别用于指示待推荐信息是否包含所述第n方面特征。
可选的,还包括编码确定模块,用于:
获取多个用户对多种信息的评分的样本数据,利用所述样本数据构建用户对信息的评分矩阵;
根据预设的目标函数,将所述评分矩阵分解为用户的偏好向量和信息的特征向量的乘积;
利用所述偏好向量确定用户的偏好编码,以及利用所述特征向量确定所述信息的特征编码。
可选的,所述目标函数的拟合目标包括:所述偏好编码中偏好值与所述特征编码中特征值相匹配的个数与所述用户对信息的评分呈正相关。
可选的,所述目标函数还用于约束每个偏好编码中各个所述偏好值的均匀程度,和/或约束每个特征编码中各个所述特征值的均匀程度。
可选的,所述目标函数包括:
其中,所述L为目标函数,所述Rij为用户ui对信息vj的评分,所述λ为预设的约束参数,所述K为所述维度的数量。
可选的,所述推荐模块,还用于:
对比所述第n个偏好值与所述第n个编码值是否相同。
可选的,所述推荐模块,还用于:
对比所述偏好编码与所述特征编码是否相同,若相同,将所述待推荐信息推荐给所述目标用户。
一种服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
预设K种维度,用于描述信息的K方面特征;
获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K;
获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征;
对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
一种计算机存储介质,所述存储介质中存储有程序指令,所述程序指令包括:
预设K种维度,用于描述信息的K方面特征;
获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K;
获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征;
对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例无需进行实数向量乘积运算,只需要进行每个维度的编码值和特征值的匹配,以偏好值与特征值相匹配的个数来衡量待推荐信息和目标用户之间的匹配度,由于本实施例只需要进行编码值与特征值的对比,因此运算量较低,信息推荐效率较高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1A是本申请根据一示例性实施例示出的一种矩阵分解的示意图。
图1B是本申请根据一示例性实施例示出的一种信息推荐方法的应用场景图。
图1C是本申请根据一示例性实施例示出的一种信息推荐方法的流程图。
图1D是本申请根据一示例性实施例示出的另一种信息推荐方法的流程图。
图2是本申请信息推荐装置所在服务器的一种硬件结构图。
图3是本申请根据一示例性实施例示出的一种信息推荐装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
推荐***目前广泛应用于大多数的电子商务***、社交网络、广告推荐或搜索引擎等等,该推荐***用于向用户(User)进行信息(Item,在一些例子中也可称为物品)推荐,此处的信息可以包括实体物品,如电子商务场景下的衣服、背包或手机等等,也可以包括其他非实体物品,如社交场景下的用户、视频网站场景下的视频条目或新闻资讯场景下的资讯信息等等。举例来说,用户对物品的历史行为,如点击、评价、购买或下载等,都可以表示用户对该物品的偏好程度,该偏好程度可以映射成为用户对该物品的评分,评分范围可以包括[0,1]、[0,5]、[-1,1]等等。
假设推荐***中,用户集合有6个用户,即U={u1,u2,u3,u4,u5,u6},物品集合有7个物品,即V={v1,v2,v3,v4,v5,v6,v7},用户对物品的评分集合为矩阵R,用户对物品的评分范围是[0,5]。R具体如下表1所示:
表1
表1中,R表示用户集合U对物品集合V的评分,其中矩阵中的每个元素Rij表示用户ui对物品vj的评分。同时,用Ui和Vj表示用户ui和物品vj的偏好。评分矩阵中只有一小部分评分是已知的,推荐***的目标就是预测其中的未知评分,即表1中符号“?”对应位置的分值。推荐***基于这样一个假设:用户对物品的打分越高,表明用户越喜欢。因此,预测出用户对未评分物品的评分后,根据分值大小排序,把分值高的物品推荐给用户。
具体的,对于如何预测出未评分物品的评分,某些相关技术中采用矩阵分解方法进行预测。矩阵分解通过拟合已有的用户对物品的评分来学习用户和物品的潜在偏好。
矩阵分解算法的数学理论基础是矩阵的行列变换。可以理解,矩阵A进行行变换相当于A左乘一个矩阵,矩阵A进行列变换等价于矩阵A右乘一个矩阵,因此矩阵A可以表示为A=PEQ=PQ(E是标准矩阵)。矩阵分解目标就是把用户-物品的评分矩阵R分解成用户向量和物品向量相乘的形式,即R=UV,这里R是n×m,表1中n=6,m=7,U是n×K,V是K×m,K是指设定的用于评价物品的k个维度。
可以理解,评分矩阵R所分解出的用户向量和物品向量可以有多种可能。如图1A所示,是本申请根据一示例实施例示出的一种矩阵分解的示意图,图1A中包括了4个用户U1至U4对5个物品S1至S5的评分,其中某些评分是未知的,该评分数据可以以矩阵的形式记录,图1A中以2个维度为例,分解出了两个矩阵,获得了各用户的用户向量和物品向量。
举例来说,用户1的用户向量为:u1=(0.8,0.6)用户2的用户向量为u2=(0.9,0.1)
物品1的物品向量为:s1=(1.0,1.0)物品2的物品向量为s2=(0.2,1.0)
可以理解,已知的用户1对物品1的评分1.4,分解成了u1与s1的乘积。而未知的用户1对物品2的评分,由u1与s2的乘积获得。
由于一个用户对物品的评分矩阵所分解出来的用户向量和物品向量,实际上可以有多种可能性,如何分解出合适的向量,需要设定合适的目标函数,利用目标函数对分解结果进行优化(最小二乘法或梯度下降等方法),从而可以获得合适的用户向量和物品向量。
矩阵分解法中,可以基于用户对物品的真实评分和预测评分之间的差服从高斯分布这一拟合目标,设定目标函数:
其中,L为目标函数,目标函数中第一项表示拟合目标:用户对物品的真实评分和预测评分之间的差;第二项是为了防止过拟合而引入的正则化项。
在确定了目标函数后,可以采用最小二乘法或随机梯度下降法等算法对结果进行优化,得到所有用户的用户向量和所有物品的物品向量,进而预测得到未知的用户对物品的评分。使用矩阵分解方法,可以得到代表每个用户对物品的偏好的实数向量,以及每个物品的实数向量。例如,假设K为3,分解得到的某个用户的实数向量Ui为[-0.23,0.89,0.22],物品的实数向量Vj为[-0.03,0.56,-0.12]。
对于上述求解得到的数据,相关技术中在用户上线需要推荐物品时,首先计算该用户的实数向量与每个物品的实数向量乘积,作为该用户对该物品的评分,接着根据评分对物品排序,最后把评分最高的一个或多个物品推荐给用户。
在实际应用场景中,待推荐物品的数据量可能非常巨大,由于需要对实数向量进行乘积运算得到评分,还需要对评分进行排序,在线预测过程非常耗时,推荐效率较低。而本申请实施例中无需进行实数向量乘积运算,只需要进行每个维度的编码值和特征值的匹配,以偏好值与特征值相匹配的个数来衡量待推荐信息和目标用户之间的匹配度,由于本实施例只需要进行编码值与特征值的对比,因此运算量较低,信息推荐效率较高。接下来对本申请实施例进行详细说明。
如图1B所示,图1B是本申请根据一示例性实施例示出的一种物品推荐方法的应用场景图,图1B包括:一用于进行学***板电脑、个人计算机或个人数字助理等等)。
可以理解,图1B中的电子设备和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的电子设备,以及具有由多个服务器构成的服务器集群或云服务平台。另外,图1B中学习训练和在线推荐的过程分别由不同的服务器执行,根据实现需要,学习训练和在线推荐的过程也可以由同一服务器执行。
如图1C所示,图1C是本申请根据一示例性实施例示出的一种物品推荐方法的流程图,该方法可由服务端执行,在需要时向用户进行信息推荐。本实施例所述的信息可以包括多种类型的信息,例如,在网购场景中,信息可以包括如衣服、数码产品、旅游产品、书籍或家电等;在音乐门户场景中,信息可以是指音乐、歌单或歌手等等;在社交场景中,信息可以是指某个用户、某个组织等等;在美食服务平台,信息可以是指餐厅。
本实施例中,针对信息,预设K种维度,用于描述信息的K方面特征,所述方法包括如下步骤:
在步骤101中,获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K。
在步骤103中,获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征。
在步骤105中,对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
相关技术中根据已有的用户偏好数据,利用矩阵分解方法获得用户在每个维度上的偏好程度,以及每个信息与该维度的关联程度。例如,某个用户的实数向量Ui为[-0.23,0.89,0.22],表示在设定的3个维度中,用户的偏好程度分别为-0.23、0.89和0.22。信息的实数向量Vj为[-0.03,0.56,-0.12],表示在设定的3个维度中,该信息与各个维度的关联分别为-0.03、0.56和-0.12。相关技术将向量相乘的乘积作为用户对该物品的评分,评分越高,表示该物品越符合用户偏好。
考虑到向量相乘的计算复杂度,本实施例从相匹配的维度个数的角度衡量信息是否符合用户偏好。具体的,对于已设定的评分规则,例如[-1,1]中,1表示偏好程度最高,-1表示偏好程度最低,假设在某个维度上,用户的偏好程度与物品的关联程度越匹配,则表示在该维度上该信息符合用户偏好。例如,用户的实数向量Ui为[-0.03,0.18,0.32],信息的实数向量Vj为[-0.04,0.19,-0.12],可以理解,在该3个维度中,第一个维度,-0.03和-0.04差值较小,在该维度上该信息较为符合用户偏好;同理,第二个维度也是如此。在第三个维度,0.32和-0.12差值较大,在该维度上该信息不符合用户偏好。
因此,当描述信息不同特征的维度较多时,假设各个维度上用户的偏好值与信息的特征值越相似,即该信息有较多维度与用户偏好相匹配,该信息符合用户的偏好的可能性就越大。假设信息有很多维度与用户偏好不匹配,该信息可能不符合用户的偏好。
基于上述分析,本实施例中在寻找用户的推荐信息时,不采用向量相乘的方式,而是采用确定每个维度的编码值和特征值是否匹配的方式。其中,偏好程度采用编码值进行表示,关联程度采用特征值进行表示,具体表示方式可以采用数字或字符等进行表示,其取值或取值范围也可以根据实际需要而确定。
其中,每个维度的编码值用于指示用户对信息在该维度上是否具有偏好,每个维度的特征值用于指示该信息与该维度是否具有关联,在某些例子中,根据实际的计算要求,编码值和特征值可以较为精细地刻画具体的偏好程度和关联程度,例如[0,1]、[0,3]或[-1,1]。在另一些例子中,偏好编码值和物品编码值也可以只是两种取值,一种取值表示用户偏好或物品具有关联,另一种取值表示用户不偏好或物品不具有关联。实际应用中可以根据需要灵活配置,本实施例对此不作限定。
本申请实施例中,服务端可以预先获取多个用户的偏好编码,以及多个信息的特征编码。在需要对目标用户推荐某些信息时,从预先获取的多个用户的偏好编码中,查找到该目标用户的偏好编码,接着,从预先获取的多个信息的特征编码中,查找出可推荐给该目标用户的信息。
由于矩阵分解目标是把用户-物品的评分矩阵R分解成用户向量U和信息向量V相乘的形式,即R=UV,具体的,所分解出的U和V的维度个数K,可以根据实际应用中的需要而灵活配置,而每个维度可以对应信息中一类隐式的、不具有实际含义的特征。
用户的偏好编码以及信息的特征编码,实际应用中可以通过多种方式获得。在一种可选的实现方式中,可以是利用已有推荐***所存储的用户向量和信息向量确定用户的偏好编码以及信息的特征编码,此种方式下,在一些例子中,可以是将用户向量直接作为用户的偏好编码,用户向量中每个元素作为偏好值;将信息向量直接作为特征编码,特征向量中每个元素作为特征值。在后续对比第n个偏好值与所述第n个特征值是否匹配时,可以设定一些匹配标准,比如偏好值和编码值两者差值低于某个阈值,则认为两者匹配。在另一些例子中,由于用户向量和信息向量中每个元素的数值可能较为精细,为了提高匹配速度,可以将用户向量和信息向量中每个元素的数值转换为其他字符(可以是字母或数字等等)后作为偏好值和特征值,从而在对比偏好值和特征值时,可以降低对比难度,提高推荐效率。
实际应用中,还可以采用两种字符表示所述偏好值,对于用户的偏好编码,所述两种字符分别用于指示所述目标用户对所述第n方面特征是否具有偏好;采用所述两种字符表示所述特征值,对于信息的特征编码,所述两种字符分别用于指示待推荐信息是否包含所述第n方面特征。上述两种字符的具体形式可以根据需要而灵活配置,例如采用0和1、A和B、-1和1等等。采用此种方式,在查找推荐信息时时效性较高。举例来说,采用的两种字符分别为1和-1,维度K为30,物品有一万个,用户的偏好编码为[-1,1,1,1,-1,1,-1,……],在查找推荐物品时,可以在一万个物品的物品编码中,首先筛选出第一个维度为-1的物品,接着在所查找的物品中进一步筛选出第二个维度为1的物品,以此类推。
实际应用中,某些例子中,可以设定所有维度的编码值和特征值都相同,即认为该物品为用户的推荐物品;在其他例子中,也可以设定相同维度的个数达到一定比例,即可该物品为用户的推荐物品。
由此可见,采用上述方式,在判断编码值与特征值是否匹配时,只需要对编码值与特征值进行对比,因此能够显著提高物品推荐速度、物品推荐效率非常高。
举例来说,假设矩阵分解方法中采用[-1,1]表示评分,0以下的评分表示用户在该维度不具有偏好、信息在该维度不具有关联,0以上的评分表示用户在该维度具有偏好、信息在该维度具有关联。采用-1和1两种字符进行表示,若用户向量Ui为[-0.23,0.89,0.22],信息向量Vj为[-0.03,0.56,-0.12],相应地可以转化为用户编码Ui[-1,1,1],信息编码Vj[-1,1,-1],则后续在对比偏好值和特征值时,可以快速地确定两者是否匹配。
在其他可选的实现方式中,还可以是预先准备样本数据,利用样本数据训练出用户的偏好编码以及信息的特征编码。接下来对该过程进行详细描述,本实施例中,可以通过如下方式预先确定多个用户的偏好编码以及信息的特征编码:
获取多个用户对多种信息的评分的样本数据,利用所述样本数据构建用户对信息的评分矩阵;
根据预设的目标函数,将所述评分矩阵分解为用户的偏好向量和信息的特征向量的乘积;
利用所述偏好向量确定用户的偏好编码,以及利用所述特征向量确定所述信息的特征编码。
由前述分析可知,本实施例中,考虑到各个维度上编码值与特征值越相似,即信息有越多数量的维度与用户偏好相匹配,则用户对信息越偏好,用户对该信息的评分则越高。基于此,本实施例中的目标函数的拟合目标包括:所述偏好编码中偏好值与所述特征编码中特征值相匹配的个数与所述用户对信息的评分呈正相关。
在获取有样本数据,以及确定目标函数后,本实施例可以采用随机梯度下降算法等优化方法,从而计算得到每个用户的偏好编码以及每个所述信息的特征编码。
当编码值和特征值采用两种字符表示,为了防止过拟合,所述目标函数还用于约束每个偏好编码中各个所述偏好值的均匀程度,和/或约束每个特征编码中各个所述特征值的均匀程度。
在一个可选的实现方式中,所述目标函数包括:
其中,所述L为目标函数,所述Rij为用户ui对信息vj的评分,所述λ为预设的约束参数,所述K为所述维度的数量。
接下来再通过一实施例对本申请所提供的方案进行说明。
如图1D所示,是另一种信息推荐方法的示意图,本实施例中可以预先准备包括用户对信息的评分样本数据,由于数据量较大,可以采用数据分片技术,将已有的样本数据分成若干份,分片规则由实际的机器数量决定。
本实施例的方案,首先可以获取用户的偏好编码和信息的特征编码,编码值设定为-1和1,即Ui,Vj∈{-1,1}K。在训练时,要使得用户对评分越高的信息,两者的编码也应该越相似,即
其中,第一项约束了评分与编码相似度的关系,即评分越高,编码值与特征值应该越相似。第二项控制了编码的均匀程度,即编码中-1和1的比例应该尽可能的相同。参数λ控制了该约束程度,λ越大,该约束越强。求解该目标函数可以使用两步法:第一步,将解放松到实数域[-1,1],再使用基于参数服务器的分布式随机梯度下降方法求解得到用户的实数向量和信息的实数向量;第二步,将实数向量映射回{-1,1},也即是,当某个数大于0时将其置为1,反之置为-1。
得到用户的偏好编码和信息的特征编码后,可以理解,每个用户对应有偏好编码,每个信息对应有特征编码,因此,用户的偏好编码和信息的特征编码还可以采用哈希存储的方式。在需要向用户推荐信息时,可以使用哈希表查找的方法,从存储有多个待推荐信的哈希表中直接查找出匹配用户偏好的信息。假设维度为3,某用户的偏好编码为[-1,1,1],有3个信息,信息A的特征编码为[-1,1,1],信息B的特征编码为[-1,-1,1],信息C的特征编码为[1,1,-1]。在线预测时,会从信息的哈希表中查找与该用户最相似的信息(即A)推荐给他。由于本实施例不需要使用实数向量计算评分,也不需要排序,而是进行编码的查找,因此时间复杂度较低,查找效率非常高。此外,编码大大降低了数据存储空间,并且,还可以作为PSLR(peak side lobe ratio,峰值旁瓣比)等模型的额外特征。
与前述信息推荐方法的实施例相对应,本申请还提供了信息推荐装置及其所应用的服务器的实施例。
本申请信息推荐装置的实施例可以应用在服务器。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在信息推荐装置的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请信息推荐装置所在服务器的一种硬件结构图,除了图2所示的处理器210、内存230、网络接口220、以及非易失性存储器240之外,实施例中装置231所在的服务器,通常根据该服务器的实际功能,还可以包括其他硬件,对此不再赘述。
如图3所示,图3是本申请根据一示例性实施例示出的一种信息推荐装置的框图,预设K种维度,用于描述信息的K方面特征,所述装置包括:
偏好编码获取模块31,用于:获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K;
特征编码模块32,用于:获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征;
推荐模块33,用于:对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
可选的,采用两种字符表示所述偏好值,所述两种字符分别用于指示所述目标用户对所述第n方面特征是否具有偏好;
采用所述两种字符表示所述编码值,所述两种字符分别用于指示待推荐信息是否包含所述第n方面特征。
可选的,还包括编码确定模块,用于:
获取多个用户对多种信息的评分的样本数据,利用所述样本数据构建用户对信息的评分矩阵;
根据预设的目标函数,将所述评分矩阵分解为用户的偏好向量和信息的特征向量的乘积;
利用所述偏好向量确定用户的偏好编码,以及利用所述特征向量确定所述信息的特征编码。
可选的,所述目标函数的拟合目标包括:所述偏好编码中偏好值与所述特征编码中特征值相匹配的个数与所述用户对信息的评分呈正相关。
可选的,所述目标函数还用于约束每个偏好编码中各个所述偏好值的均匀程度,和/或约束每个特征编码中各个所述特征值的均匀程度。
可选的,所述目标函数包括:
其中,所述L为目标函数,所述Rij为用户ui对信息vj的评分,所述λ为预设的约束参数,所述K为所述维度的数量。
可选的,所述推荐模块,还用于:
对比所述第n个偏好值与所述第n个编码值是否相同。
可选的,所述推荐模块,还用于:
对比所述偏好编码与所述特征编码是否相同,若相同,将所述待推荐信息推荐给所述目标用户。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
一种服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
预设K种维度,用于描述信息的K方面特征;
获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K;
获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征;
对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
一种计算机存储介质,所述存储介质中存储有程序指令,所述程序指令包括:
预设K种维度,用于描述信息的K方面特征;
获取推荐目标用户的偏好编码,所述偏好编码包括K个偏好值,第n个偏好值指示所述目标用户对第n方面特征是否具有偏好;其中,K为大于或等于1的整数,0≤n≤K;
获取待推荐信息的特征编码,所述特征编码包括K个特征值,第n个特征值指示所述待推荐信息是否包含第n方面特征;
对比所述第n个偏好值与所述第n个特征值是否匹配,根据所述相匹配的个数,确定所述待推荐信息是否推荐给所述目标用户;其中,所述待推荐信息和所述目标用户之间的匹配度与所述相匹配的个数呈正相关。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。