CN113656708B - 一种确定物品相似度的方法及系统 - Google Patents
一种确定物品相似度的方法及系统 Download PDFInfo
- Publication number
- CN113656708B CN113656708B CN202111218847.3A CN202111218847A CN113656708B CN 113656708 B CN113656708 B CN 113656708B CN 202111218847 A CN202111218847 A CN 202111218847A CN 113656708 B CN113656708 B CN 113656708B
- Authority
- CN
- China
- Prior art keywords
- user
- article
- click
- processed
- item
- 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/9535—Search customisation based on user profiles and personalisation
-
- 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
- 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/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
- G06Q30/0629—Directed, with specific intent or strategy for generating comparisons
-
- 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)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种确定物品相似度的方法及系统,从第一数据库中获取多个用户对应的第一点击日志,第一点击日志根据用户的kafka消息生成;对所有第一点击日志中的物品ID进行过滤处理,得到第二点击日志;将所有第二点击日志输入预设的召回模型,利用召回模型确定相关的待处理物品之间的物品相似度。本方案中,获取由各个用户的kafka消息生成的第一点击日志。对第一点击日志中的物品ID进行数据清洗得到对应的第二点击日志。利用预设的召回模型对所有第二点击日志进行处理,得到相关的待处理物品之间的物品相似度。通过对物品ID进行数据清洗以减少数据的冗余,并利用召回模型确定物品之间的物品相似度,提高处理数据的速度和准确性。
Description
技术领域
本发明涉及信息推荐技术领域,具体涉及一种确定物品相似度的方法及系统。
背景技术
随着互联网的发展,信息推荐业务是目前用户应用最为广泛的业务之一。在信息推荐业务的实际应用场景中,需通过召回模型从巨大的数据量中确定不同物品(item,例如新闻、视频和音乐等)之间的相似度,再将所确定的不同物品之间的相似度传回信息推荐业务以供其使用。
由于用户数量和item数量均为百万数量级,因此如何快速且准确的从大量数据中确定不同物品之间的相似度,是目前亟需待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种确定物品相似度的方法及系统,以快速和准确的从大量数据中确定不同物品之间的相似度。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种确定物品相似度的方法,所述方法包括:
从第一数据库中获取多个用户对应的第一点击日志,所述第一点击日志根据所述用户的kafka消息生成,所述第一点击日志至少包含:所述用户的用户ID与所述用户所点击的待处理物品的物品ID之间的对应关系;
对所有所述第一点击日志中的物品ID进行过滤处理,得到第二点击日志;
将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度。
优选的,所述将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度,包括:
对所有所述第二点击日志中的所述物品ID进行过滤处理和截断处理,以及对所有所述第二点击日志中的所述用户ID进行过滤处理,得到第三点击日志;
根据所述第三点击日志,确定与其对应的所述用户的最终点击序列,所述最终点击序列包括:所述用户的用户ID,所述用户所点击的待处理物品的物品ID;
针对每个所述第三点击日志对应的所述用户,利用所述用户的所述最终点击序列确定相应的物品对,所述物品对用于指示被同一用户点击过的一对所述待处理物品的物品ID;
利用所有所述物品对,对所有所述第三点击日志对应的所述用户的用户ID进行聚合,确定每一所述物品对的共同用户;
将所有所述物品对的共同用户进行穷举处理,得到多个用户对,所述用户对用于指示点击过相同所述待处理物品的一对所述用户的用户ID;
确定每个所述用户对所共有的所述物品对;
利用每个所述用户对所共有的所述物品对,计算得到每个所述用户对的用户相似度;
利用每个所述用户对的用户相似度,计算所述物品对所对应的所述待处理物品之间的物品相似度。
优选的,所述对所有所述第二点击日志中的所述物品ID进行过滤处理和截断处理,以及对所有所述第二点击日志中的所述用户ID进行过滤处理,得到第三点击日志,包括:
根据所有所述第二点击日志,确定各个所述待处理物品的被点击次数,及确定各个所述用户ID所对应的所述待处理物品的物品数量;
根据所述被点击次数和所述物品数量,对所有所述第二点击日志执行以下步骤,得到第三点击日志;
所述以下步骤包含:
删除所述第二点击日志中所述被点击次数少于第一次数阈值的所述待处理物品的物品ID;
删除所述物品数量在预设数量范围外的所述用户ID对应的所述第二点击日志;
对于所述被点击次数大于第二次数阈值的所述待处理物品的物品ID,随机删除预设数量个所述第二点击日志中的所述物品ID,所述预设数量为:所述被点击次数减去所述第二次数阈值所得到的数值。
优选的,生成所述第一点击日志的过程,包括:
获取所述用户的kafka消息;
将所述kafka消息中的指定数据删除,得到所述用户对应的点击序列,所述指定数据为除wap端点击日志以外的数据;
将所述点击序列的格式转换为日志消息格式,得到对应的第一点击日志。
优选的,对所有所述第一点击日志中的物品ID进行过滤处理,得到第二点击日志,包括:
根据所有所述第一点击日志,确定各个所述待处理物品的被点击次数和物品有效期;
删除所述第一点击日志中所述被点击次数小于第三次数阈值的所述待处理物品的物品ID,以及删除所述第一点击日志中所述物品有效期大于预设日期的所述待处理物品的物品ID,得到第二点击日志。
优选的,所述将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度之后,还包括:
将不满足预设推荐条件的所述待处理物品的物品ID删除,以及将所述物品相似度存储至第二数据库中。
优选的,所述从第一数据库中获取多个用户对应的第一点击日志之前,还包括:
利用反射解析器解析输入spark的预设字符串,至少得到模型参数;
根据所述模型参数对预设的召回模型进行配置。
优选的,所述召回模型为Swing模型。
本发明实施例第二方面公开一种确定物品相似度的系统,所述系统包括:
获取单元,用于从第一数据库中获取多个用户对应的第一点击日志,所述第一点击日志根据所述用户的kafka消息生成,所述第一点击日志至少包含:所述用户的用户ID与所述用户所点击的待处理物品的物品ID之间的对应关系;
过滤单元,用于对所有所述第一点击日志中的物品ID进行过滤处理,得到第二点击日志;
处理单元,用于将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度。
优选的,所述处理单元包括:
筛选模块,用于对所有所述第二点击日志中的所述物品ID进行过滤处理和截断处理,以及对所有所述第二点击日志中的所述用户ID进行过滤处理,得到第三点击日志;
第一确定模块,用于根据所述第三点击日志,确定与其对应的所述用户的最终点击序列,所述最终点击序列包括:所述用户的用户ID,所述用户所点击的待处理物品的物品ID;
第二确定模块,用于针对每个所述第三点击日志对应的所述用户,利用所述用户的所述最终点击序列确定相应的物品对,所述物品对用于指示被同一用户点击过的一对所述待处理物品的物品ID;
聚合模块,用于利用所有所述物品对,对所有所述第三点击日志对应的所述用户的用户ID进行聚合,确定每一所述物品对的共同用户;
处理模块,用于将所有所述物品对的共同用户进行穷举处理,得到多个用户对,所述用户对用于指示点击过相同所述待处理物品的一对所述用户的用户ID;
第三确定模块,用于确定每个所述用户对所共有的所述物品对;
第一计算模块,用于利用每个所述用户对所共有的所述物品对,计算得到每个所述用户对的用户相似度;
第二计算模块,用于利用每个所述用户对的用户相似度,计算所述物品对所对应的所述待处理物品之间的物品相似度。
基于上述本发明实施例提供的一种确定物品相似度的方法及系统,该方法为:从第一数据库中获取多个用户对应的第一点击日志,第一点击日志根据用户的kafka消息生成;对所有第一点击日志中的物品ID进行过滤处理,得到第二点击日志;将所有第二点击日志输入预设的召回模型,利用召回模型确定相关的待处理物品之间的物品相似度。本方案中,获取由各个用户的kafka消息所生成的第一点击日志。对所获取的所有第一点击日志中的物品ID进行数据清洗得到对应的第二点击日志。利用预设的召回模型对所有第二点击日志进行处理,得到相关的待处理物品之间的物品相似度。通过对第一点击日志中的物品ID进行数据清洗以减少数据的冗余,以及利用预设的召回模型来确定物品之间的物品相似度,能有效提高数据的处理速度和处理准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种确定物品相似度的方法的流程图;
图2为本发明实施例提供的一种确定物品相似度的方法的另一流程图;
图3为本发明实施例提供的确定物品相似度的流程图;
图4为本发明实施例提供的一种确定物品相似度的系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,在信息推荐业务的实际应用场景中,需通过召回模型从巨大的数据量中确定不同物品之间的相似度,再将所确定的不同物品之间的相似度传回信息推荐业务以供其使用。但是由于用户数量和item数量均为百万数量级,因此如何快速且准确的从大量数据中确定不同物品之间的相似度,是目前亟需待解决的问题。
故,本发明实施例提供一种确定物品相似度的方法及系统,获取由各个用户的kafka消息所生成的第一点击日志。对所获取的所有第一点击日志中的物品ID进行数据清洗得到对应的第二点击日志。利用预设的召回模型对所有第二点击日志进行处理,得到相关的待处理物品之间的物品相似度。通过对第一点击日志中的物品ID进行数据清洗以减少数据的冗余,以及利用预设的召回模型来确定物品之间的物品相似度,以提高数据的处理速度和处理准确性。
需要说明的是,本发明实施例中所涉及的物品即为信息推荐业务中的item,item也就是召回的内容,例如:视频和文章等item。
可以理解的是,本发明实施例中所公开的一种确定物品相似度的方法的相关内容,主要应用于信息推荐业务中“召回”环节。本发明实施例中的召回模型可以多路并发存在,各路召回模型之间互不影响。关于本发明实施例中所公开的一种确定物品相似度的方法的具体内容,详见以下实施例。
参见图1,示出了本发明实施例提供的一种确定物品相似度的方法的流程图,该方法包括以下步骤:
步骤S101:从第一数据库中获取多个用户对应的第一点击日志。
需要说明的是,第一点击日志根据用户的kafka消息生成;第一点击日志至少包含:用户的用户ID与该用户所点击的待处理物品的物品ID之间的对应关系。
可以理解的是,对于某一用户,该用户的点击日志(如第一点击日志,或者以下内容中提及的第二点击日志和第三点击日志)可用于确定该用户的点击序列,该点击序列由该用户的用户ID和该用户所点击的待处理物品的物品ID构成,例如:用户1(用户ID为userID1)点击过物品1(物品ID为itemID1)、物品2(物品ID为itemID2)和物品3(物品ID为itemID3),则所确定的用户1的点击序列为“userID1:itemID1,itemID2,itemID3”。
也就是说,通过用户的点击序列,可确定该用户点击过哪些物品。
在具体实现步骤S101之前,接收各个用户的kafka消息,根据每个用户的kafka消息生成每个用户对应的第一点击日志,每个用户对应一个第一点击日志,例如:利用Pv处理器接收各个用户的kafka消息,并利用Pv处理器根据每个用户的kafka消息生成每个用户对应的第一点击日志。
将所生成的第一点击日志存储至第一数据库中,例如:将所生成的第一点击日志存储至Hive数据库,并将第一点击日志的相关属性信息存储至Codis数据库中。
在一些具体实施例中,生成第一点击日志的方式为:获取用户的kafka消息;将kafka消息中的指定数据删除(也就是对kafka消息进行初步过滤),得到用户对应的点击序列,该指定数据为除wap端点击日志以外的数据;将点击序列的格式转换为日志消息格式,得到对应的第一点击日志。例如:利用Pv处理器将kafka消息中的指定数据删除得到对应的点击序列,再利用Pv处理器将点击序列的格式转换为日志消息格式,得到对应的第一点击日志。
可以理解的是,将kafka消息中的指定数据删除具体是用于:将爬虫类或刷量类等数据删除,只保留wap端点击日志(如wap端的文章页点击数据)。
在具体实现步骤S101的过程中,从第一数据库中获取多个用户对应的第一点击日志及其相关属性信息。例如:从Hive数据库中获取第一点击日志,从Codis数据库中获取诸如新闻等物品的相关属性信息。
在一些具体实施例中,获取得到第一点击日志及其相关属性信息后,将第一点击日志及其相关属性信息按照统一的数据结构进行拼接,以便各类统计模型(包含下文中提及的召回模型)使用。
步骤S102:对所有第一点击日志中的物品ID进行过滤处理,得到第二点击日志。
在具体实现步骤S102的过程中,对所有第一点击日志中的物品ID进行过滤处理(相当于数据清洗),得到多个第二点击日志。
在一些具体实施例中,根据所有第一点击日志,确定各个待处理物品的被点击次数和物品有效期;删除第一点击日志中被点击次数小于第三次数阈值的待处理物品的物品ID,以及删除第一点击日志中物品有效期大于预设日期的待处理物品的物品ID,得到第二点击日志。也就是说,利用所有第一点击日志可确定各个待处理物品的被点击次数和物品有效期,分别将被点击次数少于第三次数阈值的待处理物品和过期的待处理物品对应的物品ID从第一点击日志中删除,得到对应的第二点击日志。
需要说明的是,对于诸如新闻等具有时效性的item,为保证后续信息推荐业务向用户推荐的物品的时效性,需将过期的item对应的物品ID从第一点击日志中删除。值得注意的是,对于不具备时效性的item,可仅将被点击次数小于第三次数阈值的待处理物品的物品ID从第一点击日志中删除。
步骤S103:将所有第二点击日志输入预设的召回模型,利用召回模型确定相关的待处理物品之间的物品相似度。
由背景技术可知,在信息推荐业务的实际应用场景中,用户数量和item数量均为百万数量级,因此所获取的第二点击日志的数量也较多。
在具体实现步骤S103的过程中,按照用户的行为时间戳的间隔,将所有第二点击日志切分为多段session,将每段session输入预设的召回模型,利用召回模型对各个第二点击日志进行处理,得到相关的待处理物品之间的物品相似度,关于如何确定相关的待处理物品之间的物品相似度的具体内容,可详见以下本发明实施例图3中所示出的内容。
需要说明的是,在确定相关的待处理物品之间的物品相似度之后,信息推荐业务可利用所确定的物品相似度对某一用户进行信息推荐,例如:当用户点击A文章时,根据所确定的物品相似度确定与A文章相似度高于一定值的B文章,将B文章推荐给用户。
可以理解的是,在信息推荐业务的实际应用中,不会向用户推荐不满足预设推荐条件的item,例如不会将低俗内容或者不实的新闻推荐给用户。因此优选的,在确定相关的待处理物品之间的物品相似度之后,将不满足预设推荐条件的待处理物品的物品ID删除,以及将物品相似度存储至第二数据库中,例如:将低俗内容和不实的新闻对应的物品ID删除,将经过删除处理后的物品相似度存储到Redis数据库中,以供信息推荐业务在后续进行信息推荐时使用。
在一些具体实施例中,可周期执行上述步骤S101至步骤S103中的内容,即按照指定周期进行物品的召回,并且可根据实际情况对召回模型的模型效果进行调优。
优选的,在执行步骤S101之前,利用反射解析器解析输入spark的预设字符串,至少得到模型参数;根据模型参数对预设的召回模型进行配置;具体而言,反射解析器根据反射机制解析输入spark的预设字符串,至少得到模型参数,该模型参数可用于调整召回模型的模型效果。
优选的,召回模型为Swing模型,在一些具体实施例中,Swing模型对应的模型参数(即超参数)包括但不仅限于:最大序列长度和物品被点击的最小阈值等。Swing模型的具体内容如公式(1)。
在公式(1)中,Sim(i,j)为物品i和物品j之间的物品相似度,u和v分别为用户u和
用户v,Ui为点击了物品i的用户数量,Uj为点击了物品j的用户数量,Ui∩Uj表示同时点击物
品i和物品j的用户数量,|Iu∩Iv|为用户u和用户v共同点击的物品的数量,为超参数。
可以理解的是,利用反射解析器解析输入spark的预设字符串,还可以得到工程参数,该工程参数可用于设置执行上述步骤S101至步骤S103的周期(也就是每隔多久执行一次前述步骤),以及每次处理多少个第一点击日志(也就是申请多少计算资源)。
在本发明实施例中,获取由各个用户的kafka消息所生成的第一点击日志。对所获取的所有第一点击日志中的物品ID进行数据清洗得到对应的第二点击日志。利用预设的召回模型对所有第二点击日志进行处理,得到相关的待处理物品之间的物品相似度。通过对第一点击日志中的物品ID进行数据清洗减少数据的冗余,以及利用预设的召回模型来确定物品之间的物品相似度,能有效提高数据的处理速度和处理准确性。
为更好解释说明上述本发明实施例图1中的内容,通过图2示出的一种确定物品相似度的方法的另一流程图进行举例说明,图2包括以下步骤:
步骤S201:利用反射解析器解析输入spark的预设字符串,得到工程参数和召回模型对应的模型参数。
在具体实现步骤S201的过程中,通过反射解析器基于反射机制解析输入spark的预设字符串,得到用于对预设的召回模型进行配置的模型参数,以及得到用于执行“召回”处理的工程参数。
步骤S202:接收各个用户的kafka消息。
步骤S203:对各个用户的kafka消息进行初步过滤,得到用户对应的点击序列。
在具体实现步骤S203的过程中,删除用户的kafka消息中除wap端点击日志以外的数据,得到用户对应的点击序列。
步骤S204:将用户的点击序列的格式转换为日志消息格式,得到对应的第一点击日志。
步骤S205:基于前置过滤器,删除第一点击日志中被点击次数小于第三次数阈值的待处理物品的物品ID,以及删除第一点击日志中物品有效期大于预设日期的待处理物品的物品ID,得到第二点击日志。
步骤S206:将所有第二点击日志输入召回模型中进行处理,确定相关的待处理物品之间的物品相似度。
步骤S207:将不满足预设推荐条件的待处理物品的物品ID删除。
步骤S208:将物品相似度存储至第二数据库中。
需要说明的是,步骤S201至步骤S208的执行原理,可参见上述本发明实施例图1中的内容,在此不再进行赘述。
上述本发明实施例图1步骤S103中涉及的确定相关的待处理物品之间的物品相似度的过程,参见图3,示出了本发明实施例提供的确定物品相似度的流程图,包括以下步骤:
步骤S301:对所有第二点击日志中的物品ID进行过滤处理和截断处理,以及对所有第二点击日志中的用户ID进行过滤处理,得到第三点击日志。
需要说明的是,为降低所处理的物品ID和用户ID的数量,需对第二点击日志进行数据清洗处理。在具体执行步骤S301的过程中,对所有第二点击日志中的物品ID进行过滤处理和截断处理,以及对所有第二点击日志中的用户ID进行过滤处理,所有第二点击日志进行前述处理后,即可得到第三点击日志。
在一些具体实施例中,对所有第二点击日志中的物品ID和用户ID进行数据清洗处理的具体实现方式为:根据所有第二点击日志,确定各个待处理物品的被点击次数,及确定各个用户ID所对应的待处理物品的物品数量;该物品数量指示用户在预设时间段内所点击的待处理物品的数量。
根据被点击次数和物品数量,对所有第二点击日志执行以下步骤,得到第三点击日志,前述提及的以下步骤包括:删除第二点击日志中被点击次数少于第一次数阈值的待处理物品的物品ID;删除物品数量在预设数量范围外的用户ID对应的第二点击日志;对于被点击次数大于第二次数阈值的待处理物品的物品ID,随机删除预设数量个第二点击日志中的该物品ID(被点击次数大于第二次数阈值的物品ID),该预设数量为:被点击次数减去第二次数阈值所得到的数值。
例如:对于被点击次数少于10的待处理物品的物品ID(此时该待处理物品相当于冷门item),删除第二点击日志中被点击次数少于10的待处理物品的物品ID;为过滤爬虫数据和正常数据,删除物品数量在[2,99]范围外的用户ID对应的第二点击日志,也就是限定用户在预设时间段内(如7天内)点击待处理物品的数量在[2,99]范围内,物品数量在[2,99]范围外的用户ID对应的第二点击日志均删除;对于被点击次数大于3000次的待处理物品的物品ID,随机删除预设数量个第二点击日志中的该物品ID,即随机保留3000个第二点击日志中的该物品ID,相当于随机选取3000个用户作为点击该物品ID对应的待处理物品的用户。通过此种方式,可删除一定数量的物品ID和第二点击日志。
通过上述方式对所有第二点击日志进行数据清洗处理之后,所剩下的第二点击日志即为第三点击日志。
步骤S302:根据第三点击日志,确定与其对应的用户的最终点击序列。
需要说明的是,用户的最终点击序列包括:该用户的用户ID,该用户所点击的待处理物品的物品ID。
在具体实现步骤S302的过程中,对于每个第三点击日志,从该第三点击日志中获取用户ID与物品ID之间的对应关系,也就是该第三点击日志中记录了与其对应的用户所点击的待处理物品的相关记录;根据所获取的用户ID与物品ID之间的对应关系,对用户ID(即userID)进行聚合,得到该第三点击日志对应的用户的最终点击序列。
步骤S303:针对每个第三点击日志对应的用户,利用用户的最终点击序列确定相应的物品对。
需要说明的是,物品对(也称为item pair)用于指示被同一用户点击过的一对待处理物品的物品ID。
在具体实现步骤S303的过程中,对于每个第三点击日志对应的用户,将该用户的最终点击序列进行穷举,即将该用户的最终点击序列包含的物品ID进行两两组装,得到与该用户的用户ID所对应的物品对。
例如:假设用户点击的待处理物品的物品ID分别为itemID1、itemID2和itemID3,此时该用户的最终点击序列记为:RDD[userID->(itemID1,itemID2,itemID3];将该用户的最终点击序列包含的物品ID进行两两组装,得到与该用户的用户ID所对应的物品对为:RDD[(userID)->((itemID1,itemID2),(itemID1,itemID3),(itemID2,itemID3))]。
步骤S304:利用所有物品对,对所有第三点击日志对应的用户的用户ID进行聚合,确定每一物品对的共同用户。
在具体实现步骤S304的过程中,将物品对作为key,用户ID作为value,对所有第三点击日志对应的用户的用户ID进行聚合,例如进行reduceByKey操作,确定每一物品对的共同用户。例如:假设某一物品对所对应的待处理物品的物品ID分别为itemID1和itemID2,且该物品对的共同用户的用户ID分别为user1、user2和user3,该物品对的共同用户可记为:RDD[(itemID1,itemID2)->(user1,user2,user3)]。
步骤S305:将所有物品对的共同用户进行穷举处理,得到多个用户对。
需要说明的是,用户对用于指示点击过相同待处理物品的一对用户的用户ID。
在具体实现步骤S305的过程中,将每个物品对的共同用户进行穷举处理,得到所有用户对(也称为user pair)。
步骤S306:确定每个用户对所共有的物品对。
在具体实现步骤S306的过程中,将物品对作为key,对每个用户对所对应的用户的最终点击序列进行groupBy操作,得到每个用户对所共有的物品对。
例如:假设用户1(user1)点击的待处理物品的物品ID分别为itemID1、itemID2、itemID3和itemID4,则该用户1所对应的最终点击序列为:RDD[user1->(itemID1,itemID2,itemID3,itemID4)];假设用户2(user2)点击的待处理物品的物品ID分别为itemID2、itemID3和itemID4,则该用户2所对应的最终点击序列为:RDD[user2->(itemID2,itemID3,itemID4)];用户1和用户2共同点击的item为:itemID2、itemID3和itemID4;经过前述处理,可得到(user1,user2)这一用户对共有的物品对为:RDD[(user1,user2)->((itemID2,itemID3), (itemID2,itemID4), (itemID3,itemID4))]。
具体而言,可通过公式(2)计算每个用户对所共有的物品对的数量m。
m=n*(n-1)/2(2)
在公式(2)中,n为用户对中两个用户共同点击的待处理物品的数量(具体可通过物品ID确定该数量)。若需要计算得到上述公式(1)中的|Iu∩Iv|,需先利用公式(2)计算得到用户对所共有的物品对的数量m。
步骤S307:利用每个用户对所共有的物品对,计算得到每个用户对的用户相似度。
在具体实现步骤S307的过程中,利用每个用户对所共有的物品对(也就是用户共同点击的待处理物品的情况),计算得到每个用户对的用户相似度,即计算得到每个用户对所对应的两个用户之间的用户相似度。
步骤S308:利用每个用户对的用户相似度,计算物品对所对应的待处理物品之间的物品相似度。
经过上述步骤中的内容可知,每个物品对可能对应多个用户对。
在具体实现步骤S308的过程中,针对每个物品对,将该物品对所对应的所有用户对的用户相似度进行相加,即可得到该物品对所对应的待处理物品之间的物品相似度。具体计算物品相似度的方式可参见上述公式(1)。
在一些具体实施例中,将上述步骤S305和步骤S307中所确定得到的用户对和各个用户对的用户相似度进行join操作,即可得到物品对所对应的待处理物品之间的物品相似度。
优选的,在得到相关的待处理物品之间的物品相似度之后,针对每个待处理物品,将该待处理物品的物品ID作为key进行groupByKey操作,计算得到与该待处理物品相关的待处理物品。
在本发明实施例中,利用召回模型对第二点击日志进行处理时,先对第二点击日志中的物品ID和用户ID进行数据清洗处理,得到相应的第三点击日志。根据第三点击日志计算得到每个用户对的用户相似度,再利用所有用户对的用户相似度,计算物品对所对应的待处理物品之间的物品相似度。通过对第二点击日志进行数据清洗处理以降低所处理的数据量,并对召回模型处理数据的方式进行优化,提高数据的处理速度和处理准确性。
与上述本发明实施例提供的一种确定物品相似度的方法相对应,参见图4,本发明实施例还提供了一种确定物品相似度的系统的结构框图,该系统包括:获取单元401、过滤单元402和处理单元403;
获取单元401,用于从第一数据库中获取多个用户对应的第一点击日志,第一点击日志根据用户的kafka消息生成,第一点击日志至少包含:用户的用户ID与用户所点击的待处理物品的物品ID之间的对应关系。
在具体实现中,用于生成第一点击日志的获取单元401具体用于:获取用户的kafka消息;将kafka消息中的指定数据删除,得到用户对应的点击序列,指定数据为除wap端点击日志以外的数据;将点击序列的格式转换为日志消息格式,得到对应的第一点击日志。
过滤单元402,用于对所有第一点击日志中的物品ID进行过滤处理,得到第二点击日志。
在具体实现中,过滤单元402具体用于:根据所有第一点击日志,确定各个待处理物品的被点击次数和物品有效期;删除第一点击日志中被点击次数小于第三次数阈值的待处理物品的物品ID,以及删除第一点击日志中物品有效期大于预设日期的待处理物品的物品ID,得到第二点击日志。
处理单元403,用于将所有第二点击日志输入预设的召回模型,利用召回模型确定相关的待处理物品之间的物品相似度。
在具体实现中,召回模型为Swing模型。
在本发明实施例中,获取由各个用户的kafka消息所生成的第一点击日志。对所获取的所有第一点击日志中的物品ID进行数据清洗得到对应的第二点击日志。利用预设的召回模型对所有第二点击日志进行处理,得到相关的待处理物品之间的物品相似度。通过对第一点击日志中的物品ID进行数据清洗减少数据的冗余,以及利用预设的召回模型来确定物品之间的物品相似度,能有效提高数据的处理速度和处理准确性。
优选的,结合图4示出的内容,处理单元403包括:筛选模块、第一确定模块、第二确定模块、聚合模块、处理模块、第三确定模块、第一计算模块和第二计算模块,各个模块的执行原理如下:
筛选模块,用于对所有第二点击日志中的物品ID进行过滤处理和截断处理,以及对所有第二点击日志中的所述用户ID进行过滤处理,得到第三点击日志。
在具体实现中,筛选模块具体用于:根据所有第二点击日志,确定各个待处理物品的被点击次数,及确定各个用户ID所对应的待处理物品的物品数量;根据被点击次数和物品数量,对所有第二点击日志执行以下步骤,得到第三点击日志;以下步骤包含:删除第二点击日志中被点击次数少于第一次数阈值的待处理物品的物品ID;删除物品数量在预设数量范围外的用户ID对应的第二点击日志;对于被点击次数大于第二次数阈值的待处理物品的物品ID,随机删除预设数量个第二点击日志中的所述物品ID,预设数量为:被点击次数减去第二次数阈值所得到的数值。
第一确定模块,用于根据第三点击日志,确定与其对应的用户的最终点击序列,最终点击序列包括:用户的用户ID,用户所点击的待处理物品的物品ID。
第二确定模块,用于针对每个第三点击日志对应的用户,利用用户的最终点击序列确定相应的物品对,物品对用于指示被同一用户点击过的一对待处理物品的物品ID。
聚合模块,用于利用所有物品对,对所有第三点击日志对应的用户的用户ID进行聚合,确定每一物品对的共同用户。
处理模块,用于将所有物品对的共同用户进行穷举处理,得到多个用户对,用户对用于指示点击过相同待处理物品的一对用户的用户ID。
第三确定模块,用于确定每个用户对所共有的物品对。
第一计算模块,用于利用每个用户对所共有的物品对,计算得到每个用户对的用户相似度。
第二计算模块,用于利用每个用户对的用户相似度,计算物品对所对应的待处理物品之间的物品相似度。
在本发明实施例中,利用召回模型对第二点击日志进行处理时,先对第二点击日志中的物品ID和用户ID进行数据清洗处理,得到相应的第三点击日志。根据第三点击日志计算得到每个用户对的用户相似度,再利用所有用户对的用户相似度,计算物品对所对应的待处理物品之间的物品相似度。通过对第二点击日志进行数据清洗处理以降低所处理的数据量,并对召回模型处理数据的方式进行优化,提高数据的处理速度和处理准确性。
优选的,结合图4示出的内容,该系统还包括:
删除单元,用于将不满足预设推荐条件的待处理物品的物品ID删除,以及将物品相似度存储至第二数据库中。
优选的,结合图4示出的内容,该系统还包括:
配置单元,用于利用反射解析器解析输入spark的预设字符串,至少得到模型参数;根据模型参数对预设的召回模型进行配置。
综上所述,本发明实施例提供一种确定物品相似度的方法及系统,获取由各个用户的kafka消息所生成的第一点击日志。对所获取的所有第一点击日志中的物品ID进行数据清洗得到对应的第二点击日志。利用预设的召回模型对所有第二点击日志进行处理,得到相关的待处理物品之间的物品相似度。通过对第一点击日志中的物品ID进行数据清洗以减少数据的冗余,以及利用预设的召回模型来确定物品之间的物品相似度,提高数据的处理速度和处理准确性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种确定物品相似度的方法,其特征在于,所述方法包括:
从第一数据库中获取多个用户对应的第一点击日志,所述第一点击日志根据所述用户的kafka消息生成,所述第一点击日志至少包含:所述用户的用户ID与所述用户所点击的待处理物品的物品ID之间的对应关系;
对所有所述第一点击日志中的物品ID进行过滤处理,得到第二点击日志;
将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度;
其中,所述将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度,包括:
对所有所述第二点击日志中的所述物品ID进行过滤处理和截断处理,以及对所有所述第二点击日志中的所述用户ID进行过滤处理,得到第三点击日志;
根据所述第三点击日志,确定与其对应的所述用户的最终点击序列,所述最终点击序列包括:所述用户的用户ID,所述用户所点击的待处理物品的物品ID;
针对每个所述第三点击日志对应的所述用户,利用所述用户的所述最终点击序列确定相应的物品对,所述物品对用于指示被同一用户点击过的一对所述待处理物品的物品ID;
利用所有所述物品对,对所有所述第三点击日志对应的所述用户的用户ID进行聚合,确定每一所述物品对的共同用户;
将所有所述物品对的共同用户进行穷举处理,得到多个用户对,所述用户对用于指示点击过相同所述待处理物品的一对所述用户的用户ID;
确定每个所述用户对所共有的所述物品对;
利用每个所述用户对所共有的所述物品对,计算得到每个所述用户对的用户相似度;
利用每个所述用户对的用户相似度,计算所述物品对所对应的所述待处理物品之间的物品相似度。
2.根据权利要求1所述的方法,其特征在于,所述对所有所述第二点击日志中的所述物品ID进行过滤处理和截断处理,以及对所有所述第二点击日志中的所述用户ID进行过滤处理,得到第三点击日志,包括:
根据所有所述第二点击日志,确定各个所述待处理物品的被点击次数,及确定各个所述用户ID所对应的所述待处理物品的物品数量;
根据所述被点击次数和所述物品数量,对所有所述第二点击日志执行以下步骤,得到第三点击日志;
所述以下步骤包含:
删除所述第二点击日志中所述被点击次数少于第一次数阈值的所述待处理物品的物品ID;
删除所述物品数量在预设数量范围外的所述用户ID对应的所述第二点击日志;
对于所述被点击次数大于第二次数阈值的所述待处理物品的物品ID,随机删除预设数量个所述第二点击日志中的所述物品ID,所述预设数量为:所述被点击次数减去所述第二次数阈值所得到的数值。
3.根据权利要求1所述的方法,其特征在于,生成所述第一点击日志的过程,包括:
获取所述用户的kafka消息;
将所述kafka消息中的指定数据删除,得到所述用户对应的点击序列,所述指定数据为除wap端点击日志以外的数据;
将所述点击序列的格式转换为日志消息格式,得到对应的第一点击日志。
4.根据权利要求1所述的方法,其特征在于,对所有所述第一点击日志中的物品ID进行过滤处理,得到第二点击日志,包括:
根据所有所述第一点击日志,确定各个所述待处理物品的被点击次数和物品有效期;
删除所述第一点击日志中所述被点击次数小于第三次数阈值的所述待处理物品的物品ID,以及删除所述第一点击日志中所述物品有效期大于预设日期的所述待处理物品的物品ID,得到第二点击日志。
5.根据权利要求1所述的方法,其特征在于,所述将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度之后,还包括:
将不满足预设推荐条件的所述待处理物品的物品ID删除,以及将所述物品相似度存储至第二数据库中。
6.根据权利要求1所述的方法,其特征在于,所述从第一数据库中获取多个用户对应的第一点击日志之前,还包括:
利用反射解析器解析输入spark的预设字符串,至少得到模型参数;
根据所述模型参数对预设的召回模型进行配置。
7.根据权利要求1所述的方法,其特征在于,所述召回模型为Swing模型。
8.一种确定物品相似度的系统,其特征在于,所述系统包括:
获取单元,用于从第一数据库中获取多个用户对应的第一点击日志,所述第一点击日志根据所述用户的kafka消息生成,所述第一点击日志至少包含:所述用户的用户ID与所述用户所点击的待处理物品的物品ID之间的对应关系;
过滤单元,用于对所有所述第一点击日志中的物品ID进行过滤处理,得到第二点击日志;
处理单元,用于将所有所述第二点击日志输入预设的召回模型,利用所述召回模型确定相关的所述待处理物品之间的物品相似度;
其中,所述处理单元包括:
筛选模块,用于对所有所述第二点击日志中的所述物品ID进行过滤处理和截断处理,以及对所有所述第二点击日志中的所述用户ID进行过滤处理,得到第三点击日志;
第一确定模块,用于根据所述第三点击日志,确定与其对应的所述用户的最终点击序列,所述最终点击序列包括:所述用户的用户ID,所述用户所点击的待处理物品的物品ID;
第二确定模块,用于针对每个所述第三点击日志对应的所述用户,利用所述用户的所述最终点击序列确定相应的物品对,所述物品对用于指示被同一用户点击过的一对所述待处理物品的物品ID;
聚合模块,用于利用所有所述物品对,对所有所述第三点击日志对应的所述用户的用户ID进行聚合,确定每一所述物品对的共同用户;
处理模块,用于将所有所述物品对的共同用户进行穷举处理,得到多个用户对,所述用户对用于指示点击过相同所述待处理物品的一对所述用户的用户ID;
第三确定模块,用于确定每个所述用户对所共有的所述物品对;
第一计算模块,用于利用每个所述用户对所共有的所述物品对,计算得到每个所述用户对的用户相似度;
第二计算模块,用于利用每个所述用户对的用户相似度,计算所述物品对所对应的所述待处理物品之间的物品相似度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218847.3A CN113656708B (zh) | 2021-10-20 | 2021-10-20 | 一种确定物品相似度的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218847.3A CN113656708B (zh) | 2021-10-20 | 2021-10-20 | 一种确定物品相似度的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656708A CN113656708A (zh) | 2021-11-16 |
CN113656708B true CN113656708B (zh) | 2021-12-24 |
Family
ID=78494709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111218847.3A Active CN113656708B (zh) | 2021-10-20 | 2021-10-20 | 一种确定物品相似度的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656708B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929928A (zh) * | 2012-09-21 | 2013-02-13 | 北京格致璞科技有限公司 | 基于多维相似度的个性化新闻推荐方法 |
CN104598643A (zh) * | 2015-02-13 | 2015-05-06 | 成都品果科技有限公司 | 一种物品相似度贡献系数、相似度获取方法及物品推荐方法及其系统 |
CN112329954A (zh) * | 2020-11-04 | 2021-02-05 | 中国平安人寿保险股份有限公司 | 物品召回方法、装置、终端设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL118580A0 (en) * | 1995-06-30 | 1996-10-16 | Massachusetts Inst Technology | Method and apparatus for item recommendation using automated collaborative filtering |
CN103412948B (zh) * | 2013-08-27 | 2017-10-24 | 北京交通大学 | 基于聚类的协同过滤的商品推荐方法及系统 |
CN104053023B (zh) * | 2014-06-13 | 2018-11-30 | 海信集团有限公司 | 一种确定视频相似度的方法及装置 |
US10162868B1 (en) * | 2015-03-13 | 2018-12-25 | Amazon Technologies, Inc. | Data mining system for assessing pairwise item similarity |
CN106407254B (zh) * | 2016-08-23 | 2020-04-28 | 百度在线网络技术(北京)有限公司 | 用户点击行为链的处理方法及装置 |
CN110020118B (zh) * | 2017-09-29 | 2021-11-16 | 北京国双科技有限公司 | 一种计算用户之间相似度的方法及装置 |
CN110309427B (zh) * | 2018-05-31 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 一种对象推荐方法、装置及存储介质 |
CN110428295A (zh) * | 2018-08-01 | 2019-11-08 | 北京京东尚科信息技术有限公司 | 商品推荐方法和系统 |
CN110209927B (zh) * | 2019-04-25 | 2020-12-04 | 北京三快在线科技有限公司 | 个性化推荐方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-10-20 CN CN202111218847.3A patent/CN113656708B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929928A (zh) * | 2012-09-21 | 2013-02-13 | 北京格致璞科技有限公司 | 基于多维相似度的个性化新闻推荐方法 |
CN104598643A (zh) * | 2015-02-13 | 2015-05-06 | 成都品果科技有限公司 | 一种物品相似度贡献系数、相似度获取方法及物品推荐方法及其系统 |
CN112329954A (zh) * | 2020-11-04 | 2021-02-05 | 中国平安人寿保险股份有限公司 | 物品召回方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113656708A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9699042B2 (en) | Systems and methods of classifying sessions | |
US20030187677A1 (en) | Processing user interaction data in a collaborative commerce environment | |
CN102890689A (zh) | 一种用户兴趣模型的建立方法及系统 | |
CN107578263A (zh) | 一种广告异常访问的检测方法、装置和电子设备 | |
CN112506743A (zh) | 一种日志监控方法、装置和服务器 | |
CN112100221A (zh) | 一种资讯推荐方法、装置、推荐服务器及存储介质 | |
CN109271495B (zh) | 问答识别效果检测方法、装置、设备及可读存储介质 | |
CN114022051A (zh) | 一种指标波动分析方法,存储介质和电子设备 | |
CN109145109A (zh) | 基于社交网络的用户群体消息传播异常分析方法及装置 | |
CN106557483B (zh) | 一种数据处理、数据查询方法及设备 | |
CN113656708B (zh) | 一种确定物品相似度的方法及系统 | |
CN110019152A (zh) | 一种大数据清洗方法 | |
CN115994121A (zh) | 优化智能客服交互流程的方法、装置及存储介质 | |
CN110738509A (zh) | 量化用户之间关联程度的方法和装置 | |
CN112184370A (zh) | 一种推送产品的方法和装置 | |
WO2021231279A1 (en) | User search category predictor | |
CN110705736A (zh) | 宏观经济预测方法、装置、计算机设备及存储介质 | |
CN106503044B (zh) | 兴趣特征分布获取方法及装置 | |
Rao et al. | An efficient hybrid successive Markov model for predicting web user usage behavior using web usage mining | |
Kumbaroska et al. | Behavioural-based modelling and analysis of Navigation Patterns across Information Networks | |
US20230169345A1 (en) | Multiscale dimensional reduction of data | |
CN107566450B (zh) | 一种实时用户行为的数据处理方法、装置及电子设备 | |
CN116860476A (zh) | 一种信用风险筛查任务处理方法及装置 | |
CN115564518A (zh) | 用户的预测方法及系统 | |
CN114861061A (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 |