物品推荐方法、装置、计算机设备及存储介质
文献发布时间:2023-06-19 18:25:54
技术领域
本发明涉及人工智能的技术领域,尤其揭露了一种物品推荐方法、装置、计算机设备及存储介质。
背景技术
在产品推荐中,现有的推荐算法较多,其中,基于ItemCF算法推荐则是非常经典的协同过滤算法,其的实现步骤主要包括两个过程:1、计算物品之间的相似度;2、根据物品的相似度和用户的历史行为给用户生成推荐列表;而上述现有的ItemCF算法存在不足之处,包括:在第一个步骤中,在计算物品之间的相似度sim时,物品Item的数目为N,最终会形成一个N*N大小的相似度矩阵或哈希表,即每个ItemA都会对应一个大小为N的ItemList列表,空间复杂度为O(N*N);在第二个步骤中,获取每个用户在历史时间点击物品 Item序列(Item数目为M)时,需要遍历ItemList列表中的每个ItemB后,获取ItemB对应的N个相似的Item,组成大小接近M*N的召回列表recallList,空间复杂度为O(M*N);最后,对召回列表recallList中的Item按照相似度sim 逆序排列,得到相似的前K个Item,并将其用于产品推荐,此时,时间复杂度为O(MNlogMN);
可见,现有的推荐算法的时间复杂度和空间复杂度都较高,对于物品推荐的运行效率会造成影响,因此,本领域技术人员亟需寻找一种新的技术方案来解决上述的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种物品推荐方法、装置、计算机设备及存储介质,能够降低推荐过程中的时间复杂度和空间复杂度,提高物品推荐的运行效率。
一种物品推荐方法,所述方法包括:
获取包含用户对物品进行点击的历史点击数据;
根据所述历史点击数据计算每两个点击过的物品之间的相似度;每两个点击过的所述物品包括第一物品和第二物品;
通过预设的优化算法对各个所述相似度的物品进行优化,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品;
获取用户选择的与第一物品对应的点击数据,根据所述点击数据向所述用户推荐与所述第一物品对应的第二物品。
一种物品推荐装置,所述装置包括:
获取模块,用于获取包含用户对物品进行点击的历史点击数据;
计算模块,用于根据所述历史点击数据计算每两个点击过的物品之间的相似度;每两个点击过的所述物品包括第一物品和第二物品;
筛选模块,用于通过预设的优化算法对各个所述相似度的物品进行优化,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品;
推荐模块,用于获取用户选择的与第一物品对应的点击数据,根据所述点击数据向所述用户推荐与所述第一物品对应的第二物品。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种物品推荐方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述一种物品推荐方法。
上述物品推荐方法、装置、计算机设备及存储介质,为用户召回相似度最高的物品,不仅能有效降低现有召回算法中的时间复杂度和空间复杂度,如召回的时间复杂度由现有的O(MNlogMN)降低为O(MKlogK),空间复杂度由现有的O(M*N)降低为O(M*K),其中,K为最后召回物品的总数,M为每个用户点击序列的总数,N为用户所有点击过的item总数,且K远小于M,而且能提高当前召回算法的运行效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中一种物品推荐方法的一应用环境示意图;
图2是本发明一实施例中一种物品推荐方法的一流程示意图;
图3是本发明一实施例中一种物品推荐装置的结构示意图;
图4是本发明一实施例中一种物品推荐方法的预设的数据结构的示意图;
图5是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种物品推荐方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务器进行通信。其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络 (Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。在一实施例中,如图2所示,提供一种视频数据获取方法,以该方法应用在图1服务器为例进行说明,包括如下步骤S10-S40:
S10,获取包含用户对物品进行点击的历史点击数据;
可理解地,历史点击数据是通过用户预先设置的埋点表而采集到的数据,其可以为一段预设时间内所获取到的各个用户所点击到的物品的点击信息,其中,物品是指用户在页面中所点击到的物品数据,物品数据其可显示在页面维度中的一个模块中,如某一页面中的某一个按钮模块所显示的物品数据,点击信息是指某一个用户对物品进行点击后所形成的信息;用户点击到的物品所形成的历史点击数据是可以作为二维数据维度上的数据,其可以用 (user_id,item_id)进行表示。
S20,根据所述历史点击数据计算每两个点击过的物品之间的相似度;每两个点击过的所述物品包括第一物品和第二物品;
可理解地,历史点击数据中包含多个用户所点击到物品的数据,正如此,可通过每一个用户其点击过的物品数据形成物品集合(其可以用itemList表示),同时由于每个物品集合中存在至少两个被点击过的物品,也即,可通过预设的相似度计算公式可计算出每个用户同时点击的每两个物品之间的相似度;第一物品和第二物品是指被用户在预设的时间阈值内点击过的物品(也即同时点击),在一实施例中,第一物品可以指被用户点击的其中一个物品i,而第二物品可以指被用户点击的其中一个物品j,在另一实施例中,第一物品和第二物品指代的物品可以发生调换,其中,第一物品与第二物品之间存在同时点击的关系,才能形成对应关系,如上述提到的物品i和物品j能形成对应关系,而对于如非与物品i和物品j同时点击的物品f,物品f不能与物品i 和物品j形成同时点击的关系,只能与其同时点击的物品g形成同时点击的关系,此时的物品g和物品f才分别为第一物品和第二物品;另外在物品集合中的每两个物品都计算出相似度后,会形成一个关于物品item-item的相似度矩阵,该相似度矩阵作为一个整体并用于后续的优化处理。
S30,通过预设的优化算法对各个所述相似度的物品进行优化,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品;
可理解地,预设的优化算法是指用于对各个相似度物品组成的相似度矩阵进行优化的算法,其优化后的结果将会被用于后续的召回算法中,其主要是借用预设的数据结构来对各个节点对应的物品进行筛选,得到筛选后的与第一物品对应的第二物品;预设相似度是指预设的优化算法中规定的最高相似度,通过预设相似度筛选出与第一物品对应的第二物品的数量为topK个。
S40,获取用户选择的与第一物品对应的点击数据,根据所述点击数据向所述用户推荐与所述第一物品对应的第二物品。
可理解地,用户选择的与第一物品对应的点击数据是用户点击序列中的物品的数据,其中,点击序列是指用户按照顺序在页面中进行点击到的物品,同时点击序列并未限制点击到的物品的数量,正如此,在只存在一个点击物品,也可以形成点击序列,其包括一个物品被用户点击过一次或同一个物品被同一个用户点击多次所形成的序列;在用户点击完物品后生成点击数据,即可通过上述已经优化后的算法向用户推荐最相似的topK个物品;本实施例中的第二物品是通过召回算法(物品推荐算法)召回到物品,也即为推荐物品,在另外一实施例,获取用户选择的与第二物品对应的点击数据,推荐物品即为第一物品。
在步骤S10至步骤S40的实施例中,基于人工智能,对现有的召回算法中的相似度匹配进行改进,为用户召回相似度最高的物品,不仅能有效降低现有召回算法中的时间复杂度和空间复杂度,如本发明召回的时间复杂度由现有的O(MNlogMN)降低为O(MKlogK),空间复杂度由现有的O(M*N)降低为O(M*K),其中,K为最后召回物品的总数,M为每个用户点击序列的总数, N为用户所有点击过的item总数,且K远小于M,而且能进一步地提高召回算法的运行效率,也即能进一步地提高召回算法的推荐效率。
进一步地,所述根据所述历史点击数据计算每两个点击过的物品之间的相似度,包括:
将所述历史记录数据中每个所述用户点击过的物品集合成一个物品集合;
通过预设的第一哈希表记录所述物品集合中各个物品出现的次数;
通过预设的第二哈希表记录所述物品集合中每两个物品在预设的时间阈值内被共同点击的次数;
通过预设的相似度计算公式计算出每个所述用户对应的每两个物品之间的相似度;其中,预设的相似度计算公式为D=A/(B*C),D为每两个物品之间的相似度,A为每两个物品在预设的时间阈值内被共同点击的次数,B 为第一物品被点击的次数,C为第二物品被点击的次数。
可理解地,哈希表是根据关键码值(Key value)而直接进行访问的数据结构,也就是说,其通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度;通过预设的第一哈希表记录所述物品集合中各个物品出现的次数为:可以创建一个哈希表cnt记录每个物品item(下述实施例以i或j进行举例说明,并不存在具体限制)出现的次数,令cnt[i]表示第一物品i以及cnt[j]表示第二物品j,即cnt[item]+=1,其中,cnt[item]可以表示同一个用户点击同一个物品item的次数,每次点击1次即计数1次;通过预设的第二哈希表记录所述物品集合中每两个物品在预设的时间阈值内被共同点击的次数为:可以创建一个哈希表mp记录物品item之间的共线结果,令mp[i][j]表示第一物品i 和第二物品j共线的次数或者说是同时点击第一物品i和第二物品j的用户数,即mp[i][j]+=1,其中,共线的次数是指第一物品i和第二物品j同时被同一个用户点击,每次点击1次即计数1次;预设的相似度计算公式=D=A/(B*C) =每两个物品之间的相似度=每两个物品在预设的时间阈值内被共同点击的次数/(第一物品出现的次数*第二物品出现的次数),用数学表达式进一步地表示为
进一步地,所述通过预设的第二哈希表记录所述物品集合中每两个物品在预设的时间阈值内被共同点击的次数,包括:
通过预设的第二哈希表记录的每两个物品在预设的时间阈值内被共同点击的初始次数,并通过预设的修正公式对所述物品集合中每两个物品在预设的时间阈值内被共同点击的初始次数进行修正后,得到每两个物品在预设的时间阈值内被共同点击的次数;其中,所述预设的修正公式为
可理解地,
进一步地,所述通过预设的优化算法对各个所述相似度的物品进行优化,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品,包括:
创建一个预设的数据结构,将每两个物品之间的相似度作为一个节点加入至所述数据结构;
判断所述数据结构中所有节点的数量是否超过预设的数量阈值;
若所述节点的数量超过预设的数量阈值,则将所述数据结构中的首位节点进行删除,并用所述数据结构中的根节点代替原先的首位节点后,作为新首位节点;
确定代替所述新首位节点的相似度与所述新首位节点连接下其他子节点的相似度之间的大小,按照大小对所述新首位节点和其他子节点的连接顺序进行更换,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品。
可理解地,预设的数据结构是指堆heap所搭建出的结构,其中,堆heap 是一个棵完全二叉树,且分为大根堆和小根堆,顾名思义,大根堆根节点的值为堆中的最大值,且每棵子树父节点的值均大于等于子节点的值,小根堆则相反,根节点的值为堆中最小值,且每棵子树父节点的值均小于等于子节点的值,同时由于相似度的值越大,代表两个物品越相似,所以本实施例采用小根堆实现,更为具体地,当堆中节点数目超过K时,执行pop操作,将堆顶中最小的相似度的物品弹出,保留相似度最大的K个物品,建堆的时间复杂度为O(K),删除堆顶元素和添加元素的时间复杂度均为O(logK),即堆的高度;
具体地,创建一个堆heap的数据结构,当计算出第一物品i和第二物品 j之间的相似度sim[i][j]后,将(sim[i][j],j)作为一个二元组作为一个新节点加入堆heap中的末尾,其中,第一物品为j,第二物品为i时,二元组为(sim[j][i],i),这里i和j是对称的,相似度sim[i][j]=sim[j][i];当堆heap的大小超过预设的数量阈值K时,删除堆顶元素(也即首位节点对应的相似度),将堆heap中的最后一个元素(根节点对应的相似度)赋值给堆顶元素后,将最后一个元素删掉,其中,由于堆一般用数组实现,删除数组第一个元素后,后面堆中的元素会向前移动,所以当前的时间复杂度为O(N),而删除最后一个元素的时间复杂度为O(1),因此本实施例选择将第一个元素赋值为最后一个元素,最后才将最后一个元素删除;判断所述数据结构中所有节点的数量是否超过预设的数量阈值,其中,数量阈值可以预设为K个,其代表堆的大小;将新的堆顶元素(新首位节点对应的相似度)与其连接的子节点的元素(子节点对应的相似度)进行比较,按照相似度大小对新首位节点和其他子节点的连接顺序进行更换,堆中留下的节点中的物品即为与第一物品i相似度最高的K 个(相当于topK个)的第二物品j,也即筛选出与第一物品所在的节点对应且满足于预设相似度的第二物品所在的节点,最终通过创建的哈希表dic存储第一物品i对应的K个第二物品j,即dic[i]=heap,其用于后续召回算法的使用;
更具体地,由于新首位节点连接的两个子节点必然有一个时堆中的次大值的子节点,选出该值所在的子节点与上面的新首位节点进行交换后,再将交换后的子节点再与子节点进行比较,递归执行此过程直至形成新的堆,也即最后形成与第一物品所在的节点对应且满足于预设相似度的第二物品所在的节点构成的堆;以图4进行举例说明,原先到首位节点1被根节点3代替掉,根节点3成为新的首位节点,新的首位节点3与其连接的子节点2进行比较后,新的首位节点3与子节点2发生更换,子节点2成为新的首位节点,其中,节点中的数值代表相似度,次大值的子节点为子节点2;
更进一步理解地,一个堆中每个节点都包含一个值,此时比较的值就是二元组中第一个元素的值sim,也就是相似度;由于是小根堆,所以堆顶元素的二元组中第一个元素的sim一定是最小的,即与第一物品i最不相似的第二物品j,且设置了堆的大小为K,所以最后筛选出的物品即为与物品i最相似的K个第二物品j;其中,使用二元组的目的为:利用堆得到与第一物品i最相似的K个第二物品j对应的二元组后,如得到的二元组为 [(sim1,j1),(sim2,j2),(sim3,j3)],在召回过程中,将第二物品[j1,j2,j3]提取出来并用于召回;
在本实施例中,计算第一物品i对应的最相似的K个第二物品j的时间复杂度为O(NlogK),而未使用堆的时间复杂度为O(N),虽然本实施例使用堆做预处理的时间复杂度略高于未使用堆的时间复杂度,但此时间相比于堆预处理在召回中带来的巨大收益可忽略不计,且空间复杂度可由O(N)降为O(K)。
进一步地,所述判断所述数据结构中所有节点的数量是否超过预设的数量阈值之后,还包括:
若所述节点的数量未超过预设的数量阈值,则将每两个物品之间的相似度作为一个节点加入至所述数据结构中的根节点;
确定所述根节点对应的相似度与所述根节点连接下其他子节点的相似度之间的大小,按照大小对根节点和其他子节点的连接顺序进行更换,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品。
可理解地,在节点的数量未超过预设的数量阈值时,说明无需将堆顶元素进行删除,此时,只需将每两个物品之间的相似度作为一个节点加入至数据结构中的根节点,同时按照相似度大小对根节点和其他子节点的连接顺序进行更换,最后,堆中留下的节点中的物品即为与第一物品i相似度最高的 topK个的第二物品j,也即筛选出与第一物品所在的节点对应且满足于预设相似度的第二物品所在的节点。
进一步地,所述获取包含用户对物品进行点击的历史点击数据;所述历史点击数据中包括物品的点击信息,包括:
预先获取用户的物品点击事件,根据所述物品点击事件设置埋点表;
根据所述埋点表获取预设的时长内用户对物品进行点击后历史点击数据。
可理解地,物品点击事件可以为根据用户需求所设置的点击事件,比如物体i所在模块的点击事件,物品j的所在模块的点击事件;埋点表可根据物品点击事件进行埋点设计,用于收集用户一段时长内在页面物品上的历史点击数据。
综上所述,上述提供了一种物品推荐方法,基于人工智能,为用户召回相似度匹配最高的物品,不仅能有效降低现有召回算法中的时间复杂度和空间复杂度,如本方法召回的时间复杂度由现有的O(MNlogMN)降低为 O(MKlogK),空间复杂度由现有的O(M*N)降低为O(M*K),其中,K为最后召回物品的总数,M为每个用户点击序列的总数,N为用户所有点击过的item 总数,且K远小于M,而且能提高召回算法的运行效率,也即能进一步地提高召回算法的推荐效率;另外本方法简单,实现简单,不仅可直接利用Python 的heapq库,也可利用数组实现一个小根堆来计算出相似度最高的topK个物品;另外本方法可扩展性好,堆优化的算法除了可应用于现有的itemCF的召回算法之外,还能应用于各类基于物品item相似度召回的算法中,如 embedding召回、极大似然召回等,进而也能有效提高召回算法的运行效率,也即也能提高召回算法的推荐效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,本发明还提供一种物品推荐装置,该一种物品推荐装置与上述实施例中一种物品推荐方法一一对应。如图3所示,该一种物品推荐装置包括获取模块11、计算模块12、筛选模块13和推荐模块14。各功能模块详细说明如下:
获取模块11,用于获取包含用户对物品进行点击的历史点击数据;
计算模块12,用于根据所述历史点击数据计算每两个点击过的物品之间的相似度;每两个点击过的所述物品包括第一物品和第二物品;
筛选模块13,用于通过预设的优化算法对各个所述相似度的物品进行优化,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品;
推荐模块14,用于获取用户选择的与第一物品对应的点击数据,根据所述点击数据向所述用户推荐与所述第一物品对应的第二物品。
进一步地,所述所述计算模块,包括:
集合子模块,用于将所述历史记录数据中每个所述用户点击过的物品集合成一个物品集合;
第一记录子模块,用于通过预设的第一哈希表记录所述物品集合中各个物品出现的次数;
第二记录子模块,用于通过预设的第二哈希表记录所述物品集合中每两个物品在预设的时间阈值内被共同点击的次数;
计算子模块,用于通过预设的相似度计算公式计算出每个所述用户对应的每两个物品之间的相似度;其中,预设的相似度计算公式为D=A/(B*C),D为每两个物品之间的相似度,A为每两个物品在预设的时间阈值内被共同点击的次数,B为第一物品被点击的次数,C为第二物品被点击的次数。
进一步地,所述第二记录子模块包括:
修正单元,用于通过预设的第二哈希表记录的每两个物品在预设的时间阈值内被共同点击的初始次数,并通过预设的修正公式对所述物品集合中每两个物品在预设的时间阈值内被共同点击的初始次数进行修正后,得到每两个物品在预设的时间阈值内被共同点击的次数;其中,所述预设的修正公式为
进一步地,所述筛选模块包括:
创建子模块,用于创建一个预设的数据结构,将每两个物品之间的相似度作为一个节点加入至所述数据结构;
判断子模块,用于判断所述数据结构中所有节点的数量是否超过预设的数量阈值;
代替子模块,用于若所述节点的数量超过预设的数量阈值,则将所述数据结构中的首位节点进行删除,并用所述数据结构中的根节点代替原先的首位节点后,作为新首位节点;
第一筛选子模块,用于确定代替所述新首位节点的相似度与所述新首位节点连接下其他子节点的相似度之间的大小,按照大小对所述新首位节点和其他子节点的连接顺序进行更换,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品。
进一步地,所述判断子模块还包括:
加入子模块,用于若所述节点的数量未超过预设的数量阈值,则将每两个物品之间的相似度作为一个节点加入至所述数据结构中的根节点;
第二筛选子模块,用于确定所述根节点对应的相似度与所述根节点连接下其他子节点的相似度之间的大小,按照大小对根节点和其他子节点的连接顺序进行更换,并筛选出与所述第一物品对应且满足于预设相似度的所述第二物品。
进一步地,所述获取模块包括:
设置子模块,用于预先获取用户的物品点击事件,根据所述物品点击事件设置埋点表;
获取子模块,用于根据所述埋点表获取预设的时长内用户对物品进行点击后历史点击数据。
关于一种物品推荐装置的具体限定可以参见上文中对于一种物品推荐方法的限定,在此不再赘述。上述一种物品推荐装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储一种物品推荐方法中涉及到的数据。该计算机设备的接口用于与外部的终端进行连接通信。该计算机程序被处理器执行时以实现一种物品推荐方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中一种物品推荐方法的步骤,例如图2所示的步骤S10至步骤 S40。或者,处理器执行计算机程序时实现上述实施例中一种物品推荐装置的各模块/单元的功能,例如图3所示模块11至模块14的功能。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中一种物品推荐方法的步骤,例如图2所示的步骤S10至步骤S40。或者,计算机程序被处理器执行时实现上述实施例中一种物品推荐装置的各模块/单元的功能,例如图3所示模块11至模块14的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM (DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM (DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
- 物品清单的确定方法、装置、计算机设备及存储介质
- 仓库物品管理方法、装置、计算机设备及存储介质
- 专家知识推荐方法、装置、计算机设备及存储介质
- 商品推荐方法、装置、计算机设备及存储介质
- 标签推荐方法、装置、计算机设备及存储介质
- 物品推荐方法、计算机设备及计算机可读存储介质
- 物品推荐方法、计算机设备及计算机可读存储介质