掌桥专利:专业的专利平台
掌桥专利
首页

一种项目推荐方法及相关设备

文献发布时间:2023-06-19 11:26:00


一种项目推荐方法及相关设备

技术领域

本申请涉及推荐领域,尤其涉及一种项目推荐方法及相关设备。

背景技术

随着互联网信息的数量和种类快速增长,用户通常需要花费大量时间精力才能找到自己偏好的内容,加重用户的信息浏览负担。个性化推荐系统是一种信息过滤系统,它可以根据用户画像或历史行为挖掘用户的兴趣爱好,从而预测用户对推荐项目的偏好或评分,从而有针对性地为用户推荐内容,以降低用户的信息负载。用户点击率(click-through-rate)是衡量推荐系统性能的重要指标,因此,点击率预测也成为了推荐系统领域的重要任务。目前,主流的个性化推荐系统通常利用部署在云端的机器学习模型进行推荐,需要将用户交互行为等隐私数据上传到云端,这会造成隐私泄露的隐患。

个性化推荐系统是一种信息过滤系统,它可以根据用户画像或历史行为挖掘用户的兴趣爱好,从而预测用户对推荐项目的偏好或评分,并有针对性地为用户推荐内容。目前主流的个性化推荐系统的点击率预测基于云端服务器,将推荐项目特征、用户特征、用户交互日志等信息输入到部署在云端的模型中。基于云端的点击率预测有泛化性能好、容易部署、支持绝大多数推荐算法等优点,但其存在如下缺陷:需要将用户交互行为等隐私数据上传到云端,这会造成隐私泄露的隐患。

发明内容

本申请提供了一种项目推荐方法及相关设备,可以减少了云端和终端设备之间的通信量,降低了终端设备的计算开销,且不涉及到用户的隐私数据。

本申请实施例第一方面提供了一种项目推荐方法,包括:

通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练,得到全局推荐模型;

将所述全局推荐模型发送至终端设备;

当目标用户产生交互行为时,根据所述全局推荐模型确定所述交互行为对应的目标项目表征;

将所述目标项目表征发送至所述终端设备,以使得所述终端设备根据所述目标项目表征对所述全局推荐模型进行更新得到目标推荐模型,并在接收到所述目标用户的推荐请求指令时,通过所述目标推荐模型确定所述目标用户的用户表征,并返回所述目标用户的用户表征;

根据所述目标用户的用户表征以及推荐项目表征库确定推荐结果,所述推荐项目表征库中存储有包括所述目标项目表征在内的多个项目表征;

将所述推荐结果发送至所述终端设备,以使得所述终端设备将所述推荐结果展示给所述目标用户。

本申请实施例第二方面提供了一种项目推荐方法,包括:

获取云端服务器发送的全局推荐模型,所述全局推荐模型为所述云端服务器通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练得到的;

当目标用户产生交互行为时,从所述云端服务器获取所述交互行为对应的目标项目表征,所述目标项目表征为所述云端服务器根据所述全局推荐模型确定的;

通过所述目标项目表征对所述全局推荐模型进行更新,得到目标推荐模型;

当接收到所述目标用户的推荐请求指令时,基于所述目标推荐模型输出所述目标用户的用户表征;

将所述用户表征发送至所述云端服务器,以使得所述云端服务器根据所述用户表征以及推荐项目表征库确定推荐结果,并返回所述推荐结果,所述推荐项目表征库中存储有包括所述目标项目表征在内的多个项目表征;

展示所述推荐结果。

本申请第三方面提供了一种服务器,包括:

模型训练单元,用于通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练,得到全局推荐模型;

收发单元,用于将所述全局推荐模型发送至终端设备;

第一确定单元,用于当目标用户产生交互行为时,根据所述全局推荐模型确定所述交互行为对应的目标项目表征;

所述收发单元,还用于将所述目标项目表征发送至所述终端设备,以使得所述终端设备根据所述目标项目表征对所述全局推荐模型进行更新得到目标推荐模型,并在接收到所述目标用户的推荐请求指令时,通过所述目标推荐模型确定所述目标用户的用户表征,并返回所述目标用户的用户表征;

第二确定单元,用于根据所述目标用户的用户表征以及推荐项目表征库确定推荐结果,所述推荐项目表征库中存储有包括所述目标项目表征在内的多个项目表征;

所述收发单元,还用于将所述推荐结果发送至所述终端设备,以使得所述终端设备将所述推荐结果展示给所述目标用户。

本申请第四方面提供了一种终端设备,包括:

获取单元,用于获取云端服务器发送的全局推荐模型,所述全局推荐模型为所述云端服务器通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练得到的;

所述获取单元,还用于当目标用户产生交互行为时,从所述云端服务器获取所述交互行为对应的目标项目表征,所述目标项目表征为所述云端服务器根据所述全局推荐模型确定的;

更新单元,用于通过所述目标项目表征对所述全局推荐模型进行更新,得到目标推荐模型;

确定单元,用于当接收到所述目标用户的推荐请求指令时,基于所述目标推荐模型输出所述目标用户的用户表征;

收发单元,用于将所述用户表征发送至所述云端服务器,以使得所述云端服务器根据所述用户表征以及推荐项目表征库确定推荐结果,并返回所述推荐结果,所述推荐项目表征库中存储有包括所述目标项目表征在内的多个项目表征;

展示单元,用于展示所述推荐结果。

本申请第五方面提供了一种计算机装置,其包括至少一个连接的处理器和存储器,其中,所述存储器用于存储程序代码,所述程序代码由所述处理器加载并执行以实现上述各方面所述的项目推荐方法的步骤。

本申请实施例第六方面提供了一种机器可读介质,其包括指令,当其在机器上运行时,使得机器执行上述各方面所述的项目推荐方法的步骤。

综上所述,可以看出,本申请提供的实施例中,云端服务器利用已经存在公共的用户交互数据训练全局推荐模型,并将该全局推荐模型发送至终端设备,以使得终端利用全局推荐模型和实时产生的用户交互数据,为每个用户维护和训练一个个性化目标推荐模型,得到用户表征,并将用户表征返回至云端服务器,之后根据项目表征以及推荐项目表征库确定推荐结果,完成项目推荐。由此,本申请中通过动态调整神经网络稀疏率的策略以及稀疏编码的方式训练得到的全局模型,从而在推荐准确率同现有基于云的模型相当的前提下,减少了云端和终端设备之间的通信量,降低了终端设备的计算开销,且训练所用到的数据为公共的用户交互数据,不涉及到用户的隐私数据,不会造成用户隐私泄露的隐患。

附图说明

结合附图并参考以下具体实施方式,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。

图1为本申请实施例提供的项目推荐方法的一个流程示意图;

图2为本申请实施例提供的全局推荐模型的结构示意图;

图3为本申请实施例提供的全局推荐模型训练过程中的会话并行的最小批次的示意图;

图4为本申请实施例提供的项目推荐方法的另一流程示意图;

图5为本申请实施例提供的项目推荐方法的另一流程示意图;

图6为本申请实施例提供的云端服务器的虚拟结构示意图;

图7为本申请实施例提供的终端设备的虚拟结构示意图;

图8为本请实施例提供的机器可读介质的结构示意图;

图9为本申请实施例提供的服务器的硬件结构示意图;

图10为本申请实施例提供的终端设备的硬件结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。

本申请中使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

目前主流的个性化推荐系统的点击率预测基于云端服务器,将推荐项目特征、用户特征以及用户交互日志等信息输入到部署在云端服务器的模型中。基于云端服务器的点击率预测有泛化性能好、容易部署以及支持绝大多数推荐算法等优点,但是需要将用户交互行为等隐私数据上传到云端服务器,这会造成隐私泄露的隐患。目前,出于隐私保护等方面的考虑,学术界和产业界越来越多地关注直接在终端设备上运行机器学习模型,如Google推出的TensorFlow Lite和TensorFlow.js支持在移动设备和浏览器上运行深度学习模型。然而,现有终端的机器学习的工作主要面向图像处理以及自然语言处理等任务,优化模型的运行性能,尚未在推荐系统的点击率预测方面开展研究。

有鉴于此,本申请实施例提供了一种基于云端和终端协同式深度学习的点击率预测方法,并面向终端设备进行了实现。基于云端和终端协同式深度学习的点击率预测方法的运行流程如下:在用户首次访问时,在云端,利用已经存在的用户交互记录预训练全局推荐模型,并把该全局推荐模型下载到终端设备;在用户交互时,在终端设备利用实时更新的用户交互记录,对预训练的全局推荐模型进行微调(fine tuning),得到个性化的推荐模型和用户表征;在用户请求推荐时,通过终端设备将用户表征推送到云端,根据用户表征和项目表征确定推荐结果,并返回终端设备进行展示。

本设备将用户与基于云端和终端协同式深度学习的点击率预测方法之间的交互分为三阶段:用户首次访问(第一阶段)、用户产生交互(第二阶段)和用户请求推荐内容(第三阶段)。其中,第一阶段对于每个用户而言只需进行一次,第二阶段在用户每次产生一定量的交互记录后便运行一次,第三阶段在用户每次请求推荐时运行一次。第二阶段依赖于第一阶段下载的全局推荐模型,第三阶段依赖于第二阶段提取的用户表征。

在用户首次访问时:在云端,利用已经存在的用户交互记录(不涉及用户隐私)预训练随机初始化的推荐模型,得到全局推荐模型。在终端设备,下载全局推荐模型。

在用户产生交互记录时,在终端设备,请求访问内容的同时,从云端下载访问对应的项目表征,用于训练(微调)预训练过的全局推荐模型,得到个性化的目标推荐模型,根据目标推荐模型的确定用户表征。

在用户请求推荐内容时:在终端设备上传最近更新的用户表征,接收云端服务器发送的推荐结果。在云端,根据用户表征以及推荐项目表征确定推荐结果。

综上所述,可以看出,云端利用已经存在的用户点击数据训练全局模型,终端利用全局模型和实时产生的用户点击数据,为每个用户维护和训练个性化模型,得到用户表征。最终,通过终端将用户表征推送到云端,由云端根据用户表征以及项目表征得到推荐结果。本申请采用循环神经网络抽取用户交互日志中的时序信息来训练用户表征,通过基于AGP算法(Automated Gradual Pruner)的权重剪枝进行模型压缩,并通过Lasso算法对用户表征进行压缩,从而在保证推荐准确率的同时,减少了云端和终端设备之间的通信量,降低了终端设备的计算开销。

下面从云端服务器的角度本申请提供的项目推荐方法进行说明,请参阅图1,图1为本申请实施例提供的项目推荐方法的一个流程示意图,包括:

101、通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练,得到全局推荐模型。

本实施例中,云端服务器可以获取公共的用户交互数据,并通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练,得到全局推荐模型。可以理解的是该公共的用户交互数据不包含用户的隐私数据,即脱敏后的用户交互数据。

需要说明的是,主流推荐系统平台收集的用户数据往往是时序数据,而传统的基于内容的推荐算法和协同过滤算法在刻画时序数据时存在明显的缺陷:每个推荐项目相互独立,不能建模一段时间内用户对内容的连续偏好信息。传统项目到项目(item-to-item)的推荐算法,例如K-近邻算法,利用推荐项目之间的相似性推荐下一个项目,但它只利用了最后一次访问的项目的特征,没有完整地考虑到整个交互会话中的时序信息。另一种传统的时序推荐算法是基于马尔可夫决策过程刻画序列信息,通过状态转移概率预测下一次点击的概率,但由于推荐系统中的项目往往是海量的,会导致状态数量爆炸,随推荐项目维数指数增加。本申请采用一种循环神经网络的变种,门控循环单元(GRU),建模一次会话过程中用户的行为特征,进而提取用户表征,作为部署在客户端的个性化的推荐模型。

请参阅图2,图2为本申请实施例提供的全局推荐模型的结构示意图,如图2所示,全局推荐模型包括输入层201、嵌入层202、GRU神经单元层203、稀疏化层204、全连接层205以及输出层206,其中,该输入层201的输入为一段会话中的项目(如商品)序列,在嵌入层202将项目标识转化为低维稠密表征,在GRU神经元层203挖掘序列信息,将最后一个项目对应的GRU输出作为用户表征输出,其含义为GRU网络预测的每一个项目是下一个项目的概率。若使用多个GRU层,那么下一层GRU的输入是上一层GRU的隐含状态。在稀疏化层204对用户的表征通过稀疏编码的方式保留用户表征中的主要信息,最后经过全连接层205以及输出层206,输出项目的推荐分数。

下面对全局推荐模型的训练流程进行详细说明:

步骤1、获取公共的用户交互数据。

本实施例中,云端服务器可以首先获取公共的用户交互数据,此处具体不限定获取公共的用户交互数据的方式。

步骤2、对公共的用户交互数据进行预处理,得到训练样本集合。

本实施例中,云端服务器在得到公共的用户交互数据之后,可以对公共的用户交互数据进行预处理,得到训练样本数据。此处的预处理包括但不限于数据清洗以及归一化处理等处理方式。

需要说明的是,标准的自然语言处理任务中,往往将序列截断或填充成相同长度的子序列,再把一批子序列输入到模型中进行批训练。但在推荐项目的场景下,由于输入输出都对应真实的项目,进行简单地截断或填充都不合适,故可以采用会话并行的最小批量方法。也就是说,会首先对用户交互数据进行预处理,并将预处理后的公共的用户交互数据采用会话并行的最小批量方法得到训练样本。下面结合图3进行说明,请参阅图3,图3为本申请实施例提供的会话并行的最小批次的示意图:

此处以N次会话的序列作为一个批次(图3中以N=3为例进行说明,当然也还可以是其他的数值,具体不做限定),则选出每个会话的第一个项目共N个项目作为第一个输入GRU的批次,如图3中的Session1、Session2以及Session3作为第一个批次(也即第一个训练样本),选用Session1中的第一个项目i

需要说明的是,主流推荐系统包含的推荐项目都是海量的,数据集中用户点击的项目为正样本,那么其他项目均为负样本,显然,在训练GRU时,不能对全部负样本进行打分,而是需要对负样本进行合理的采样。一个基线的取样方法是随机取样,即假设用户没有点击某个项目是因为他没有发现这个项目,但同样存在用户因为不喜欢这个项目而故意不去点击它的可能。为了减小这种违背取样假设的可能性,可以采用按项目流行度采样,即负样本采样概率与其流行度成正比,也就是说,用户可能因为没看到该商品(而不是对该商品不感兴趣)而不点击该商品,这样就违背了取样假设。然而,商品越流行,用户没看到该商品的概率越小,因此就越有可能因为对商品不感兴趣而没有点击商品。因此可以通过流行度取样负样本,一个商品越流行,用户因不感兴趣而没有点击的置信度就越高。因此可以通过采样概率与流行度成正比来进行负样本取样。本申请中将一次训练批次中的其他项目(也即同一个批次中用户没有点击的项目)作为负样本,这样做由于没有单独的采样步骤,节省计算时间;实现方便,便于矩阵加速;同时该方法也符合基于流行度采样,因为下一个产品是同一个批次中其他项目的概率正比于它的流行度。

步骤3、通过动态调整模型稀疏率的策略以及稀疏编码的方式对训练样本集合中的样板进行迭代训练。

本实施例中,云端服务器在得到训练样本集合之后,可以通过动态调整模型稀疏率的策略以及稀疏编码的方式对训练样本集合中的样本进行迭代训练。本申请中,通过基于AGP算法(Automated Gradual Pruner)的权重剪枝进行模型压缩,实现动态调整模型稀疏率的策略,该AGP算法时一种动态调整模型稀疏率(模型权重中设置为0的比例)的策略,在时间t下的稀疏度s

其中,s

另外,由于终端设备的带宽有限,终端设备与云端服务器之间不能进行大规模的数据通信,同时要避免因降低通信量导致的推荐系统准确率下降。本申请中可以通过稀疏编码(sparse encoding)的方式来保留用户表征中的主要信息,通过Lasso算法对用户表征进行稀疏化,最终实现用户表征的压缩。

步骤4、调整损失函数,直至达到预置的迭代终止条件,得到全局推荐模型。

本实施例中,云端服务器可以首先确定用户排序的损失函数,之后在全局推荐模型的训练过程中调整损失函数,直至达到预置的迭代终止条件,得到全局推荐模型。

下面对本申请中用到的损失函数进行说明:

常见的排序问题的损失函数有基于点的(pointwise)、基于对的(pairwise)和基于列表的(listwise)。基于点的方法为每个项目独立打分,并保证相关项目的得分尽量高。基于对的方法需要对比正负样本的排名,并保证正样本的得分高于负样本。基于列表的方法将全部项目的得分和正确排序的列表进行对比,并保证全部正样本的得分高于负样本。由于基于列表的排序方法涉及排序,其计算复杂性更高,且由于本申请的应用场景下只存在一个正样本,基于列表的方法会退化为基于对的方法,因此本申请中只通过基于点的排序损失函数和基于对的排序损失函数来对训练样本进行训练;下面对两种损失函数进行说明:

基于点的排序损失函数为交叉熵函数(Cross Entropy Loss);

其中,正样本为1,负样本为0,y表示当前样本的真是标签,

给基于对的排序损失函数包括两个,下面进行说明:

(Bayesian Personalized Ranking,BPR);

其中,N

TOP1:

其中,L

还需要说明的是,为了解决终端设备上处理用户数据的过程不能占用过多的计算资源,本申请使用1层100个隐藏单元的GRU网络作为推荐模型,这样保证了即使只使用单层GRU网络,由于限制GRU隐藏状态维数远小于输入层维数,GRU仍然能够胜任挖掘用户访问历史中的时序信息、提取用户表征的任务,并达到接近包含更多层或更多隐藏单元的GRU网络的推荐准确率。

另外,由于终端设备的带宽有限,终端设备与云端服务器之间不能进行大规模的数据通信,同时要避免因降低通信量导致的推荐系统准确率下降,且由于全局推荐模型也会发送至终端设备进行使用,因此,在对全局推荐模型进行训练的过程中,还需要解决因为终端设备带宽有限带来的问题。本申请中,云端服务器可以通过稀疏编码(sparseencoding)的方式来保留用户表征中的主要信息;具体的,云端服务器通过Lasso算法对用户表征进行稀疏化,最终实现用户表征的压缩,可以理解的是,Lasso算法会额外引入4个超参数来最终完成对用户表征进行稀疏化的处理,分别是:用于用户表征的阈值γ,Lasso惩罚项系数λ

首先对Lasso算法进行说明:

0范数:向量中非零元素的个数:

1范数:向量中元素的绝对值之和:

2范数:向量中元素的平方和再开方;

p范数:向量中元素绝对值的p次方和的1/p次幂:

在线性回归的最小均方误差损失函数添加2-范数正则化项就得到岭回归:

Lasso算法:在岭回归中,对参数w做2-范数约束,相当于把解约束在一个L2-球里面,因此w的每一维都在以同一个系数进行放缩,不会产生稀疏的解(某些维度是0的解)。而在模型压缩和参数压缩领域,稀疏的解可以降低模型规模,同时减少冗余和过拟合,提高预测模型的准确率和鲁棒性。

Lasso算法通过1-范数达到稀疏的效果,是0-范数的最优凸近似:

其次,为了将输出的表征进行稀疏化,可以通过在上述的损失函数中增加Lasso阈值γ以及Lasso惩罚项来实现,下面进行说明:

在推荐模型的输出层,利用Lasso分组最小角回归算法对用户表征进行稀疏化:首先,在GRU的输出层,用lasso阈值γ对用户表征进行截断,用户表征中只有大小超过阈值的维才会保留

然后,在损失函数中加入Lasso惩罚项,限制用户表征的大小和稠密度:

也就是说,将Lasso惩罚项λ

这样,就保证了,在实际应用的过程中,通过全局推荐模型得到的用户表征属于稀疏的用户表征。

102、将全局推荐模型发送至终端设备。

本实施例中,云端服务器在将全局推荐模型训练完成之后,可以将该全局推荐模型发送至终端设备。

103、当目标用户产生交互行为时,根据全局推荐模型确定交互行为对应的目标项目表征。

本实施例中,当目标用户产生交互记录时,云端服务器可以根据该全局推荐模型确定交互行为对应的目标项目表征,该用户产生交互行为指的是用户对商品产生浏览、点击、收藏、加购物车和/或下单等交互行为。可以理解的是,为了降低推荐所需的时间,云端服务器首先通过过滤模型按照目标用户的兴趣和商品流行度对商品全集进行初步筛选,得到推荐项目候选集,之后将推荐项目候选集输入到训练好的全局推荐模型确定交互行为对应的目标项目表征。

需要说明的是,云端服务器通过步骤102可以将全局推荐模型发送至终端设备,通过步骤103可以在目标用户产生交互行为时,根据全局推荐模型确定交互行为对应的目标项目表征,然而这两个步骤之间并没有先后执行顺序的限制,可以先执行步骤102,也可以先执行步骤103,或者同时执行,具体不做限定。

104、将目标项目表征发送至终端设备,以使得终端设备根据目标项目表征对全局推荐模型进行更新得到目标推荐模型,并在接收到目标用户的推荐请求指令时,通过目标推荐模型确定目标用户的用户表征,并返回目标用户的用户表征。

需要说明的是,此处具体不限定云端服务器确定目标项目表征的时机,例如可以是终端设备在确定目标用户产生交互行为时,发送请求获取该交互行为对应的目标项目表征,也可以是云端服务器在确定该目标用户产生交互行为时,直接通过全局推荐模型确定交互行为对应的目标项目表征,并将该目标项目表征发送至终端设备。

105、根据目标用户的用户表征以及推荐项目表征库确定推荐结果。

本实施例中,云端服务器在接收到终端设备返回的目标用户的用户表征之后,可以根据该目标用户的用户表征以及推荐项目表征库确定该目标用户的推荐结果,其中,该推荐项目表征库中存储有包含目标项目表征在内的多个项目表征,该推荐项目表征库为过滤模型对全局项目进行过滤后的推荐项目候选集对应的项目表征库。也就是说,云端服务器可以将目标用户的用户表征与推荐项目表征库中的项目表征进行点积操作,得到操作结果集合,之后计算操作结果集合中的各个操作集合的排序分数,并将该操作结果集合中排序分数大于预设值的N个操作结果确定为推荐结果,其中,该N为大于或等于1的正整数。

106、将推荐结果发送至终端设备,以使得终端设备将推荐结果展示给目标用户。

本实施例中,云端服务器在确定推荐结果之后,可以将该推荐结果发送至终端设备,终端设备可以将该推荐结果展示给目标用户查看,完成推荐。

综上所述,可以看出,本申请提供的实施例中,云端服务器利用已经存在公共的用户交互数据训练全局推荐模型,并将该全局推荐模型发送至终端设备,以使得终端利用全局推荐模型和实时产生的用户交互数据,为每个用户维护和训练一个个性化目标推荐模型,得到用户表征,并将用户表征返回至云端服务器,之后根据项目表征以及推荐项目表征库确定推荐结果,完成项目推荐。由此,本申请中通过动态调整神经网络稀疏率的策略以及稀疏编码的方式训练得到的全局模型,从而在推荐准确率同现有基于云的模型相当的前提下,减少了云端和终端设备之间的通信量,降低了终端设备的计算开销,且训练所用到的数据为公共的用户交互数据,不涉及到用户的隐私数据,不会造成用户隐私泄露的隐患。

下面从终端设备的角度对本申请实施例提供的项目推荐方法进行说明,请参阅图4、图4为本申请实施例提供的项目推荐方法的另一流程示意图,包括:

401、获取云端服务器发送的全局推荐模型。

本实施例中,终端设备可以获取到该云端服务器发送的全局推荐模型,此处具体不限定获取的方式,例如可以是云端服务器训练完成之后即将该全局推荐模型发送至终端设备,也可以该终端设备自行发送请求获取;可以理解的是,该全局推荐模型为云端服务器通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练得到的。上面图1的步骤101中已经对全局推荐模型的训练流程进行详细说明,具体此处不在赘述。

402、当目标用户产生交互行为时,从云端服务器获取交互行为对应的项目表征。

本实施例中,终端设备在目标用户产生交互行为时,请求访问内容的同时,可以从云端服务器下载访问的项目对应的目标项目表征,该目标项目表征为云端服务器根据全局推荐模型确定的。

需要说明的是,终端设备通过步骤401可以获取全局推荐模型,通过步骤402可以获取项目表征,然而这两个步骤之间并没有先后执行顺序的限制,可以先执行步骤401,也可以先执行步骤402,或者同时执行,具体不做限定。

403、通过目标项目表征对全局推荐模型进行更新,得到目标推荐模型。

本实施例中,终端设备在得到该目标项目表征以及全局推荐模型之后,可以根据该目标项目表征对该全局推荐模型进行更新,得到个性化的全局推荐模型。

404、当接收到目标用户的推荐请求指令时,基于目标推荐模型输出目标用户的用户表征。

本实施例中,终端设备在接收到目标用户的推荐请求指令时,基于目标推荐模型输出目标用户的用户表征。

405、将用户表征发送至云端服务器,以使得云端服务器根据用户表征以及推荐项目表征库确定推荐结果,并返回推荐结果。

本实施例中,终端设备在根据目标推荐模型输出目标用户的用户表征之后,可以将该用户表征发送至云端服务器,以使得云端服务器根据该用户表征以及推荐项目表征库确定推荐结果,并返回该推荐结果,其中,该推荐项目表征库中存储有包括目标项目表征在内的多个项目表征。

406、展示推荐结果。

本实施例中,终端设备在得到推荐结果之后,可以将该推荐结果展示给用户查看,当然在展示的同时,还可以提示用户,例如发出声音提示,具体不限定。

综上所述,可以看出,本申请提供的实施例中,终端设备从云端服务器获取其利用已经存在公共的用户交互数据训练全局推荐模型,终端设备根据该全局推荐模型以及实时产生的用户交互数据,为每个用户维护和训练一个个性化目标推荐模型,得到用户表征,并将用户表征返回至云端服务器,以使得该云端服务器根据项目表征以及推荐项目表征库确定推荐结果,并返回该推荐结果,完成项目推荐。由此,本申请中通过动态调整神经网络稀疏率的策略以及稀疏编码的方式训练得到的全局模型,从而在推荐准确率同现有基于云的模型相当的前提下,减少了云端和终端设备之间的通信量,降低了终端设备的计算开销,且训练所用到的数据为公共的用户交互数据,不涉及到用户的隐私数据,不会造成用户隐私泄露的隐患。

上面从云端服务器和终端设备的角度分别对本申请提供的项目推荐方法的进行说明,下面从云端服务器和终端设备交互的角度对本申请提供的项目推荐方法进行说明。

请参阅图5,图5为本申请实施例提供的项目推荐方法的另一流程示意图,包括:

501、云端服务器通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练,得到全局推荐模型。

502、云端服务器将全局推荐模型发送至终端设备。

503、当目标用户产生交互行为时,云端服务器根据全局推荐模型确定交互行为对应的目标项目表征。

可以理解的是,此处步骤501至步骤503与上述图1中的步骤101至步骤103类似,上述图1中已经进行了详细说明,具体此处不再赘述。

504、终端设备通过目标项目表征对全局推荐模型进行更新,得到目标推荐模型。

505、终端设备根据目标推荐模型确定目标用户的用户表征,并返回用户表征至云端服务器。

可以理解的是,此处步骤504至步骤505与图4中的步骤403至步骤405类似,上述图4中已经进行了详细说明,具体此处不再赘述。

506、云端服务器根据用户表征以及推荐项目表征库确定推荐结果,并返回推荐结果至终端设备。

可以理解的是,此处的步骤506与图1中的步骤105类似,上述图1中已经进行了详细说明,具体此处不再赘述。

507、终端设备展示推荐结果。

综上所述,可以看出,本申请提供的实施例中,云端服务器利用已经存在公共的用户交互数据训练全局推荐模型,并将该全局推荐模型发送至终端设备,终端利用全局推荐模型和实时产生的用户交互数据,为每个用户维护和训练一个个性化目标推荐模型,得到用户表征,并将用户表征返回至云端服务器,云端服务器根据项目表征以及推荐项目表征库确定推荐结果,并返回推荐结果至终端设备,完成项目推荐。由此,本申请中通过动态调整神经网络稀疏率的策略以及稀疏编码的方式训练得到的全局模型,从而在推荐准确率同现有基于云的模型相当的前提下,减少了云端和终端设备之间的通信量,降低了终端设备的计算开销,且训练所用到的数据为公共的用户交互数据,不涉及到用户的隐私数据,不会造成用户隐私泄露的隐患。

可以理解的是,附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本申请实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。

应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。

另外,本申请还可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

上面从的项目推荐方法的角度对本申请进行说明,下面从云端服务器的角度对本申请进行说明。

请参阅图6,图6为本申请实施例提供的一种云端服务器的虚拟结构示意图,该云端服务器600包括:

模型训练单元601,用于通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练,得到全局推荐模型;

收发单元602,用于将所述全局推荐模型发送至终端设备;

第一确定单元603,用于当目标用户产生交互行为时,根据所述全局推荐模型确定所述交互行为对应的目标项目表征;

所述收发单元602,还用于将所述目标项目表征发送至所述终端设备,以使得所述终端设备根据所述目标项目表征对所述全局推荐模型进行更新得到目标推荐模型,并在接收到所述目标用户的推荐请求指令时,通过所述目标推荐模型确定所述目标用户的用户表征,并返回所述目标用户的用户表征;

第二确定单元604,用于根据所述目标用户的用户表征以及推荐项目表征库确定推荐结果,所述推荐项目表征库中存储有包括所述目标项目表征在内的多个项目表征;

所述收发单元602,还用于将所述推荐结果发送至所述终端设备,以使得所述终端设备将所述推荐结果展示给所述目标用户。

一种可能的实现方式中,所述模型训练单元601具体用于:

获取所述公共的用户交互数据;

对所述公共的用户交互数据进行预处理,得到训练样本集合;

通过动态调整模型稀疏率的策略以及稀疏编码的方式对所述训练样本集合中的样本进行迭代训练;

调整损失函数,直至达到预置的迭代终止条件,得到所述全局推荐模型。

一种可能的实现方式中,所述模型训练单元601通过动态调整模型稀疏率的策略以及稀疏编码的方式对所述训练样本集合中的样本进行迭代训练包括:

通过如下公式实现动态调整模型稀疏率的策略,以对所述训练样本集合中的样本进行迭代训练:

其中,s

一种可能的实现方式中,所述模型训练单元601通过动态调整模型稀疏率的策略以及稀疏编码的方式对所述训练样本集合中的样本进行迭代训练包括:

基于加入截断阈值的输出层以及加入惩罚项的损失函数对所述训练样本集合中的样本进行迭代训练。

一种可能的实现方式中,所述模型训练单元601对所述公共的用户交互数据进行预处理,得到训练样本集合包括:

将N个会话中每个会话的第一个项目确定为所述训练样本集合中的第一个训练样本,所述N个会话与所述公共的用户交互数据相对应;

将所述每个会话中的第二个项目确定为所述训练样本集合中的第二个训练样本;

当所述N个会话中存在项目结束的目标会话时,从所述公共的用户交互数据中随机选取一个目标会话替代所述目标会话,得到所述训练样本集合。

一种可能的实现方式中,所述第二确定单元604具体用于:

将所述目标用户的用户表征以及所述推荐项目表征库中的项目表征进行点积操作,得到操作结果集合;

将所述操作结果集合中排序分数大于预设值的N个操作结果确定为所述推荐结果,其中,N为大于或等于1的正整数。

综上所述,可以看出,本申请提供的实施例中,云端服务器利用已经存在公共的用户交互数据训练全局推荐模型,并将该全局推荐模型发送至终端设备,以使得终端利用全局推荐模型和实时产生的用户交互数据,为每个用户维护和训练一个个性化目标推荐模型,得到用户表征,并将用户表征返回至云端服务器,之后根据项目表征以及推荐项目表征库确定推荐结果,完成项目推荐。由此,本申请中通过动态调整神经网络稀疏率的策略以及稀疏编码的方式训练得到的全局模型,从而在推荐准确率同现有基于云的模型相当的前提下,减少了云端和终端设备之间的通信量,降低了终端设备的计算开销,且训练所用到的数据为公共的用户交互数据,并不涉及到用户的隐私数据,也就避免了造成用户隐私泄露的隐患。

请参阅图7,图7为本申请实施例提供的终端设备的虚拟结构示意图,该终端设备700包括:

获取单元701,用于获取云端服务器发送的全局推荐模型,所述全局推荐模型为所述云端服务器通过动态调整神经网络稀疏率的策略以及稀疏编码的方式对公共的用户交互数据进行模型训练得到的;

所述获取单元701,还用于当目标用户产生交互行为时,从所述云端服务器获取所述交互行为对应的目标项目表征,所述目标项目表征为所述云端服务器根据所述全局推荐模型确定的;

更新单元702,用于通过所述目标项目表征对所述全局推荐模型进行更新,得到目标推荐模型;

确定单元703,用于当接收到所述目标用户的推荐请求指令时,基于所述目标推荐模型输出所述目标用户的用户表征;

收发单元704,用于将所述用户表征发送至所述云端服务器,以使得所述云端服务器根据所述用户表征以及推荐项目表征库确定推荐结果,并返回所述推荐结果,所述推荐项目表征库中存储有包括所述目标项目表征在内的多个项目表征;

展示单元705,用于展示所述推荐结果。

综上所述,可以看出,本申请提供的实施例中,终端设备从云端服务器获取其利用已经存在公共的用户交互数据训练全局推荐模型,终端设备根据该全局推荐模型以及实时产生的用户交互数据,为每个用户维护和训练一个个性化目标推荐模型,得到用户表征,并将用户表征返回至云端服务器,以使得该云端服务器根据项目表征以及推荐项目表征库确定推荐结果,并返回该推荐结果,完成项目推荐。由此,本申请中通过动态调整神经网络稀疏率的策略以及稀疏编码的方式训练得到的全局模型,从而在推荐准确率同现有基于云的模型相当的前提下,减少了云端和终端设备之间的通信量,降低了终端设备的计算开销,且训练所用到的数据为公共的用户交互数据,并不涉及到用户的隐私数据,也就避免了造成用户隐私泄露的隐患。

需要说明的是,描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取目标用户的证件信息的单元”。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

请参阅图8,图8为本申请实施例提供的一种机器可读介质的实施例示意图。

如图8所示,本实施例提供了一种机器可读介质800,其上存储有计算机程序811,该计算机程序811被处理器执行时实现上述图1、图4以及图5中所述项目推荐方法的步骤。

需要说明的是,本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

需要说明的是,本申请上述的机器可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

请参阅图9,图9是本申请实施例提供的一种服务器的硬件结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序940或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。

服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述实施例中由云端服务器所执行的步骤可以基于该图9所示的服务器结构。

本申请实施例还提供了另一种终端设备,如图10所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端设备为手机为例:

图10示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图10,手机包括:射频(Radio Frequency,RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图10对手机的各个构成部件进行具体的介绍:

RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。

存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。

WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。

手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本申请实施例中,上述由终端设备所执行的操作可以基于该终端所包括的处理器1080来执行。

还需要说明的,根据本申请的实施例,上述图1、图4以及图5中的流程示意图描述的所述项目推荐方法的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行上述图1、图4以及图5的流程示意图中所示的方法的程序代码。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 一种项目推荐方法及相关设备
  • 一种基于混合神经网络的项目推荐模型的构建方法及装置、项目推荐方法
技术分类

06120112923058