CN112925993B - 一种协同过滤推荐方法、装置、存储介质和设备 - Google Patents
一种协同过滤推荐方法、装置、存储介质和设备 Download PDFInfo
- Publication number
- CN112925993B CN112925993B CN202110378441.5A CN202110378441A CN112925993B CN 112925993 B CN112925993 B CN 112925993B CN 202110378441 A CN202110378441 A CN 202110378441A CN 112925993 B CN112925993 B CN 112925993B
- Authority
- CN
- China
- Prior art keywords
- commodity
- data sub
- bucket
- similarity
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种协同过滤推荐方法、装置、存储介质和设备,基于预先获取的商品和用户的关联关系,构建各个商品的链表。将具有n个相同元素的链表,划分至第n号数据分桶中。针对每个数据分桶,计算数据分桶中两两链表的相似度,得到数据分桶中两两商品的相似度。统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。基于各个商品之间的相似度,从各个商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品。相较于现有技术,本申请可以将庞大的相似度计算任务,拆分为多个子任务,由于子任务中的数据体量较小,故控制节点计算数据分桶中两两链表的复杂度较低、计算效率较快,从而提升协同过滤推荐算法的计算效率。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种协同过滤推荐方法、装置、存储介质和设备。
背景技术
协同过滤推荐(Collaborative Filtering recommendation)算法是电子商务推荐系统的一种主要算法,协同过滤推荐能够分析用户对指定商品的购买意向,在用户群中查找与用户相似(即购买过相同商品)的用户,预测用户对不同商品的喜好程度,例如,依据多个商品之间的相似度,预测用户对不同商品的喜好程度。
然而,在数据(即商品的销售数据)体量巨大的情况下,现有的协同过滤推荐算法的计算效率低下、且计算成本较高。
为此,如何在数据体量巨大的情况下,提升协同过滤推荐算法的计算效率,成为本领域亟需解决的问题。
发明内容
本申请提供了一种协同过滤推荐方法、装置、存储介质和设备,目的在于提高协同过滤推荐算法的计算效率。
为了实现上述目的,本申请提供了以下技术方案:
一种协同过滤推荐方法,包括:
基于预先获取的商品和各个用户之间的关联关系,构建各个商品的链表;其中,所述链表包括多个元素,所述元素用于表征一个用户的购买行为,所述购买行为用于表征所述用户已购买所述商品;
将具有n个相同元素的链表,划分至预设的第n号数据分桶中;n为正整数;
针对每个数据分桶,计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度;
统计各个所述数据分桶中两两商品的相似度,得到各个商品之间的相似度;
从各个所述商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品;所述待测商品为所述目标用户购买过的商品。
可选的,所述商品和各个用户之间的关联关系的预先获取过程,包括:
预先获取商品数据;所述商品数据用于指示各个用户的购买行为;
消除所述商品数据中的无效数据,得到有效商品数据;
对所述有效商品数据进行离散化,得到商品的离散特征;所述离散特征用于指示所述商品与所述购买行为的对应关系;
对所述离散特征进行归一化,得到所述商品的向量表示;所述向量表示用于指示所述商品与各个所述用户之间的关联关系。
可选的,所述针对每个数据分桶,计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度,包括:
基于所述数据分桶与节点的预设对应关系,将各个所述数据分桶分发到对应的节点中;
针对每个所述数据分桶,控制与所述数据分桶对应的节点计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度。
可选的,所述将具有n个相同元素的链表,划分至预设的第n号数据分桶中之后,还包括:
利用预设的哈希函数,为所述第n号数据分桶中的链表设置对应的哈希值,并将所述哈希值作为所述链表的存储地址。
可选的,所述将具有n个相同元素的链表,划分至预设的第n号数据分桶中之后,还包括:
利用预设的签名函数,为所述第n号数据分桶中的链表设置对应的数值,并将所述数值作为所述链表的存储地址。
一种协同过滤推荐装置,包括:
构建单元,用于基于预先获取的商品和各个用户之间的关联关系,构建各个商品的链表;其中,所述链表包括多个元素,所述元素用于表征一个用户的购买行为,所述购买行为用于表征所述用户已购买所述商品;
划分单元,用于将具有n个相同元素的链表,划分至预设的第n号数据分桶中;n为正整数;
计算单元,用于针对每个数据分桶,计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度;
统计单元,用于统计各个所述数据分桶中两两商品的相似度,得到各个商品之间的相似度;
选取单元,用于从各个所述商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品;所述待测商品为所述目标用户购买过的商品。
可选的,所述构建单元用于:
预先获取商品数据;所述商品数据用于指示各个用户的购买行为;
消除所述商品数据中的无效数据,得到有效商品数据;
对所述有效商品数据进行离散化,得到商品的离散特征;所述离散特征用于指示所述商品与所述购买行为的对应关系;
对所述离散特征进行归一化,得到所述商品的向量表示;所述向量表示用于指示所述商品与各个所述用户之间的关联关系。
可选的,所述计算单元用于:
基于所述数据分桶与节点的预设对应关系,将各个所述数据分桶分发到对应的节点中;
针对每个所述数据分桶,控制与所述数据分桶对应的节点计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度。
一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的协同过滤推荐方法。
一种协同过滤推荐设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的协同过滤推荐方法。
本申请提供的技术方案,基于预先获取的商品和用户的关联关系,构建各个商品的链表,其中,链表包括多个元素,元素用于表征一个用户的购买行为,购买行为用于表征用户已购买商品。将具有n个相同元素的链表,划分至预设的第n号数据分桶中,n为正整数。针对每个数据分桶,计算数据分桶中两两链表的相似度,得到数据分桶中两两商品的相似度。统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。基于各个商品之间的相似度,从各个商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品,待测商品为目标用户购买过的商品。相较于现有技术,本申请可以将庞大的相似度计算任务,拆分为多个子任务(即数据分桶中两两链表的相似度计算),由于子任务中的数据体量较小,故控制节点计算数据分桶中两两链表的复杂度较低、计算效率较快,从而提升协同过滤推荐算法的计算效率、并降低计算成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于商品的协同过滤推荐方法的示意图;
图2为本申请实施例提供的一种基于用户的协同过滤推荐方法的示意图;
图3为本申请实施例提供的一种协同过滤推荐方法的示意图;
图4为本申请实施例提供的一种协同过滤推荐装置的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对基于商品的协同过滤算法,如图1所示,以电商平台所提供的协同过滤推荐算法为例,为本申请实施例提供的一种基于商品的协同过滤推荐方法的示意图,包括如下步骤:
S101:预先获取商品数据。
其中,商品数据用于指示各个用户的购买行为,例如,用户A购买了商品A,用户B购买了商品B等。
S102:消除商品数据中的无效数据,得到有效商品数据。
其中,消除商品数据中的无效数据的具体实现方式,包括但不限于现有公开的数据清洗方法。
S103:对有效商品数据进行离散化,得到商品的离散特征。
其中,商品的离散特征用于指示商品与购买行为的对应关系。
需要说明的是,离散化的具体实现方式为,为本领域技术人员所熟悉的公知常识,这里不再赘述。
S104:对离散特征进行归一化,得到商品的向量表示。
其中,商品的向量表示用于指示商品与各个用户之间的关联关系。
需要说明的是,归一化化的具体实现方式为,为本领域技术人员所熟悉的公知常识,这里不再赘述。
S105:基于商品和各个用户之间的关联关系,构建各个商品的链表。
其中,每个商品的链表均包括多个元素,每个元素均用于表征一个用户的购买行为。所谓用户的购买行为,指示用户已购买该商品。链表中各个元素的排列顺序,可由技术人员根据实际情况进行设置,具体的,可以按照用户的预设编号由前到后(也可以为由后到前)的顺序,对各个元素进行排序。
所谓的链表,是一种物理存储单元上非连续、非顺序的存储结构,元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储元素的数据域,另一个是存储下一个结点地址的指针域。
S106:将具有n个相同元素的链表,划分至预设的第n号数据分桶中。
其中,n为正整数、且取值不大于用户的总数。
需要强调的是,若多个链表相互之间存在相同元素,则确定各个链表所属的商品相互关联。
具体的,假设第一链表和第二链表之间存在2个相同元素(例如用户A和用户B),第一链表和第三链表之间存在3个相同元素(例如用户C、用户D、以及用户E),则将第一链表和第二链表分配到第1号数据分桶中,将第一链表和第三链表分配到第3号数据分桶中。
需要说明的是,上述具体实现过程仅仅用于举例说明。
S107:利用预设的哈希函数,为第n号数据分桶中的链表设置对应的哈希值,并将哈希值作为链表的存储地址。
可选的,还可以利用预设的签名函数,为第n号数据分桶中的链表设置对应的数值,并将数值作为链表的存储地址。
S108:基于数据分桶与节点的预设对应关系,将各个数据分桶分发到对应的节点中。
S109:针对每个数据分桶,控制与数据分桶对应的节点计算数据分桶中两两链表的相似度,得到数据分桶中两两商品的相似度。
其中,计算两两链表的相似度,实质就是:将链表转换为向量,并计算向量和向量之间的余弦相似度。
S110:统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。
S111:从各个商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品。
其中,待测商品为目标用户购买过的商品。
综上所述,预先将具有相同元素的多个链表,分配到同一数据分桶中,而后控制与数据分桶对应的节点计算数据分桶中两两商品的相似度,最后统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。相较于现有技术,本实施例可以将庞大的相似度计算任务,拆分为多个子任务(即数据分桶中两两链表的相似度计算),由于子任务中的数据体量较小,故控制节点计算数据分桶中两两链表的复杂度较低、计算效率较快,从而提升协同过滤推荐算法的计算效率、并降低计算成本。此外,将各个数据分桶分发到对应的节点中,并控制与数据分桶对应的节点计算数据分桶中两两链表的相似度,实现了计算任务的分布式调度,从而进一步提升协同过滤推荐算法的计算效率。
需要说明的是,现有的协同过滤推荐算法除了基于商品的协同过滤推荐算法之外,还有基于用户的协同过滤推荐算法,基于用户的协同过滤推荐算法与基于商品的协同过滤推荐算法的区别是:基于用户的协同过滤推荐算法,是依据各个用户之间的相似度作为参考依据,来预测用户对不同商品的喜好程度。
为此,针对基于用户的协同过滤,如图2所示,以电商平台所提供的协同过滤推荐为例,为本申请实施例提供的一种基于用户的协同过滤推荐方法的示意图,包括如下步骤
S201:预先获取用户数据。
其中,用户数据用于指示各个商品的购买行为,例如,商品A已被用户A购买,商品B未被用户A购买。
需要说明的是,商品数据和用户数据均为公开的数据源。
S202:消除用户数据中的无效数据,得到有效用户数据。
其中,消除用户数据中的无效数据的具体实现方式,包括但不限于现有公开的数据清洗方法。
S203:对有效用户数据进行离散化,得到用户的离散特征。
其中,用户的离散特征用于指示用户与购买行为的对应关系。
需要说明的是,离散化的具体实现方式为,为本领域技术人员所熟悉的公知常识,这里不再赘述。
S204:对离散特征进行归一化,得到用户的向量表示。
其中,用户的向量表示用于指示用户与各个商品之间的关联关系。
需要说明的是,归一化化的具体实现方式为,为本领域技术人员所熟悉的公知常识,这里不再赘述。
S205:基于用户和各个商品之间的关联关系,构建各个用户的链表。
其中,每个用户的链表均包括多个元素,每个元素均用于表征一个商品的购买行为。所谓商品的购买行为,指示用户已购买该商品。链表中各个元素的排列顺序,可由技术人员根据实际情况进行设置,具体的,可以按照商品的预设编号由前到后(也可以为由后到前)的顺序,对各个元素进行排序。
S206:将具有n个相同元素的链表,划分至预设的第n号数据分桶中。
其中,n为正整数、且取值不大于用户的总数。
需要强调的是,若多个链表相互之间存在相同元素,则确定各个链表所属的用户相互关联。
具体的,假设第一链表和第二链表之间存在2个相同元素(例如商品A和商品B),第一链表和第三链表之间存在3个相同元素(例如商品C、商品D、以及商品E),则将第一链表和第二链表分配到第2号数据分桶中,将第一链表和第三链表分配到第3号数据分桶中。
需要说明的是,上述具体实现过程仅仅用于举例说明。
S207:利用预设的哈希函数,为第n号数据分桶中的链表设置对应的哈希值,并将哈希值作为链表的存储地址。
可选的,还可以利用预设的签名函数,为第n号数据分桶中的链表设置对应的数值,并将数值作为链表的存储地址。
S208:基于数据分桶与节点的预设对应关系,将各个数据分桶分发到对应的节点中。
S209:针对每个数据分桶,控制与数据分桶对应的节点计算数据分桶中两两链表的相似度,得到数据分桶中两两用户的相似度。
其中,计算两两链表的相似度,实质就是:将链表转换为向量,并计算向量和向量之间的余弦相似度。
S210:统计各个数据分桶中两两用户的相似度,得到各个用户之间的相似度。
S211:从各个用户中选取与待测用户之间相似度最高的用户,作为参考用户,并将参考用户所购买的商品,作为推荐给待测用户的商品。
综上所述,预先将具有相同元素的多个链表,分配到同一数据分桶中,而后控制与数据分桶对应的节点计算数据分桶中两两用户的相似度,最后统计各个数据分桶中两两用户的相似度,得到各个用户之间的相似度。相较于现有技术,本实施例可以将庞大的相似度计算任务,拆分为多个子任务(即数据分桶中两两链表的相似度计算),由于子任务中的数据体量较小,故控制节点计算数据分桶中两两链表的复杂度较低、计算效率较快,从而提升协同过滤推荐算法的计算效率、并降低计算成本。此外,将各个数据分桶分发到对应的节点中,并控制与数据分桶对应的节点计算数据分桶中两两链表的相似度,实现了计算任务的分布式调度,从而进一步提升协同过滤推荐算法的计算效率。
需要说明的是,上述图1和图2所示的实施例,均为本申请所述协同过滤推荐方法的一种可选的具体实现方式。为此,可以将上述实施例示出的流程,概括为图3所示的方法。
如图3所示,为本申请实施例提供的一种协同过滤推荐方法的示意图,包括如下步骤:
S301:基于预先获取的商品和用户的关联关系,构建各个商品的链表。
其中,链表包括多个元素,元素用于表征一个用户的购买行为,购买行为用于表征用户已购买商品。
S302:将具有n个相同元素的链表,划分至预设的第n号数据分桶中。
其中,n为正整数。
S303:针对每个数据分桶,计算数据分桶中两两链表的相似度,得到数据分桶中两两商品的相似度。
S304:统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。
S305:基于各个商品之间的相似度,从各个商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品。
其中,待测商品为目标用户购买过的商品。
综上所述,预先将具有相同元素的多个链表,分配到同一数据分桶中,而后控制与数据分桶对应的节点计算数据分桶中两两商品的相似度,最后统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。相较于现有技术,本实施例可以将庞大的相似度计算任务,拆分为多个子任务(即数据分桶中两两链表的相似度计算),由于子任务中的数据体量较小,故控制节点计算数据分桶中两两链表的复杂度较低、计算效率较快,从而提升协同过滤推荐算法的计算效率、并降低计算成本。
与上述本申请实施例提供的协同过滤推荐方法相对应,本申请实施例还提供了一种协同过滤推荐装置。
如图4所示,为本申请实施例提供的一种协同过滤推荐装置的架构示意图,包括:
构建单元100,用于基于预先获取的商品和用户的关联关系,构建各个商品的链表;其中,链表包括多个元素,元素用于表征一个用户的购买行为,购买行为用于表征用户已购买商品。
其中,构建单元100具体用于:预先获取商品数据,商品数据用于指示各个用户的购买行为;消除商品数据中的无效数据,得到有效商品数据;对有效商品数据进行离散化,得到商品的离散特征,离散特征用于指示商品与购买行为的对应关系;对离散特征进行归一化,得到商品的向量表示,向量表示用于指示商品与各个用户之间的关联关系。
划分单元200,用于将具有n个相同元素的链表,划分至预设的第n号数据分桶中,n为正整数。
存储单元300,用于利用预设的哈希函数,为第n号数据分桶中的链表设置对应的哈希值,并将哈希值作为链表的存储地址。
其中,存储单元300还用于:利用预设的签名函数,为第n号数据分桶中的链表设置对应的数值,并将数值作为链表的存储地址。
计算单元400,用于针对每个数据分桶,计算数据分桶中两两链表的相似度,得到数据分桶中两两商品的相似度;
其中,计算单元400具体用于:基于数据分桶与节点的预设对应关系,将各个数据分桶分发到对应的节点中;针对每个数据分桶,控制与数据分桶对应的节点计算数据分桶中两两链表的相似度,得到数据分桶中两两商品的相似度。
统计单元500,用于统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。
选取单元600,用于基于各个商品之间的相似度,从各个商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品,待测商品为目标用户购买过的商品。
综上所述,预先将具有相同元素的多个链表,分配到同一数据分桶中,而后控制与数据分桶对应的节点计算数据分桶中两两商品的相似度,最后统计各个数据分桶中两两商品的相似度,得到各个商品之间的相似度。相较于现有技术,本实施例可以将庞大的相似度计算任务,拆分为多个子任务(即数据分桶中两两链表的相似度计算),由于子任务中的数据体量较小,故控制节点计算数据分桶中两两链表的复杂度较低、计算效率较快,从而提升协同过滤推荐算法的计算效率、并降低计算成本。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的协同过滤推荐方法。
本申请还提供了一种协同过滤推荐设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的协同过滤推荐方法,包括如下步骤:
基于预先获取的商品和用户的关联关系,构建各个商品的链表;其中,所述链表包括多个元素,所述元素用于表征一个用户的购买行为,所述购买行为用于表征所述用户已购买所述商品;
将具有n个相同元素的链表,划分至预设的第n号数据分桶中;n为正整数;
针对每个数据分桶,计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度;
统计各个所述数据分桶中两两商品的相似度,得到各个商品之间的相似度;
基于所述各个商品之间的相似度,从各个所述商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品;所述待测商品为所述目标用户购买过的商品。
可选的,所述商品和用户的关联关系的预先获取过程,包括:
预先获取商品数据;所述商品数据用于指示各个用户的购买行为;
消除所述商品数据中的无效数据,得到有效商品数据;
对所述有效商品数据进行离散化,得到商品的离散特征;所述离散特征用于指示所述商品与所述购买行为的对应关系;
对所述离散特征进行归一化,得到所述商品的向量表示;所述向量表示用于指示所述商品与各个所述用户之间的关联关系。
可选的,所述针对每个数据分桶,计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度,包括:
基于所述数据分桶与节点的预设对应关系,将各个所述数据分桶分发到对应的节点中;
针对每个所述数据分桶,控制与所述数据分桶对应的节点计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度。
可选的,将具有n个相同元素的链表,划分至预设的第n号数据分桶中之后,还包括:
利用预设的哈希函数,为所述第n号数据分桶中的链表设置对应的哈希值,并将所述哈希值作为所述链表的存储地址。
可选的,将具有n个相同元素的链表,划分至预设的第n号数据分桶中之后,还包括:
利用预设的签名函数,为所述第n号数据分桶中的链表设置对应的数值,并将所述数值作为所述链表的存储地址。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种协同过滤推荐方法,其特征在于,包括:
基于预先获取的商品和各个用户之间的关联关系,构建各个商品的链表;其中,所述链表包括多个元素,所述元素用于表征一个用户的购买行为,所述购买行为用于表征所述用户已购买所述商品;
将具有n个相同元素的链表,划分至预设的第n号数据分桶中;n为正整数;
基于所述数据分桶与节点的预设对应关系,将各个所述数据分桶分发到对应的节点中;
针对每个所述数据分桶,控制与所述数据分桶对应的节点计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度;
统计各个所述数据分桶中两两商品的相似度,得到各个商品之间的相似度;
从各个所述商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品;所述待测商品为所述目标用户购买过的商品;
其中,所述商品和各个用户之间的关联关系的预先获取过程,包括:
预先获取商品数据;所述商品数据用于指示各个用户的购买行为;
消除所述商品数据中的无效数据,得到有效商品数据;
对所述有效商品数据进行离散化,得到商品的离散特征;所述离散特征用于指示所述商品与所述购买行为的对应关系;
对所述离散特征进行归一化,得到所述商品的向量表示;所述向量表示用于指示所述商品与各个所述用户之间的关联关系。
2.根据权利要求1所述的方法,其特征在于,所述将具有n个相同元素的链表,划分至预设的第n号数据分桶中之后,还包括:
利用预设的哈希函数,为所述第n号数据分桶中的链表设置对应的哈希值,并将所述哈希值作为所述链表的存储地址。
3.根据权利要求1所述的方法,其特征在于,所述将具有n个相同元素的链表,划分至预设的第n号数据分桶中之后,还包括:
利用预设的签名函数,为所述第n号数据分桶中的链表设置对应的数值,并将所述数值作为所述链表的存储地址。
4.一种协同过滤推荐装置,其特征在于,包括:
构建单元,用于基于预先获取的商品和各个用户之间的关联关系,构建各个商品的链表;其中,所述链表包括多个元素,所述元素用于表征一个用户的购买行为,所述购买行为用于表征所述用户已购买所述商品;
划分单元,用于将具有n个相同元素的链表,划分至预设的第n号数据分桶中;n为正整数;
计算单元,用于针对每个数据分桶,计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度;
统计单元,用于统计各个所述数据分桶中两两商品的相似度,得到各个商品之间的相似度;
选取单元,用于从各个所述商品中选取与待测商品之间相似度最高的商品,作为推荐给目标用户的商品;所述待测商品为所述目标用户购买过的商品;
所述构建单元用于:
预先获取商品数据;所述商品数据用于指示各个用户的购买行为;
消除所述商品数据中的无效数据,得到有效商品数据;
对所述有效商品数据进行离散化,得到商品的离散特征;所述离散特征用于指示所述商品与所述购买行为的对应关系;
对所述离散特征进行归一化,得到所述商品的向量表示;所述向量表示用于指示所述商品与各个所述用户之间的关联关系;
所述计算单元用于:
基于所述数据分桶与节点的预设对应关系,将各个所述数据分桶分发到对应的节点中;
针对每个所述数据分桶,控制与所述数据分桶对应的节点计算所述数据分桶中两两链表的相似度,得到所述数据分桶中两两商品的相似度。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1-3任一所述的协同过滤推荐方法。
6.一种协同过滤推荐设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-3任一所述的协同过滤推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110378441.5A CN112925993B (zh) | 2021-04-08 | 2021-04-08 | 一种协同过滤推荐方法、装置、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110378441.5A CN112925993B (zh) | 2021-04-08 | 2021-04-08 | 一种协同过滤推荐方法、装置、存储介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112925993A CN112925993A (zh) | 2021-06-08 |
CN112925993B true CN112925993B (zh) | 2022-02-08 |
Family
ID=76173778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110378441.5A Active CN112925993B (zh) | 2021-04-08 | 2021-04-08 | 一种协同过滤推荐方法、装置、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112925993B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108898459A (zh) * | 2018-06-25 | 2018-11-27 | 中国联合网络通信集团有限公司 | 一种商品推荐方法及装置 |
CN109191240A (zh) * | 2018-08-14 | 2019-01-11 | 北京九狐时代智能科技有限公司 | 一种进行商品推荐的方法和装置 |
CN111292164A (zh) * | 2020-01-21 | 2020-06-16 | 上海风秩科技有限公司 | 一种商品推荐方法、装置、电子设备及可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140056731A (ko) * | 2012-10-31 | 2014-05-12 | 에스케이플래닛 주식회사 | 구매추천 시스템 및 방법 |
CN110069671B (zh) * | 2017-08-22 | 2023-07-21 | 阿里巴巴集团控股有限公司 | 对象归集方法和装置 |
CN109697641A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 计算商品相似度的方法和装置 |
US11443231B2 (en) * | 2018-10-19 | 2022-09-13 | Red Hat, Inc. | Automated software selection using a vector-trained deep learning model |
CN109242649A (zh) * | 2018-10-31 | 2019-01-18 | 广州品唯软件有限公司 | 一种商品推荐方法及相关装置 |
CN109815406B (zh) * | 2019-01-31 | 2022-12-13 | 腾讯科技(深圳)有限公司 | 一种数据处理、信息推荐方法及装置 |
CN111966886A (zh) * | 2019-05-20 | 2020-11-20 | 北京京东尚科信息技术有限公司 | 对象推荐方法、对象推荐装置、电子设备及存储介质 |
CN111443899B (zh) * | 2020-04-17 | 2023-03-03 | 广州汇量信息科技有限公司 | 一种元素处理方法、装置、电子设备及存储介质 |
CN111680221B (zh) * | 2020-08-11 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 信息推荐方法、装置、设备及计算机可读存储介质 |
-
2021
- 2021-04-08 CN CN202110378441.5A patent/CN112925993B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108898459A (zh) * | 2018-06-25 | 2018-11-27 | 中国联合网络通信集团有限公司 | 一种商品推荐方法及装置 |
CN109191240A (zh) * | 2018-08-14 | 2019-01-11 | 北京九狐时代智能科技有限公司 | 一种进行商品推荐的方法和装置 |
CN111292164A (zh) * | 2020-01-21 | 2020-06-16 | 上海风秩科技有限公司 | 一种商品推荐方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112925993A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Economou et al. | Equilibrium customer strategies and social–profit maximization in the single‐server constant retrial queue | |
CN112395293B (zh) | 分库分表方法、分库分表装置、分库分表设备及存储介质 | |
US20150046218A1 (en) | Trend-factored rfm scores to improve campaign performance | |
CN111966912B (zh) | 基于知识图谱的推荐方法、装置、计算机设备及存储介质 | |
CN108665293B (zh) | 特征重要性获取方法及装置 | |
CN108932241B (zh) | 日志数据统计方法、装置及节点 | |
CN108667877B (zh) | 确定推荐信息的方法及装置、计算机设备及存储介质 | |
CN109544347B (zh) | 尾差分配方法、计算机可读存储介质及尾差分配系统 | |
CN107330709B (zh) | 确定目标对象的方法及装置 | |
CN106776757B (zh) | 用户完成网银操作的指示方法及装置 | |
CN112925993B (zh) | 一种协同过滤推荐方法、装置、存储介质和设备 | |
JP2007188285A (ja) | 閾値設定方法及びシステム | |
CN107656927B (zh) | 一种特征选择方法及设备 | |
CN110300011B (zh) | 一种告警根因定位方法、装置和计算机可读存储介质 | |
CN114723145A (zh) | 基于交易量确定智能柜台数量的方法及系统 | |
CN110765358B (zh) | 一种资讯推送方法、装置、电子设备及可读存储介质 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN108537654B (zh) | 客户关系网络图的渲染方法、装置、终端设备及介质 | |
CN110083438B (zh) | 事务分发方法、装置、设备和存储介质 | |
CN108958902B (zh) | 图计算方法和系统 | |
CN114048136A (zh) | 测试类型确定方法、装置、服务器、介质及产品 | |
CN112836971A (zh) | 配额资源的确定方法和装置、电子设备和存储介质 | |
CN111124918A (zh) | 测试数据预测方法及装置、处理设备 | |
CN115130026A (zh) | 目标对象的确定方法、装置、介质及电子设备 | |
CN111339468A (zh) | 信息推送方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100032 room 8018, 8 / F, building 7, Guangyi street, Xicheng District, Beijing Patentee after: State Grid Digital Technology Holdings Co.,Ltd. Patentee after: State Grid E-Commerce Technology Co., Ltd Address before: 311 guanganmennei street, Xicheng District, Beijing 100053 Patentee before: STATE GRID ELECTRONIC COMMERCE Co.,Ltd. Patentee before: State Grid E-Commerce Technology Co., Ltd |
|
CP03 | Change of name, title or address |