物品推荐方法、装置、设备以及存储介质
技术领域
本公开涉及推荐领域,特别是涉及一种物品推荐方法、装置、设备以及存储介质。
背景技术
个性化推荐技术能够帮助人们接触到那些足够小众的内容,而这些内容在其他大众传播方式下,通常会因为广告价值太低等之类的原因,无法有效呈现。但是实际上这样的小众内容的比例却是一块不可忽视的数量,而且在互联网日益普及的今天,人们获取信息的方式越来越多样化、入口越来越碎片化,这样的长尾现象只会越来越显著。
当前的搜索场景下,热词占据比较大的份额,优化热词可以直接提高系统整体流量,提升客户体验,单客停留时间等指标,客单价(每位顾客消费的平均价格)也将获得提升(需与其他商业化模式配合)。当用户的参与度(参与的深度与时长)提高时商业化变现能力也将随之提升,这是营造良好的商业循环的基础。
现有的热词推荐方案大多是将实时统计得到的当前操作率最高的N个热词,推荐给所有用户。这样的后果是无法做到千人千面,无法对每个用户的不同喜好(即使我们知道他们各自的喜好)作出反应,从而带来较原始的用户体验,不利于提升用户粘性,更不利于商业化。尤其是在互联网手机的使用场景下,长尾用户的大量存在使得不考虑用户不同的个人特征的方案造成大量用户流失,正在一步步被淘汰。
因此,需要一种更加优化的个性化推荐方案,以更好地服务用户。
发明内容
本发明的一个目的在于提供一种更加优化的个性化推荐方案,以更好地服务用户。
根据本公开的第一个方面,提供了一种物品推荐方法,包括:获取第一物品集;根据用户的第一历史操作信息,从第一物品集中选取适于向用户推荐的物品,以得到第二物品集;将第二物品集中的物品推荐给用户。
优选地,获取第一物品集的步骤可以包括:从一个或多个数据源获取热门物品,以得到第一物品集。
优选地,从第一物品集中选取适于向用户推荐的物品的步骤可以包括:基于协同过滤的方式,从第一物品集中选取适于向用户推荐的物品。
优选地,从所述第一物品集中选取适于向所述用户推荐的物品的步骤可以包括:根据第一历史操作信息,确定用户的偏好物品;计算第一物品集中的物品与偏好物品之间的第一相似度;选取第一相似度排名靠前的第一预定数量的物品,以得到第二物品集。
优选地,确定用户的偏好物品的步骤可以包括:根据第一历史操作信息,确定第三物品集,第三物品集包括一个或多个历史操作物品;从第二物品集中选取操作次数超过第一预定阈值的历史操作物品作为偏好物品。
优选地,确定用户的偏好物品的步骤可以包括:根据第一历史操作信息,选取操作次数超过第二预定阈值的历史操作物品,得到第四物品集;计算第四物品集中任意两个历史操作物品间的第二相似度;将第二相似度超过第三预定阈值的历史操作物品合并为同一物品,得到第五物品集,其中,合并后的物品的操作次数为合并前各历史操作物品的操作次数之和;从第五物品集中选取操作次数排名靠前的第二预定数量的历史操作物品作为偏好物品。
优选地,该方法还可以包括:对属于现象级物品的历史操作物品的操作次数进行降权处理。
优选地,将第二物品集中的物品推荐给用户的步骤可以包括:确定第二物品集中至少部分物品的推荐度;选取推荐度排名靠前的第三预定数量的物品,推荐给用户。
优选地,确定第二物品集中至少部分物品的推荐度的步骤可以包括:根据第一历史操作信息,将用户和至少部分物品分别映射到同一语义空间,以得到用户的第一特征向量表示和至少部分物品中每个物品的第二特征向量表示;计算第一特征向量表示和第二特征向量表示之间的第三相似度,作为推荐度。
优选地,确定第二物品集中至少部分物品的推荐度的步骤可以包括:利用预先训练好的排序模型,为至少部分物品中每个物品生成排序分,作为推荐度。
优选地,该方法还可以包括:根据一个或多个用户第二历史操作信息,构建一个或多个训练样本,每个训练样本包括对应于一个或多个维度的样本特征;使用一个或多个训练样本训练梯度提升决策树模型,以得到排序模型,排序模型用于为物品生成排序分。
优选地,该方法还可以包括:根据第二历史操作信息,构建一个或多个验证样本,验证样本包括样本特征及样本标记;使用训练得到的排序模型对验证样本进行验证,以计算排序模型的模型误差。
优选地,该方法还可以包括:从第二物品集中随机选取第四预定数量个曝光次数小于第四预定阈值的物品推荐给用户。
优选地,该方法还可以包括:对具有时效性的物品的推荐度乘以时间衰减因子α,0<α<1。
优选地,该方法还可以包括:剔除向用户展示的推荐次数超过第五预定阈值的物品。
优选地,该方法还可以包括:剔除转化率小于第六预定阈值的物品。
优选地,该方法还可以包括:根据用户对向其推荐的物品的物品操作情况,对推荐给用户的物品的召回率进行评测。
根据本公开的第二个方面,还提供了一种物品推荐装置,包括:第一物品集获取模块,用于获取第一物品集;第二物品集确定模块,用于根据用户的第一历史操作信息,从第一物品集中选取适于向用户推荐的物品,以得到第二物品集;以及推荐模块,用于将第二物品集中的物品推荐给用户。
优选地,第一物品集获取模块从一个或多个数据源获取热门物品,以得到第一物品集。
优选地,第二物品集确定模块基于协同过滤的方式,从第一物品集中选取适于向用户推荐的物品。
优选地,第二物品集确定模块可以包括:偏好物品确定模块,用于根据第一历史操作信息,确定用户的偏好物品;第一相似度计算模块,用于计算第一物品集中的物品与偏好物品之间的第一相似度;以及第一选取模块,用于选取第一相似度排名靠前的第一预定数量的物品,以得到第二物品集。
优选地,偏好物品确定模块可以包括:第三物品集确定模块,用于根据第一历史操作信息,确定第三物品集,第三物品集包括一个或多个历史操作物品;第二选取模块,用于从第三物品集中选取操作次数超过第一预定阈值的历史操作物品作为偏好物品。
优选地,偏好物品确定模块可以包括:第四物品集确定模块,用于根据所述第一历史操作信息,选取操作次数超过第二预定阈值的历史操作物品,得到第三物品集;第二相似度计算模块,用于计算所述第三物品集中任意两个历史操作物品间的第二相似度;第五物品集确定模块,用于将第二相似度超过第三预定阈值的历史操作物品合并为同一物品,得到第五物品集,其中,合并后的物品的操作次数为合并前各历史操作物品的操作次数之和;第三选取模块,用于从所述第五物品集中选取操作次数排名靠前的第二预定数量的历史操作物品作为所述偏好物品。
优选地,该装置还可以包括:降权模块,用于对属于现象级物品的历史操作物品的操作次数进行降权处理。
优选地,该装置还可以包括:推荐度确定模块,用于确定第二物品集中至少部分物品的推荐度;第四选取模块,用于选取推荐度排名靠前的第三预定数量的物品,推荐给用户。
优选地,推荐度确定模块可以包括:特征向量确定模块,用于根据第一历史操作信息,将用户和至少部分物品分别映射到同一语义空间,以得到用户的第一特征向量表示和至少部分物品中每个物品的第二特征向量表示;第三相似度计算模块,用于计算第一特征向量表示和第二特征向量表示之间的第三相似度,作为推荐度。
优选地,推荐度确定模块还可以包括:排序分生成模块,用于利用预先训练好的排序模型,为至少部分物品中每个物品生成排序分,作为推荐度。
优选地,该装置还可以包括:训练样本构建模块,用于根据一个或多个用户第二历史操作信息,构建一个或多个训练样本,每个训练样本包括对应于一个或多个维度的样本特征;模型训练模块,用于使用一个或多个训练样本训练梯度提升决策树模型,以得到排序模型,排序模型用于为物品生成排序分。
优选地,该装置还可以包括:验证样本构建模块,用于根据第二历史操作信息,构建一个或多个验证样本,验证样本包括样本特征及样本标记;模型验证模块,用于使用训练得到的排序模型对验证样本进行验证,以计算排序模型的模型误差。
优选地,该装置还可以包括:随机推送模块,用于从第二物品集中随机选取第四预定数量个曝光次数小于第四预定阈值的物品推荐给用户。
优选地,该装置还可以包括:时间衰减模块,用于对具有时效性的物品的推荐度乘以时间衰减因子α,0<α<1。
优选地,该装置还可以包括:第一剔除模块,用于剔除向用户展示的推荐次数超过第五预定阈值的物品。
优选地,该装置还可以包括:第二剔除模块,用于剔除转化率小于第六预定阈值的物品。
优选地,该装置还可以包括:评测模块,用于根据用户对向其推荐的物品的物品操作情况,对推荐给用户的物品的召回率进行评测。
根据本公开的第三个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行本公开第一个方面述及的方法。
根据本公开的第四个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行本公开第一个方面述及的方法。
本公开将第一物品集作为候选物品集,基于用户的历史操作信息,对候选物品集做进一步召回,可以使得最终召回的物品能够更好地满足用户的个性化需求。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本公开一实施例的物品推荐系统的整体结构示意图。
图2示出了根据本公开的物品推荐方法的示意性流程图。
图3示出了本公开的一种物品推荐方案的整体实现流程图。
图4示出了利用本公开的物品推荐方案向用户展示推荐结果的示意图。
图5示出了根据本公开一实施例的物品推荐装置的结构的示意性框图。
图6示出了根据本公开一实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
【方案概述】
本公开旨在当用户访问某个页面或界面(可以是手机的主屏、左一屏,也可以是应用内、新闻中心、游戏中心、或者PC端等任何的交互入口)的时候,帮助用户在最短的时间之内找到感兴趣的物品(item,可以是搜索词、app、资讯、商品等等),以免浪费时间在寻找上。这种既快又准的效率和体验的提升将使得平台更容易留住用户,并能刺激用户花更多的时间在平台上。
图1示出了根据本公开一实施例的物品推荐系统的整体结构示意图。如图1所示,本公开的物品推荐系统主要包括物品抓取模块10、业务统筹模块20、算法模块30、离线测评模块40以及敏感物过滤模块50。
业务统筹模块20相当于一个中枢,主要用于负责整个系统的业务流程,通过对接各个模块接口串联各个模块。例如业务统筹模块20可以对接物品抓取模块10接口、算法模块30接口、对接敏感物过滤模块50接口以及客户端推送接口。
物品抓取模块10主要负责抓取适于推荐的物品,以得到物品集(为了便于区分,此处称为“第一物品集”),第一物品集可以视为候选物品集。在抓取第一物品集时,可以从群体用户出发,抓取群体用户的喜好物品,得到第一物品集。
作为本公开的一个示例,物品抓取模块可以通过爬虫的方式,从一个或多个数据源(例如百度、神马、微博等门户网站)抓取热门物品(如热门词汇、热门资讯、热门搜索等),得到第一物品集。其中抓取的物品可以是英文表示,也可以是中文表示。也就是说,第一物品集可以是热门物品集。
由于原始抓取得到的第一物品集一般较大(上千万甚至上亿),并且如上文所述,在抓取第一物品集时,是从群体用户的喜好出发的。因此,虽然第一物品集中的物品可以视为适于推荐的候选物品集,但是,如果直接使用第一物品集中的物品向用户进行无差别推荐,则不能很好地满足用户的个性化需求。有鉴于此,为了在向具体用户推荐物品时,使得推荐的物品能够符合用户的个性化需求,还需要对第一物品集进行召回(筛选),将第一物品集中用户可能喜欢的物品筛选出来,以得到适于向用户推荐的新的物品集(为了便于区分,此处称为“第二物品集”)。
本公开的算法模块30是整个推荐系统的核心模块。算法模块30可以根据用户的个性化信息,对物品抓取模块10抓取得到的第一物品集做筛选(召回),以得到适于第二物品集,并从第二物品集中选取物品推荐给用户。
作为本公开的一个示例,算法模块30可以根据用户的历史操作信息或者用户的标签(如用户画像),利用协同过滤方式从第一物品集中进一步抓取用户可能喜欢的物品,以得到第二物品集。
协同过滤包括基于物品的协同过滤、基于用户的协同过滤以及基于模型的协同过滤三种方式。
基于物品的协同过滤,是指根据所有用户对物品或者信息的评价,发现物品和物品之间的相似度,然后根据用户的历史偏好信息将类似的物品推荐给该用户。
基于用户的协同过滤,是指先使用统计技术寻找与用户有相同喜好的邻居,然后根据用户的邻居的喜好产生向用户的推荐。基本原理就是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源。
基于模型的协同过滤,是指基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测推荐。
基于模型的协同过滤的缺点在于用户喜好的描述存在局限性,模型的泛化能力较难把握,同时用户的某些喜好可能会迁移。因此本公开可以利用基于物品的协同过滤的方式和/或基于用户的协同过滤的方式,对第一物品集做召回,筛选出适于向用户推荐的物品,以得到第二物品集。
在物品抓取模块10抓取得到的第一物品集中包括从多个数据源获取的热门物品的情况下,算法模块30可以根据用户的历史操作信息,从这些热门物品中选取符合用户个性化需求的热门物品,以得到第二物品集,并将第二物品集中的物品推荐给用户。
由此,基于本公开的方案,在向用户推荐热门物品时,可以为用户提供个性化的热门物品推荐服务,向用户推荐符合用户个性化需求的热门物品,以实现千人千面的热门物品的推荐,并且还可以在一定程度上避免长尾现象。
如图1所示,算法模块30可以分为第一推荐模块310和第二推荐模块320。第一推荐模块310和第二推荐模块320均可以用于确定向用户推荐的物品。
优选地,第一推荐模块310可以视为离线推荐模块,其可以根据海量数据处理平台(Open Data Processing Service,OPDS)中每个用户的历史行为数据,周期性地(例如每两个小时)为每个用户进行个性化物品推荐,并将推荐结果上传到业务统筹模块20,以便业务统筹模块20向用户展示推荐结果。
第二推荐模块320可以视为实时推荐模块,主要用于实时推荐当前最热门的物品,即为用户提供个性化的实时热门物品推荐服务。如图1所示,第二推荐模块320可以包括召回模块321、排序模块322、探索模块323、时间衰减模块324、频次衰减模块325以及二跳过滤模块326。
敏感物过滤模块50主要过滤掉物品抓取模块10抓取的第一物品集中涉黄、涉暴的物品,以保证推荐结果和谐。其中可以利用现有的多种过滤方式实现物品的过滤,此处不再赘述。
离线评测模块40则可以对算法模块30的验证集指标(如召回率、准确率)进行评测。具体地,可以根据用户对使用算法模块30向其推荐的物品的物品操作情况,对推荐给用户的物品的召回率或者准确率进行评测。其中,召回率是指用户操作的物品落入第二物品集的比例,准确率是指用户操作的物品落入向用户推荐的物品的比例。例如,可以线上保留随机流量桶,利用本公开的推荐方案为桶内的用户推荐物品,如此可以方便地在这个桶上验证当前推荐方案的召回率和/或准确率。
至此,结合图1就本公开的推荐系统的基本结构做了简要说明。图2示出了根据本公开的物品推荐方法的示意性流程图。其中图2所示的方法可以由图1所示的推荐系统实现,具体可以由系统中相应模块实现。
参见图2,在步骤S110,例如可以由物品抓取模块10,获取第一物品集。
在步骤S120,例如可以由召回模块321,根据用户的第一历史操作信息,从第一物品集中选取适于向所述用户推荐的物品,以得到第二物品集。
第一历史操作信息可以是采集的预定时间段内用户的多种跨域日志信息,例如用户的搜索日志、app下载/使用日志、购物日志、支付数据,地图使用日志等日志信息。
在步骤S130,将第二物品集中的物品推荐给用户。
如上文所述,第一物品集中可以是由物品抓取模块10从多个数据源获取的热门物品。对于第一物品集中的热门物品,可以利用召回模块321从中进一步选取最为符合用户的个性化需求的热门物品,以得到第二物品集。第二物品集中的热门物品是满足用户的个性化需求的热门物品,因此可以将第二物品集中的物品推荐给用户,实现热门物品的个性化推荐。
下面以第一物品集包括从多个数据源获取的热门物品为例,就本公开的推荐方案的具体实现做进一步说明。
【物品的召回】
可以由召回模块321执行步骤S120、步骤S130,以从第一物品集中进一步召回(筛选)符合用户个性化需求的物品,以得到适于向用户推荐的第二物品集。如上文所述,可以基于协同过滤的方式从第一物品集中筛选出适于向用户推荐的物品,以得到第二物品集。
作为本公开的一个示例,可以根据第一历史操作信息,确定用户的一个或多个偏好物品。偏好物品可以表征用户的偏好特性,因此,可以通过计算第一物品集中的物品与偏好物品之间的第一相似度,第一相似度大的物品符合用户个性化需求的可能性较大,因此可以从第一物品集中选取第一相似度排名靠前的第一预定数量的物品,以得到第二物品集。
其中,可以通过对第一物品集中的物品与偏好物品分别进行分词,得到物品的词向量表示,通过计算词向量间的相似度,确定物品间的第一相似度。例如可以采用余弦相似度计算方式计算物品间的第一相似度。其中,关于向量相似度的计算为本领域技术人员所公知,此处不再赘述。
具体来说,可以根据第一历史操作信息,确定第三物品集,第三物品集可以包括一个或多个历史操作物品。可以从第三物品集中直接选取操作次数超过第一预定阈值的历史操作物品作为偏好物品。例如,可以根据15天内的展示操作日志,选取操作次数超过10次的物品作为偏好物品。
另外,还可以根据第一历史操作信息,选取操作次数超过第二预定阈值的历史操作物品,得到第四物品集。计算第四物品集中任意两个历史操作物品间的第二相似度。将第二相似度超过第三预定阈值的历史操作物品合并为同一物品,得到第五物品集,其中,合并后的物品的操作次数为合并前各历史操作物品的操作次数之和。然后从第五物品集中选取操作次数排名靠前的第二预定数量的历史操作物品作为偏好物品。通过将相似度超过预定阈值的历史操作物品视为同一物品,从而可以提高最终确定的偏好物品的准确度。
进一步地,在统计历史操作物品的操作次数时,还可以对属于现象级物品的历史操作物品的操作次数进行降权处理。其中,现象级物品是指短时间内突然爆红而被众所周知和使用,但却难以维持长期发展的物品,例如热点新闻、热播电视剧等等。
【物品的排序】
本部分可以由图1中的排序模块322实现。
简要来说,可以基于预定的方式确定第二物品集中至少部分物品(例如可以是所有物品)的推荐度,然后选取推荐度排名靠前的第三预定数量的物品,推荐给用户。
推荐度确定方式一
可以根据用户的历史操作信息(为了便于区分,此处可以称为“第二历史操作信息”),将用户和第二物品集中至少部分物品分别映射到同一语义空间,以得到用户的第一特征向量表示和至少部分物品中每个物品的第二特征向量表示。例如,可以使用Multi-view DSSM(梯度提升决策树模型,Multi-view Deep Structured Semantic models)将用户和Item(物品)的关系映射到一个n-gram(n维)的语义空间而非传统的词空间。然后可以通过多种计算方式(例如余弦相似度计算方式)计算第一特征向量表示和第二特征向量表示之间的第三相似度,作为推荐度。
其中,第二历史操作信息也可以是预定时间段内用户的多种跨域日志信息,例如用户的搜索日志、app下载/使用日志、购物日志、支付数据,地图使用日志等日志信息。并且,第二历史操作信息可以与上文述及的第一历史操作信息相同,也可以不同,例如第二历史操作信息和第一历史操作信息可以是不同时间段内的日志信息。
推荐度确定方式二
可以利用预先训练好的排序模型,为至少部分物品中每个物品生成排序分,该排序分可以作为推荐度。即可以选取排序分排名靠前的物品推荐给用户。其中,排序模型可以是梯度提升决策树模型,模型的训练过程如下。
可以根据一个或多个用户的历史操作信息(为了便于区分,此处可以称为“第三历史操作信息”,可以参见上文对第一历史操作信息的描述),构建一个或多个训练样本,每个训练样本包括对应于一个或多个维度的样本特征,然后使用一个或多个训练样本训练梯度提升决策树模型,以得到排序模型,排序模型用于为物品生成排序分。
并且在训练过程中,还可以根据第三历史操作信息,构建一个或多个验证样本,验证样本包括样本特征及样本标记。使用训练得到的排序模型对验证样本进行验证,可以计算排序模型的模型误差。在误差较大的情况下,可以继续执行上述训练操作,如此通过不断训练、验证,可以最终得到较为准确的排序模型。关于梯度提升决策树模型的具体训练过程为本领域技术人员所公知,此处不再赘述。
例如,可以获取用户30天的历史操作日志,将用户的历史操作物品、历史操作物品在一段时间内(例如3天、5天、7天)的操作率、客户端设备型号特征、物品类目属性等特征作为训练集合,将前一天的历史操作日志作为验证集合。分别负采样50倍,采用GBDT(Gradient Boosting Decision Tree)算法训练排序模型。
【物品探索】
本部分可以由图1中的探索模块323实现。
可以从第二物品集中随机选取第四预定数量个曝光次数小于第四预定阈值的物品推荐给用户,或者也可以将上线时间晚于昨天的热门物品进行随机展示。
【时间衰减】
本部分可以由图1中的时间衰减模块324实现。
第一物品集中的热门物品可以分为新闻、APP、小说、音视频等多种类的物品。其中,新闻类物品,例如新闻资讯的时效性较强,对时间敏感性较高,过期的新闻推荐意义不大而且影响用户体验。因此在计算得到物品的推荐度后,可以对具有时效性的物品的推荐度(或者排序分)乘以时间衰减因子α,0<α<1。其中衰减因子α的大小可以基于Weibull_Decay(威布尔衰退)确定。
【频次衰减】
本部分可以由图1中的频次衰减模块325实现。
根据历史统计,用户操作基本是发生在两次展示以内。如果展示多次没有操作的话,则表明用户对其不感兴趣。因此可以人为减少同一物品展示给同一用户多次的情况,留更多的展示位给新物品。即,可以剔除向用户展示的推荐次数超过第五预定阈值(例如5次)的物品。
【二跳过滤】
本部分可以由图1中的二跳过滤模块326实现。
从用户体验角度考虑,虽然某一物品的操作率较高,但是其有可能属于类似标题党这种类型,因此可以同时考虑转化率,以提升用户体验。即可以对转化率小于某一阈值(第六预定阈值)的物品进行截断(剔除)。
其中,转化是指用户完成商户期望的行为,转化率是指用户完成商户期望的行为的比率,转化率可以通过对多个用户的转化结果进行统计得到。例如,以物品为热门资讯为例,转化可以是指用户浏览热门资讯时停留超过预定时间这一行为,转化率可以是指多个用户浏览热门资讯时停留超过一定时间的比例。再例如,转化也可以是指用户浏览热门资讯时跳转了特定页面(如注册页面)这一行为,此时转化率可以是指多个用户浏览热门资讯时跳转了特定页面的比例。
图3示出了本公开的一种物品推荐方案的整体实现流程图。
如图3所示,可以通过聚类服务为用户提供缓存服务。基于缓存服务可以保存用户(User)与组(Group)之间的映射关系,并保存每个Group对应的物品列表缓存(item list)。
首先可以执行步骤S310,根据用户UUID(标识符)判断用户是否命中缓存,即判断缓存中是否有该用户对应的缓存组。如果命中,则可以直接将对应的物品列表中的物品推荐给用户。
如果不命中,则可以启用ACG欲搜,其中,ACG欲搜是指位于用户客户端上的搜索系统。可以执行步骤S320,调用TPP服务。其中,TPP服务可以是位于服务器侧的物品推荐服务,此处述及的TPP的物品推荐处理流程可以与本公开上文述及的物品推荐方案的处理流程相同。
如图3所示,可以执行步骤S330,根据用户UUID或者Group_ID(组标识),首先为用户生成物品候选集(即第一物品集)。候选物品集可以包括实时热词检索结果、基于用户Tag(标签)召回结果、离线推荐结果(存储在igragh块中)三部分物品。其中,实时热词检索结果可以是从多个数据源获取的热门物品(如热门检索词),如图3所示,可以利用爬虫服务获取热门物品。离线推荐结果可以是利用协同过滤算法推荐的个性化推荐数据,基于用户Tag(标签)召回结果即是根据用户标签获取的物品召回结果。
然后可以执行步骤S340,从候选物品集中进行物品召回。
在步骤S350,对召回结果进行ranking(排序)。
召回过程(步骤S340)和排序过程(步骤S350)均可以参见上相关说明。并且在召回或排序过程中可以对其中的物品进行敏感词过滤处理,以剔除涉黄涉暴的物品。在排序后,可以选取排名靠前的物品作为待推荐物品。
在步骤S360,通过排序选取的物品可以由业务展现模块执行一系列的业务展现逻辑。例如,可以根据用户画像,考虑不同类目的热词(热门物品)的曝光机会,将热门物品的类目打散,均匀地进行展示。并且还可以同时考虑敏感词,如时间敏感词的展现,调低时间敏感词的推荐度。
业务展现模块处理后决定展现的热门物品,可以返回给客户端上的ACG欲搜。在步骤S370,经过业务逻辑处理,例如可以通过调用人工运营词接口,根据不同业务类型返回不同长度的热词列表,就可以展示给用户。
图4示出了利用本公开的物品推荐方案向用户展示推荐结果的示意图。
如图4所示,用户可以通过首屏搜索框、左一屏搜索框操作,或者打开搜索app,就可以进入图4所示的界面。界面中展示的“大家都在搜”这一模块,就是利用本公开的推荐方案推荐的热词(热门物品)场景,每屏可以显示6个热搜,一共可以有8屏,用户可以通过换一换切换到下一屏幕,操作热词则可以直接调转到该热词的搜索页面。
图5示出了根据本公开一实施例的物品推荐装置的结构的示意性框图。其中,物品推荐装置500的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图5所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
参见图5,物品推荐装置500可以包括第一物品集获取模块510、第二物品集确定模块520以及推荐模块530。
第一物品集获取模块510用于获取第一物品集,第一物品集为适于推荐的物品集,如可以是热门物品集。可选地,第一物品集获取模块可以从一个或多个数据源获取热门物品,以得到第一物品集。
第二物品集确定模块520用于根据用户的第一历史操作信息,从第一物品集中选取适于向用户推荐的物品,以得到第二物品集。第二物品集确定模块520可以基于协同过滤的方式,从第一物品集中选取适于向用户推荐的物品。
推荐模块530用于将第二物品集中的物品推荐给用户。
如图5所示,第二物品集确定模块520还可以可选地包括偏好物品确定模块521、第一相似度计算模块522以及第一选取模块524。
偏好物品确定模块521用于根据第一历史操作信息,确定用户的一个或多个偏好物品。第一相似度计算模块522用于计算第一物品集中的物品与偏好物品间的第一相似度。第一选取模块524用于选取第一相似度排名靠前的第一预定数量的物品,以得到第二物品集。
如图5所示,偏好物品确定模块521可以包括第三物品集确定模块5211和第二选取模块5212。
第三物品集确定模块5211用于根据第一历史操作信息,确定第三物品集,第三物品集包括一个或多个历史操作物品。第二选取模块5212用于从第三物品集中选取操作次数超过第一预定阈值的历史操作物品作为偏好物品。
如图5所示,偏好物品确定模块521还可以包括第四物品集确定模块5214、第二相似度计算模块5215、第五物品集确定模块5216以及第三选取模块5217。
第四物品集确定模块5214用于根据第一历史操作信息,选取操作次数超过第二预定阈值的历史操作物品,得到第四物品集。第二相似度计算模块5215用于计算第四物品集中任意两个历史操作物品间的第二相似度。第五物品集确定模块5216用于将第二相似度超过第三预定阈值的历史操作物品合并为同一物品,得到第五物品集,其中,合并后的物品的操作次数为合并前各历史操作物品的操作次数之和。第三选取模块5217用于从第五物品集中选取操作次数排名靠前的第二预定数量的历史操作物品作为偏好物品。
如图5所示,物品推荐装置500还可以可选地包括降权模块540。降权模块540用于对属于现象级物品的历史操作物品的操作次数进行降权处理。
如图5所示,物品模块530还可以可选地包括推荐度确定模块531和第四选取模块532。
推荐度确定模块531用于确定第二物品集中至少部分物品的推荐度。第四选取模块532用于选取推荐度排名靠前的第三预定数量的物品,推荐给用户。
作为本公开的一个示例,推荐度确定模块531可以可选地包括特征向量确定模块和第三相似度计算模块。
特征向量确定模块用于根据第一历史操作信息,将用户和至少部分物品分别映射到同一语义空间,以得到用户的第一特征向量表示和至少部分物品中每个物品的第二特征向量表示。
第三相似度计算模块用于计算第一特征向量表示和第二特征向量表示之间的第三相似度,作为推荐度。
作为本公开的另一个示例,推荐度确定模块531可以可选地包括排序分生成模块。
排序分生成模块用于利用预先训练好的排序模型,为每个物品生成排序分。第四选取模块532可以选取排序分排名靠前的物品推荐给用户。
物品推荐装置500还可以可选地包括训练样本构建模块(图中未示出)和模型训练模块(图中未示出)。
训练样本构建模块用于根据一个或多个用户第二历史操作信息,构建一个或多个训练样本,每个所述训练样本包括对应于一个或多个维度的样本特征。
模型训练模块用于使用一个或多个所述训练样本训练梯度提升决策树模型,以得到所述排序模型,所述排序模型用于为物品生成排序分。
物品推荐装置500还可以可选地包括验证样本构建模块(图中未示出)和模型验证模块(图中未示出)。
验证样本构建模块用于根据第二历史操作信息,构建一个或多个验证样本,验证样本包括样本特征及样本标记;模型验证模块用于使用训练得到的排序模型对验证样本进行验证,以计算排序模型的模型误差。
如图5所示,物品推荐装置500还可以可选地包括随机推送模块550(即上文述及的探索模块)。随机推送模块550用于针对所述用户,从第二物品集中随机选取第四预定数量个曝光次数小于第四预定阈值的物品推荐给用户。
如图5所示,物品推荐装置500还可以可选地包括时间衰减模块560。时间衰减模块560用于对具有时效性的物品的推荐度乘以时间衰减因子α,0<α<1。
如图5所示,物品推荐装置500还可以可选地包括第一剔除模块570。第一剔除模块570用于剔除向用户展示的推荐次数超过第五预定阈值的物品。
物品推荐装置500还可以可选地包括第二剔除模块(图中未示出)。第一剔除模块可以用于剔除向用户展示的推荐次数超过第五预定阈值的物品。
如图5所示,物品推荐装置500还可以可选地包括评测模块580。评测模块580用于根据一个或多个用户对向其推荐的物品的物品操作情况,对推荐给用户的物品的召回率进行评测。
图6示出了根据本公开一实施例的计算设备的结构示意图。
如图6所示,本公开的计算设备600可以包括处理器610以及存储器620。存储器620上可以存储有可执行代码,当可执行代码被处理器610执行时,使处理器610执行根据本公开的上述方法。具体实现过程可参见上文中的相关描述,在此不再赘述。
至此,详细描述了本公开的物品推荐方案。
本公开的物品推荐方案可以应用于系统级平台上,以获取大量的用户跨域日志信息,例如搜索日志,app下载,使用日志,购物日志,支付数据,地图使用日志等等。
由此,虽然用户在热门物品(热词)上的行为可能是稀疏甚至是缺失的,但是因为跨域数据的存在,我们仍然可以根据这些丰富的行为对用户做相对比较精准的画像。由此,可以为用户推荐满足其个性化需求的热门物品。并且还可以同时解决冷启动和效率的问题,由此可以建立一套快速相应响应用户口味的机制,让系统能迅速捕捉用户的变化。
并且我们在基于用户的历史数据进行物品推荐时,同时也考虑词与词之间的语意相关度。对于语义的关联采集模型,本公开可以使用Multi-view DSSM的使用,采集多个域的丰富日志来表征用户,包括他们的搜索历史,下载和使用历史等,通过Multi-view的深度学习模型将用户和Item映射到同一个语义空间,目标是使用户和其有过操作的Item相似度最大化。将不同域组合成单一学习模型将提高各个域的推荐质量,同时也能最终的用户向量也将包含更丰富的特征信息。
进一步地,本公开的推荐方案可以实现为图1所示的模块化的推荐系统,可以保证高可复用,可以方便后期各不同的应用的扩展,使得各个功能组保持逻辑衔接的同时相对独立。由此可以实现规模化应用,可以轻松应对千万级的用户和百亿级的输入条目。
上文中已经参考附图详细描述了根据本发明的物品推荐方法、装置以及设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。