项目推荐方法、装置及系统
文献发布时间:2023-06-19 11:49:09
技术领域
本公开涉及互联网领域,特别是涉及一种互联网领域的项目推荐方法、装置和系统。
背景技术
随着互联网的飞速发展,尤其是移动互联网的发展,推荐系统发挥着越来越重要的作用。在现有的推荐方法中,有一部分场景的需求是从候选集中选取一个优选的结果推荐给用户,例如,电子商务场景中为用户推荐一个优选的商品,或者在多个WiFi热点中选一个优选的结果推荐给用户。
然而,在这些应用场景中,现有的推荐方法要么缺乏在线探索过程,易于因历史数据偏差导致模型效果差,要么在线探索时需要消耗大量流量影响用户的体验。
此外,现有推荐方法的应用场景中,需要在候选项目中选取优选项目以满足至少一个指标最大化。例如,在商品或视频推荐应用中,系统会从一个商品(或视频)候选项目集里选择一个优选的候选推荐给用户。
这样,如何从一个拥有海量元素的候选项目集中选出优选的项目成为了非常重要的问题,这并不是简单的面向固定指标的排序问题,因为用户的兴趣或者需求会随时间变化,该变化的规律因不同用户而异。而只有高精度地通过用户的反馈来评估用户的兴趣或者需求的变化,才能够向用户推荐优选候选项目。
因此,需要一种能够克服历史数据偏差,又能降低探索流量,并且能够高精度地反馈更新用户特征的变化的推荐方法。
发明内容
本公开要解决的一个技术问题是如何提供一种项目推荐方法,在节省在线探索流量的同时很好地克服历史数据偏差的缺陷。
为此,本发明将离线模型与在线探索相结合,充分利用历史数据训练模型,实时接收用户反馈来评估用户兴趣或者需求的变化,以向用户推荐优选的项目。
根据本公开的第一个方面,提供了一种项目推荐方法。该方法包括:获取使用模型为候选项目集中的候选项目得到的模型分数,确定第一分值;获取通过统计分析用户对候选项目集中的候选项目的反馈得到的第二分值;基于第一分值和第二分值得到第三分值;以及基于第三分值,从所述多个候选项目中选择中选项目。
可选地,所述确定第一分值的步骤可以包括:分别基于至少一个模型中每个模型为候选项目得到的模型分数,得到该候选项目的至少一个第四分值;以及基于所述至少一个第四分值确定第一分值。
可选地,基于所述至少一个第四分值确定第一分值的步骤可以包括:选择所述至少一个第四分值中的一个作为第一分值;或者通过对所述至少一个第四分值进行加权求和得到第一分值。
可选地,基于所述至少一个第四分值确定第一分值的步骤可以包括:选择多个第四分值中最大的一个作为第一分值。
可选地,第四分值可以是基于置信区间上界算法得到的;并且/或者第二分值可以是基于置信区间上界算法得到的。
可选地,第四分值可以是模型本轮次对候选项目的评分与模型评分置信区间半径之和,模型评分置信区间可以是基于包括本轮次评分在内的模型对候选项目的历来各轮次评分统计计算的。
可选地,第二分值可以是本轮次对候选项目多次推荐的平均收益与多次推荐收益的置信区间半径之和。
可选地,所述基于第一分值和第二分值得到第三分值的步骤可以包括:以第一分值和第二分值中较小的一个作为第三分值;或者通过对第一分值和第二分值进行加权求和得到第三分值。
可选地,该方法还可以包括:使用历史数据训练所述模型;以及/或者使用用户对候选项目集中的候选项目的反馈训练所述模型。
可选地,该方法还可以包括:从数据库中获取多个候选项目;以及在所述多个候选项目的数量大于阈值的情况下,对所述多个候选项目进行初步筛选,得到所述候选项目集。
可选地,在当前时刻之前预定时间段内,用户对候选项目集中的候选项目的反馈数量多于预定阈值的情况下,停止执行确定第一分值的步骤。
可选地,该方法还可以包括:响应于设置请求,设置预定时间段的长度和/或预定阈值。
可选地,该方法还可以包括:向当前要向其推送项目的用户推荐中选项目。
根据本公开的第二个方面,提供了一种闲置商品推荐方法,包括:获取使用模型为候选商品集中的候选商品得到的模型分数,确定第一分值;获取通过统计分析用户对候选商品集中的候选商品的反馈得到的第二分值;基于第一分值和第二分值得到第三分值;以及基于第三分值,从多个候选商品中选择中选商品;以及向当前要向其推送商品的用户推荐中选商品。
根据本公开的第三个方面,提供了一种视频推荐方法,包括:获取使用模型为候选视频集中的候选视频得到的模型分数,确定第一分值;获取通过统计分析用户对候选视频集中的候选视频的反馈得到的第二分值;基于第一分值和第二分值得到第三分值;以及基于第三分值,从多个候选视频中选择中选视频;以及向当前要向其推送视频的用户推荐中选视频。
根据本公开的第四个方面,提供了一种新闻推荐方法,包括:获取使用模型为候选新闻集中的候选新闻得到的模型分数,确定第一分值;获取通过统计分析用户对候选新闻集中的候选新闻的反馈得到的第二分值;基于第一分值和第二分值得到第三分值;以及基于第三分值,从多个候选新闻中选择中选新闻;以及向当前要向其推送新闻的用户推荐中选新闻。
根据本公开的第五个方面,提供了一种项目推荐装置,该装置包括:第一装置,用于获取使用模型为候选项目集中的候选项目得到的模型分数,确定第一分值;第二装置,用于获取通过统计分析用户对候选项目集中的候选项目的反馈得到的第二分值;第三装置,用于基于第一分值和第二分值得到第三分值;以及选择装置,用于基于第三分值,从所述多个候选项目中选择中选项目。
根据本公开的第六个方面,提供了一种项目推荐系统,该系统包括:离线模型模块,为候选项目集中的候选项目得到模型分数;反馈统计模块,统计分析用户对候选项目的反馈,得到该候选项目的第二分值;以及决策模块,基于模型分数得到该候选项目的第一分值,基于第一分值和第二分值得到第三分值,并基于第三分值从所述多个候选项目中选择中选项目,以用于向用户推荐。
可选地,该系统还可以包括:项目召回模块,用于从数据库中获取多个候选项目,在所述多个候选项目的数量大于阈值的情况下,对所述多个候选项目进行初步筛选,得到所述候选项目集;以及/或者项目推荐模块,用于向用户推荐项目;以及/或者反馈收集模块,用于收集用户对所推荐项目的反馈。
根据本公开的第七个方面,提供了一种项目推荐系统,包括服务器和多个客户端。其中,服务器向客户端推送候选项目集中的候选项目;客户端向服务器发送针对所述候选项目的反馈;服务器获取使用模型为候选项目集中的候选项目得到的模型分数,确定第一分值,获取通过统计分析来自客户端的对候选项目集中的候选项目的反馈得到的第二分值,基于第一分值和第二分值得到第三分值,并基于第三分值,从所述多个候选项目中选择中选项目,并向当前要向其推送项目的客户端推送所述中选项目。
根据本公开的第八个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一至第四方面所述的方法。
根据本公开的第九个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一至第四方面所述的方法。
由此,通过结合使用离线模型和在线探索,可以为用户推荐优选项目,降低探索流量,并且克服历史数据偏差的问题。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的一个实施例的一种装置项目推荐系统的示意性方框图。
图2示出了根据本公开的一个实施例的离线模型模块工作的示意性流程图。
图3示出了根据本公开的一个实施例的决策模块工作的示意性流程图。
图4示出了可用于实施本公开的决策方案的项目推荐装置的示意性框图。
图5示出了根据本发明一实施例的项目召回模块工作的示意性流程图。
图6示出了根据本发明一实施例的反馈收集模块工作的示意性流程图。
图7示出了根据本发明的一个实施例的一种项目推荐系统的实际效果图。
图8示出了根据本公开一实施例可用于实现项目推荐方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了根据本发明的一个实施例的一种项目推荐系统的示意性方框图。
如图1所示,在本实施例中,项目推荐系统可以包括离线模型模块110、反馈统计模块120和决策模块130。在一些实施例中,还可以包括项目召回模块140、项目推荐模块150、反馈收集模块160。
1、离线模型模块110
离线模型模块110可以用于为候选项目集中的候选项目得到模型分数。
图2示出了根据本公开的一个实施例的离线模型模块工作的示意性流程图。
参见图2,在步骤S210,训练模型。
此处,可以在系统上线运行前,根据用户历史数据对每一个离线模型m
在步骤S220,使用模型为多个候选项目输出各自的模型分数。
其中,多个候选项目可以来自项目召回模块140所提供的候选项目集。
具体来说,在当前时刻t下,针对每一个候选项目a,离线模型m
这里,离线模型评分和在线探索都可以视为逐个轮次来执行运算。时刻t也可以理解为运算轮次的序号。一般地,在序号(时刻)从1开始的情况下,当前时刻t的数值也是迄今为止总的运算轮次数。
在步骤S230,将模型分数
在步骤S240,判断是否有用户行为反馈。此处,可以在系统上线运行后,判断是否有用户行为反馈。
如果有反馈,进入步骤S250,每隔一段时间,离线模型模块110会将反馈收集模块160输出的新的用户反馈数据与用户历史数据合并成为新的训练集,重新训练模型。
如果没有反馈,则进入步骤S220,准备在适当时候进行下一次评分。
至此,离线模型模块110充分利用了历史数据训练的模型来对候选项目进行评分;同时,在上线运行后,使用用户反馈数据更新数据训练模型,减小历史数据偏差的影响。
2、反馈统计模块120
反馈统计模块120可以用于统计分析用户对候选项目的反馈,得到该候选项目的第二分值。
反馈统计模块120可以根据反馈收集模块160处理好的用户对候选项目的反馈数据进行统计及计算,得到该候选项目的第二分值,作为决策模块130的输入。
例如,系统在时刻t推荐一个候选项目a
具体来说,在当前时刻t,反馈统计模块120针对每一个候选项目a,可以得到截止到当前时刻t的推荐次数n
根据上述统计值,反馈统计模块120可以通过公式(1)计算得到该候选项目的第二分值
本轮次对候选项目多次推荐的平均收益为
此处,第二分值是基于置信区间上界算法得到的置信区间上界值,即第二分值是本轮次对候选项目多次推荐的平均收益与多轮次推荐收益的置信区间半径之和。
反馈统计模块120计算得到的第二分值,在决策模块130中会发挥很重要的作用,可以矫正离线模型模块110预测的第一分值因历史数据偏差而导致的问题,从而使得系统能够利用多种离线模型,即对离线模型的种类没有限制,并且保证系统最终能够收敛到优选候选项目。
反馈统计模块120还可以按照(2)和(3)公式更新相关统计值中的推荐次数和平均收益,并作为决策模块130的输入。
3、决策模块130
决策模块130可以基于模型分数得到该候选项目的第一分值,基于第一分值和第二分值得到第三分值,并基于第三分值从所述多个候选项目中选择中选项目(也可以称为“优选项目”),以用于向用户推荐项目。
图3示出了根据本公开的一个实施例的决策模块工作的示意性流程图。
图4示出了可用于实施本公开的决策方案的项目推荐装置的示意性框图。
在步骤S310,获取使用模型得到的多个候选项目各自的模型分数,确定第一分值。
例如,通过第一装置410,获取使用模型为候选项目集中的候选项目得到的模型分数
其中,多个候选项目可以来自项目召回模块140所提供的候选项目集。
可以首先分别基于每个模型为候选项目得到的模型得分计算候选项目的至少一个第四分值,然后基于第四分值得到第一分值。第四分值可以是基于置信区间上界算法得到的置信区间上界值。
在本实施例中,决策模块130可以根据从离线模型模块110获取的模型分数
为便于计算,平均模型分数
决策模块130还可以根据模型分数
为便于计算,也可以通过迭代公式(7),计算得到上述样本方差
进一步地,决策模块130还可以根据上述值,通过公式(8)计算得到第四分值
其中,
参数c
见公式(8),第四分值是模型本轮次对候选项目的评分均值与模型评分置信区间半径之和,即,第四分值可以是基于置信区间上界算法得到的置信区间上界值。模型评分置信区间半径是基于包括本轮次评分在内的模型对候选项目的所有轮次评分统计计算得到的。
决策模块130还可以从至少一个模型获得候选项目的至少一个第四分值,并基于所述至少一个第四分值确定第一分值。
例如,可以选择所述至少一个第四分值中的一个作为第一分值。或者,可以通过对所述至少一个第四分值进行加权求和得到第一分值。或者,还可以选择多个第四分值中最大的一个作为第一分值。
这里,决策模块130可以利用得到的模型分数进行探索;并且,在本部分中可以采用迭代公式计算样本均值与样本方差,来降低了计算复杂度。
上述计算第四分值以确定第一分值的步骤也可以在离线模型模块110中进行。
在步骤S320,例如通过第二装置420,获取通过统计分析用户对候选项目集中的候选项目的反馈得到的第二分值。其中,第二分值可以从反馈统计模块120处获取。应当理解,决策模块130也可以直接获取用户反馈,并按照上文中关于反馈统计模块120描述的方法计算得到第二分值。
在步骤S330,例如通过第三装置430,对每一个候选项目,基于第一分值和第二分值得到第三分值。
例如,基于第一分值和第二分值,可以使用公式(9)计算得到第三分值P
其中,
本公开中,在t时刻下,候选项目中某一项目a的第三分值P
这样,在离线模型部分,比较激进地将至少一个模型看作一个整体,取整体的最大值,而在第三分值的确定时倾向于保守,在离线在线相结合的情况下,能够使得整体算法收敛到优选的候选项目。
在步骤S340,例如通过选择装置440,基于第三分值,从所述多个候选项目中选择中选项目。
决策模块130可以根据每个候选项目的第三分值P
在步骤S350,向项目推荐模块150返回中选项目。
如图1所示,项目推荐系统还可以包括项目召回模块140、项目推荐模块150和反馈收集模块160。
4、项目召回模块140
项目召回模块140可以用于从数据库中获取多个候选项目,在所述多个候选项目的数量大于阈值的情况下,对所述多个候选项目进行初步筛选,得到所述候选项目集。
图5示出了根据本发明一实施例的项目召回模块140的示意性流程图。
在步骤S510,获取候选项目集。此处,可以从数据库中获取得到整个候选项目集。
在步骤S520,判断候选项目集的项目数量是否大于阈值。如果在阈值范围内,则进入步骤S540,直接将整个候选项目集传输给决策模块130以及离线模型模块110,进行评分。如果超过阈值,则进入步骤S530。
在步骤S530,对多个候选项目进行初步筛选,返回预估价值(或期望收益等排序依据)最高的k个(top-k个)候选项目作为候选项目集。初步筛选可以采用计算起来较为简单的价值预估模型对每个候选项目进行价值预估,根据预估结果,将排序最靠前的top-k个候选项目作为候选项目集,进入步骤S540,将候选项目集返回给决策模块130以及离线模型模块110。
在本公开中,项目召回模块140中的排序算法可以是任意简单排序算法,也可以依具体应用场景来设定排序算法。
项目召回模块140可以从数据库中获取得到候选项目集。如果候选项目集非常大,会进行一次初步筛选,以降低整个候选项目集的规模,从而减少决策模块130的计算耗时,达到提升项目推荐系统整体性能的目的。
并且在初步筛选阶段,可以利用计算起来较为简单的价值预估模型对每个候选项目进行价值预估,选取top-k个候选项目构成新的候选项目集。这样,既可以快速缩小候选项目集,减少决策模块130的计算耗时;又可以较好地保证推荐效果,从而提升项目推荐系统的整体性能。
5、项目推荐模块150
项目推荐模块150可以基于决策模块130所返回的至少一个中选项目,用于向用户推荐项目。
在一些实施例中,可以省略项目推荐模块150,而直接由决策模块130推荐中选项目。
6、反馈收集模块160
反馈收集模块160可以用于收集用户对所推荐项目的反馈,并将用户反馈数据提供给反馈统计模块120以进行统计分析。
反馈收集模块160还可以将用户反馈数据提供给离线模型模块110,以便更新数据,进一步对离线模型进行训练。
图6示出了根据本发明一实施例的反馈收集模块160的示意性流程图。
在步骤S610,从用户的终端设备处获取得到的反馈行为数据。
在步骤S620,对用户的反馈行为数据进行处理,得到用户反馈数据。
其中,反馈收集模块160可以将用户行为反馈解析成下游模块可以支持的数据格式。
其中,下游模块可以是离线模型模块110,格式解析完成的用户反馈数据可以作为历史数据供离线模型模块训练模型使用,以从根本上解决历史数据有偏差导致模型效果差的问题。
下游模块还可以是反馈统计模块120,格式解析完成的用户反馈数据还可以提供给反馈统计模块120以进行进一步的统计。
在步骤S630,将用户反馈数据发送到下游模块。
由此,可以实时收集用户的反馈行为,并且对用户反馈数据进行预处理,进而能够及时捕获用户兴趣或者需求的变化,达到较为精准的推荐效果。
上述各模块可以集成在同一平台的内部,也可以各自独立存在于多个平台,或者也可以部分模块集成在同一平台中,多平台合作组成项目推荐系统。
例如,项目召回模块110、反馈收集模块160可以与项目推荐模块150一起集成在项目推荐平台上。
反馈统计模块120可以也集成在项目推荐平台上,或者也可以与决策模块130一起集成在一个平台上。
决策模块130可以为第三方的项目推荐平台提供决策服务。
离线模型模块110可以与决策模块130在同一个平台上,也可以独立于决策模块130。决策模块130可以使用其它平台的离线模型模块110来获取模型评分。
本申请的技术方案能够利用离线模型来节约在线探索的流量,所以多用于非热门场景。
非热门场景,例如一些用户不常登录、不常浏览,或者商品销售不热门的应用场景,例如二手货等闲置商品销售之类应用。在这样的非热门场景中,可能商品(或项目)的库存有限,时常断货。销售行为属于偶发现象,发生的频率较小。
在一些非热门场景情形下,销售方和/或购买方,或者提供方和/或浏览访问方都不经常在线。
还有一些场景下,待推荐项目时常更新,例如新闻、小视频等,一些内容可能将来,或许很快,就会成为热门项目,但是在成为热门项目之前,会不断产生非热门项目。这样的内容更新频率高,针对新出现的内容的在先推荐反馈信息也较少。
在这些非热门或尚未成为热门的场景下,通过引入离线模型,可以节约在线探索的流量,改善向用户推荐项目时的用户体验。
例如,本申请的技术方案可以实现为一种闲置商品推荐方法。
这样,在图3的步骤S310,获取使用模型为候选商品集中的候选商品得到的模型分数,确定第一分值。
在步骤S320,获取通过统计分析用户对候选商品集中的候选商品的反馈得到的第二分值。
在步骤S330,基于第一分值和第二分值得到第三分值。
在步骤S340,基于第三分值,从多个候选商品中选择中选商品。
在步骤S350,向项目推荐模块返回中选模块,从而向当前要向其推送商品的用户推荐所述中选商品。
又例如,本申请的技术方案还可以实现为一种视频推荐方法。
这样,在图3的步骤S310,获取使用模型为候选视频集中的候选视频得到的模型分数,确定第一分值。
在步骤S320,获取通过统计分析用户对候选视频集中的候选视频的反馈得到的第二分值。
在步骤S330,基于第一分值和第二分值得到第三分值。
在步骤S340,基于第三分值,从多个候选视频中选择中选视频。
在步骤S350,向项目推荐模块返回中选模块,从而向当前要向其推送视频的用户推荐所述中选视频。
又例如,本申请的技术方案还可以实现为一种新闻推荐方法。
这样,在图3的步骤S310,获取使用模型为候选新闻集中的候选新闻得到的模型分数,确定第一分值。
在步骤S320,获取通过统计分析用户对候选新闻集中的候选新闻的反馈得到的第二分值。
在步骤S330,基于第一分值和第二分值得到第三分值。
在步骤S340,基于第三分值,从多个候选新闻中选择中选新闻。
在步骤S350,向项目推荐模块返回中选模块,从而向当前要向其推送新闻的用户推荐所述中选新闻。
另外,在一些情况下,可以仅在非热门情况下采用根据本申请的方案进行推荐,即借助离线模型来确定第一分值,从而结合基于离线模型得到的第一分值和在线统计分析得到的第二分值,得到第三分值,以选择中选项目。
具体说来,可以在当前时刻之前预定时间段内,用户对候选项目集中的候选项目的反馈数量多于预定阈值的情况下,视为该候选项目已不再是非热门项目,可以停止执行上述步骤S310中基于离散模型确定第一分值的步骤。
另外,还可以响应于来自用户或系统管理员或相关配置人员的设置请求,设置上述预定时间段的长度和/或上述预定阈值。
另外,热门场景下,本申请方案的效果也会优于一般统计方案。只是在非热门场景下,这种效果改进更加明显一些。
另外,本申请的项目推荐系统可以包括服务器和多个客户端。应当理解,这里服务器的功能也可以通过多个服务器配合来实现。
服务器可以执行本申请的项目推荐方法来选择中选项目,并向客户端推送中选项目。
具体说来,服务器可以向客户端推送候选项目集中的候选项目。这里的客户端,可以是多个接受服务器的项目推荐服务的客户端。
客户端向服务器发送针对所述候选项目的反馈。
服务器获取使用模型为候选项目集中的候选项目得到的模型分数,确定第一分值,获取通过统计分析来自客户端的对候选项目集中的候选项目的反馈得到的第二分值,基于第一分值和第二分值得到第三分值,并基于第三分值,从所述多个候选项目中选择中选项目,并向当前要向其推送项目的客户端推送所述中选项目。
当前要向其推送项目的客户端可以是前述多个接受服务器的项目推荐服务的客户端之一。
或者,当前要向其推送项目的客户端也可以是前述多个客户端中尚未向其推送该候选项目的客户端。
应用例
下面结合具体例子就项目推荐方法、装置及系统做进一步示例性说明。
在本实施例中,项目推荐系统可以应用于一种可进行商品推荐的交易平台服务系统,当买家访问该平台时,推荐系统可以从大量候选商品集中选取用户最感兴趣的商品进行推荐,从而促使买家购买该推荐商品,提升平台的整体成交转化率。
图7示出了根据本发明的一个实施例的一种项目推荐系统的示意性效果图。
在某平台中,基于本公开的上述系统所取得的实际效果如附图6所示。
其中,横坐标为当前商品推荐次数,纵坐标为用户累积商品点击量。UCB、LinUCB为现有推荐系统中使用的其它在线学习方法;MOO为基于本公开实施例所实现的推荐系统。
如图7所示,在2万次商品推荐中,本公开所提出的方案(下图中的MOO)比现有推荐方案在累积购买商品数上仍有约25%的提升。
相对于现有的推荐排序方法,在候选项目的价值预估阶段,本公开就能够充分利用历史数据训练的模型对每一个候选项目进行打分,并利用该模型分数来帮助探索,大大加快了推荐方法收敛的速度,从而保证累积收益最大化。本公开将离线模型和在线探索进行结合,解决了历史数据存在偏差的问题,大大降低探索流量,同时还能够实时捕捉用户兴趣或者需求的变化。
图8示出了根据本发明一实施例可用于实现上述项目推荐方法的计算设备的结构示意图。
参见图8,计算设备800包括存储器810和处理器820。
处理器820可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器820可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器820可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器810可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器820或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器810可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器810可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器810上存储有可执行代码,当可执行代码被处理器820处理时,可以使处理器820执行上文述及的项目推荐方法。
上文中已经参考附图详细描述了根据本发明的项目推荐方法、装置及系统。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在更好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
- 项目推荐系统、项目推荐装置以及项目推荐方法
- 项目推荐方法、项目推荐系统以及计算机可读介质