CN117493694A - 应用程序的推荐方法、推荐模型的训练方法和装置 - Google Patents
应用程序的推荐方法、推荐模型的训练方法和装置 Download PDFInfo
- Publication number
- CN117493694A CN117493694A CN202311594954.5A CN202311594954A CN117493694A CN 117493694 A CN117493694 A CN 117493694A CN 202311594954 A CN202311594954 A CN 202311594954A CN 117493694 A CN117493694 A CN 117493694A
- Authority
- CN
- China
- Prior art keywords
- user
- characterization
- interaction
- sample
- application
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012549 training Methods 0.000 title claims abstract description 51
- 230000003993 interaction Effects 0.000 claims abstract description 255
- 238000012512 characterization method Methods 0.000 claims abstract description 184
- 239000011159 matrix material Substances 0.000 claims description 89
- 230000006870 function Effects 0.000 claims description 40
- 238000010586 diagram Methods 0.000 claims description 39
- 230000002452 interceptive effect Effects 0.000 claims description 39
- 238000005096 rolling process Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 28
- 238000003860 storage Methods 0.000 claims description 19
- 230000002441 reversible effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004148 unit process Methods 0.000 claims description 5
- 230000006399 behavior Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 210000004027 cell Anatomy 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种应用程序的推荐方法、推荐模型的训练方法和装置,涉及计算机技术邻域。应用程序的推荐方法包括获取多个用户与多个应用程序的交互数据集,其中,交互数据集包括多个用户与多个应用程序进行交互的时间信息和地点信息;根据交互数据集,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征;根据每个用户的第一表征、每个应用程序的第二表征,确定向多个用户中的每个用户推荐的应用程序。本公开的应用程序的推荐方法能够提高应用程序的推荐的准确性。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种应用程序的推荐方法、推荐模型的训练方法和装置。
背景技术
随着移动网络和移动设备的飞速发展,应用程序(Application,App)的数量也在不断增长。应用程序的个性化推荐是指从海量应用程序的使用数据中挖掘用户行为特征或兴趣爱好,从而利用算法和人工智能技术为用户推荐适合其喜好的应用程序。
相关技术中,应用程序推荐技术大多是基于应用程序的使用频率、流行度、用户点击情况进行推荐。
发明内容
发明人发现:相关的应用程序推荐技术主要从整体上考虑用户的使用等情况,未考虑到用户行为习惯的差异性,针对不同用户无法准确的提供个性化的应用程序的推荐。
本公开所要解决的一个技术问题是:如何提高应用程序推荐的准确性。
根据本公开的一些实施例,提供的了一种应用程序的推荐方法,包括:获取多个用户与多个应用程序的交互数据集,其中,交互数据集包括多个用户与多个应用程序进行交互的时间信息和地点信息;根据交互数据集,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征;根据每个用户的第一表征、每个应用程序的第二表征,确定向多个用户中的每个用户推荐的应用程序。
在一些实施例中,根据交互数据集,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征包括:根据交互数据集,确定在预设的各个时隙和各个区域内,多个用户中的每个用户与多个应用程序中的每个应用程序是否进行交互的交互信息;根据交互信息,构建多个用户与多个应用程序之间的交互图序列,其中,交互图序列包括各个时隙对应的交互图;根据交互图序列,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征。
在一些实施例中,交互图序列中的每个交互图包括:每个用户对应的用户节点和每个应用程序对应的应用程序节点,每个节点具有节点属性,每个用户节点的节点属性根据其对应的用户与多个应用程序交互的区域生成,每个应用程序节点的节点属性根据其对应的应用程序与多个用户交互的区域生成,并且在用户与应用程序在交互图对应的时隙存在交互的情况下,用户对应的用户节点与应用程序对应的应用程序节点之间配置边。
在一些实施例中,在一些实施例中,根据交互图序列,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征包括:通过图卷积网络对交互图序列进行处理,确定每个用户的第一中间表征序列和每个应用程序的第二中间表征序列;通过门控逻辑单元对每个用户的第一中间表征序列和每个应用程序的第二中间表征序列进行处理,确定每个用户的第一表征和每个应用程序的第二表征。
在一些实施例中,通过图卷积网络对交互图序列进行处理,确定每个用户的第一中间表征序列和每个应用程序的第二中间表征序列包括:确定交互图序列中的每个交互图的邻接矩阵和度矩阵;根据每个交互图邻接矩阵和度矩阵、每个交互图的各个节点的节点属性,通过图卷积网络确定每个交互图中每个用户的第一中间表征和每个交互图中每个应用程序的第二中间表征;按照各个交互图对应的时隙的顺序,将所有交互图中每个用户的第一中间表征和每个应用程序的第二中间表征,组成每个用户的第一中间表征序列和每个应用程序的第二中间表征序列。
在一些实施例中,图卷积网络包括预设层数,根据每个交互图的邻接矩阵和度矩阵、每个交互图中各个节点的节点属性,通过图卷积网络确定每个交互图中每个用户的第一中间表征和每个交互图中每个应用程序的第二中间表征包括:针对每个交互图,将交互图的邻接矩阵和度矩阵、交互图中各个节点的节点属性输入图卷积网络的第一层,以获得第一层输出的交互的第一中间表征矩阵和第二中间表征矩阵;将交互的邻接矩阵和度矩阵、当前层的上一层输出的交互图的第一中间表征矩阵和第二中间表征矩阵输入当前层,以获得当前层输出的交互图的第一中间表征矩阵和第二中间表征矩阵,直至获得最后一层输出的交互的第一中间表征矩阵和第二中间表征矩阵;将最后一层输出的交互图的第一中间表征矩阵中的特征确定为交互图中每个用户的第一中间表征,最后一层输出的交互图的第二中间表征矩阵中的特征确定为交互图中每个应用程序的第二中间表征。
在一些实施例中,门控逻辑单元包括:第一门控逻辑单元,每个用户的第一中间表征序列包括各个时隙对应的每个用户的第一中间表征,通过门控逻辑单元对每个用户的第一中间表征序列和每个应用程序的第二中间表征序列进行处理,确定每个应用程序的第一表征和每个应用程序的第二表征包括:将第一个时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的第一个时隙对应的第一隐藏表征;将上一个时隙对应的第一隐藏表征、当前时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的当前时隙对应的第一隐藏表征;将当前时隙对应的第一隐藏表征、当前时隙的下一个时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的当前时隙的下一个对应的第一隐藏表征;将倒数第二个时隙对应的第一隐藏特征、最后一个时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的更新的最后一个时隙对应的第一中间表征,并确定为第一表征。
在一些实施例中,门控逻辑单元包括:第二门控逻辑单元,每个应用程序的第二中间表征序列包括各个时隙对应的每个应用程序的第二中间表征,通过门控逻辑单元对每个用户的第一中间表征序列和每个应用程序的第二中间表征序列进行处理,确定每个用户的第一表征和每个应用程序的第二表征包括:将第一个时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的第一个时隙对应的第二隐藏表征;将上一个时隙对应的第二隐藏表征、当前时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的当前时隙对应的第二隐藏表征;将当前时隙对应的第二隐藏表征、当前时隙的下一个时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的当前时隙的下一个对应的第二隐藏表征;将倒数第二个时隙对应的第二隐藏特征、最后一个时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的更新的最后一个时隙对应的第二中间表征,并确定为第二表征。
在一些实施例中,根据每个用户的第一表征、每个应用程序的第二表征,确定向多个用户中的每个用户推荐的应用程序包括:对于每个用户:确定用户未使用的应用程序的第二表征;通过用户的第一表征和用户未使用的应用程序的第二表征,确定用户对未使用的应用程序之间的偏好值;根据便好值,确定向用户推荐的未使用的应用程序。
在一些实施例中,根据便好值,确定向用户推荐的未使用的应用程序包括:将用户未使用的应用程序按照偏好值的降序顺序排列,以形成推荐表单;将推荐表单下发给用户。
在一些实施例中,推荐方法还包括将交互数据集中的所有交互数据的地点信息进行网格化处理,映射到预设规格的区域内;将所有交互数据的地点信息更新为在预设规格的区域内映射的地点信息。
根据本公开的另一些实施例,提供了一种应用程序的推荐模型的训练方法,包括:获取多个样本用户与多个样本应用程序的样本交互数据集,其中,样本交互数据集包括多个样本用户与多个样本应用程序进行交互的时间信息和地点信息;通过推荐模型对样本交互数据集进行处理,确定多个样本用户中的每个样本用户的第一表征、多个样本应用程序中的每个样本应用程序的第二表征;根据每个样本用户的第一表征、每个样本应用程序的第二表征,确定每个样本用户对每个样本应用程序的偏好值;基于偏好值确定损失函数,以通过损失函数对推荐模型进行调整;在满足终止条件的情况下,完成推荐模型的训练。
在一些实施例中,基于偏好值确定损失函数包括:确定每个样本用户对交互过的每个样本应用程序的正向偏好值、对未交互过的每个样本应用程序的反向偏好值;根据每个样本用户的所有正向偏好值与所有反向偏好值,确定每个样本用户的偏好值差距;基于所有样本用户的偏好值差距,确定损失函数。
在一些实施例中,根据每个样本用户的所有正向偏好值与所有反向偏好值,确定每个样本用户的偏好值差距包括:确定每个样本用户的任意一个正向偏好值与任意一个反向偏好值之间的差距;将所有差距的均值确定为每个样本用户的偏好值差距。
在一些实施例中,终止条件为调整后获得的损失函数的值与调整前获得的损失函数的值的差距小于预设阈值。
根据本公开的又一些实施例,提供了一种应用程序的推荐装置,包括:获取模块,被配置为获取多个用户与多个应用程序的交互数据集,其中,交互数据集包括多个用户与多个应用程序进行交互的时间信息和地点信息;第一确定模块,被配置为根据交互数据集,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征;第二确定模块,被配置为根据每个用户的第一表征、每个应用程序的第二表征,确定向多个用户中的每个用户推荐的应用程序。
根据本公开的再一些实施例,提供了一种应用程序的推荐模型的训练装置,包括获取模块,获取多个样本用户与多个样本应用程序的样本交互数据集,其中,样本交互数据集包括多个样本用户与多个样本应用程序进行交互的时间信息和地点信息;第一确定模块,通过推荐模型对样本交互数据集进行处理,确定多个样本用户中的每个样本用户的第一表征、多个样本应用程序中的每个样本应用程序的第二表征;第二确定模块,根据每个样本用户的第一表征、每个样本应用程序的第二表征,确定每个样本用户对每个样本应用程序的偏好值;调整模块,基于偏好值确定损失函数,以通过损失函数对推荐模型进行调整;完成模块,在满足终止条件的情况下,完成推荐模型的训练。
根据本公开的再一些实施例,提供了一种电子设备,包括:处理器;以及耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如前所述的应用程序的推荐方法或者如前所述的应用程序的推荐模型的训练方法。
根据本公开的再一些实施例,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如前所述的应用程序的推荐方法的步骤或者如前所述的应用程序的推荐模型的训练方法的步骤。
在上述实施例中,本公开通过获取包括多个用户与多个应用程序进行交互的时间信息和地点信息的交互数据集,之后根据交互数据集获得每个用户和每个应用程序的表征,从而能够根据用户的表征以及用户未使用的应用程序的表征确定向用户推荐的未使用的应用程序。本公开的推荐方法利用了用户与应用程序进行交互的时间信息和地点信息,挖掘不同时空下用户对应用程序的偏好情况以及应用程序的使用模式,为不同用户提供个性化推荐,提高应用程序的推荐的准确性。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本公开的一些实施例的应用程序的推荐方法的流程示意图。
图2示出了根据本公开的一些实施例的多个用户与多个应用程序之间的交互图序列的示意图。
图3示出了通过图卷积网络、门控逻辑单元处理交互图序列的流程示意图。
图4示出了根据本公开一些实施例的门控逻辑单元的结构示意图。
图5示出了根据本公开的一些实施例的应用程序的推荐装置的结构示意图。
图6示出了根据本公开的另一些实施例的应用程序的推荐装置的结构示意图。
图7示出了根据本公开的又一些实施例的应用程序的推荐装置的结构示意图。
图8示出了根据本公开的一些实施例的应用程序的推荐模型的训练方法的流程示意图。
图9示出了根据本公开的一些实施例的从训练推荐模型到使用训练模型的流程示意图。
图10示出了根据本公开的另一些实施例的从训练推荐模型到使用训练模型的流程示意图。
图11示出了根据本公开的一些实施例的应用程序的推荐模型的训练装置的结构示意图。
图12示出了根据本公开的另一些实施例的应用程序的推荐模型的训练装置的结构示意图。
图13示出了根据本公开的又一些实施例的应用程序的推荐模型的训练装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
发明人发现,用户对应用程序的使用特点与人们的日常生活息息相关,不同用户的应用程序使用行为既存在时空一致性,也存在时空差异性。例如,在周末,用户使用游戏、购物、视频等休闲娱乐相关应用程序的频率整体明显上升,但是在旅游景点处,照相、地图等应用程序的使用频率远高于购物应用程序的使用频率,在住宅区则刚好相反。
目前的应用程序推荐方法一般是基于应用程序使用频率、流行度、用户点击进行推荐,这样的推荐方法降低了用户的个性化体验。
时空上下文是指一个事件或概念发生的特定时间和空间环境,以及与之相关的背景信息。它涵盖了事件发生的地点、时间、社会背景、文化因素等,这些因素共同构成了事件的整体背景。而动态时空上下文是指随着时间和空间的变化而不断变化的情境背景。它强调了在不同时空下,事件发生的情境或背景可能发生变化。考虑动态时空上下文对于构建更精确的模型、推荐系统以及自然语言处理任务非常重要。通过分析和挖掘不同时间和地点下的特征变化,可以更好地理解和预测人们的行为与需求。
发明人研究发现,现有的推荐方法没有考虑到用户个性化偏好以及应用程序的使用模式具有时间和空间上的一致性与差异性。并且,用户的个性化偏好和应用程序的使用模式(例如流行趋势)是一个动态的过程,会随着社会中的各种复杂因素进行动态更新。
基于此,本公开提供了一种应用程序的推荐方法。
图1示出了根据本公开的一些实施例的应用程序的推荐方法的流程示意图。如图1所示,应用程序的推荐方法包括步骤S102~S106。
在步骤S102中,获取多个用户与多个应用程序的交互数据集,其中,交互数据集包括多个用户与多个应用程序进行交互的时间信息和地点信息。
获取多个用户与多个应用程序的交互数据集,交互数据集中包括每个用户与每个应用程序进行交互的时间信息和地点信息。例如,在时间t时,用户1于地点A访问了应用程序1。
获取包括用户与应用程序进行交互的时间信息和地点信息的交互数据集,能够充分挖掘不同用户在不同地点、不同时间对应用程序的偏好,即能够充分考虑时空差异对于用户使用应用程序的影响,从而能够提高应用程序的推荐的准确性。
在一些实施例中,需要对获取的交互数据集进行预处理。预处理包括数据清洗、地理位置网格化、数据过滤中的至少一项,以获得可用的交互数据集。
其中,地理位置网格化是指将交互数据集中涉及的地理位置(例如用经纬度表示)映射到预设规格的区域内,便于后续方便利用地点信息。例如可以将交互数据集中涉及的地理位置映射到边长为100米的矩形区域内。
在一些实施例中,推荐方法还包括将交互数据集中的所有交互数据的地点信息进行网格化处理,映射到预设规格的区域内;将所有交互数据的地点信息更新为在预设规格的区域内映射的地点信息。
在映射过程中,可以先将包含所有地理位置的原始区域网格化,之后再将网格化的原始区域映射到预设规格的区域内。
将交互数据集中的所有地点信息映射到预设规格的区域内,能够便于后续利用地点信息生成用户与应用程序之间的交互图,减少计算量。
在步骤S104中,根据交互数据集,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征。
从交互数据集中挖掘用户与应用程序的表征,从而能够根据用户的表征和应用程序的表征,确定向用户推荐的应用程序。如前所述,交互数据集中包括有地点信息和时间信息,因此利用交互数据集挖掘的用户与应用程序的表征能够体现时空差异性,从而能够提升向用户进行应用程序的推荐的准确性。
在一些实施例中,根据交互数据集,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征包括:根据交互数据集,确定在预设的各个时隙和各个区域内,多个用户中的每个用户与多个应用程序中的每个应用程序是否进行交互的交互信息;根据交互信息,构建多个用户与多个应用程序之间的交互图序列,其中,交互图序列包括各个时隙对应的交互图;根据交互图序列,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征。
在一些实施例中,根据交互数据集,确定在预设的各个时隙和各个区域内,多个用户中的每个用户与多个应用程序中的每个应用程序是否进行交互的交互信息包括:
根据时间信息能够将交互数据集划分为多个时隙内的多个子集。例如交互数据集涉及的时间长度为10小时,那么可以根据预设的时隙例如1小时,将交互数据集划分为10个子集,每个子集对应一个时隙,每个子集内包括交互数据集中对应时隙内的交互数据。
之后确定每个子集内的交互数据中的交互信息,也就是多个用户与多个应用程序是否进行了交互以及在哪里进行了交互。例如多个用户包括用户1、用户2、用户3,应用程序包括应用程序1、应用程序2、应用程序3、应用程序4。某个子集内的交互数据为用户1在地点1与应用程序1进行了交互,用户1在地点2与应用程序2进行了交互。那么交互信息为,用户1在地点1与应用程序1进行了交互,用户1在地点2与应用程序2进行了交互,用户1没有与应用程序3和应用程序4交互,用户2和用户3没有与应用程序1、应用程序2、应用程序3、应用程序4交互。
之后根据所有子集对应的交互信息,也就是根据所有时隙对应的交互信息构建多个用户与多个应用程序之间的交互图序列。
在一些实施例中,交互图序列中的每个交互图包括:每个用户对应的用户节点和每个应用程序对应的应用程序节点,每个节点具有节点属性,每个用户节点的节点属性根据其对应的用户与多个应用程序交互的区域生成,每个应用程序节点的节点属性根据其对应的应用程序与多个用户交互的区域生成,并且在用户与应用程序在交互图对应的时隙存在交互的情况下,用户对应的用户节点与应用程序对应的应用程序节点之间配置边。
在一些实施例中,交互图为二部图,交互图序列可以用Gt=(V,Et,At)表示。其中,t=1,2,…,T,t代表一段时间间隔(一个时隙),T代表交互图序列的时间序列长度。V是节点集合,包括用户节点与应用程序节点。Et为节点之间的边,若一个用户节点与一个应用程序节点之间存在一条边,则表示当前时间间隔t内该用户使用了该应用程序。At表示当前时间间隔t内的节点属性,采用用户访问不同地点的行为以及应用程序在不同地点上被使用的差异进行衡量。该属性是一个1×L维的向量,L为地点总数。若出现和地点相关的行为,则记为1,否则为0。具体地,对于用户节点u1,若在当前时间间隔t内访问过地点l1和l2,则u1的节点属性可以表示为[1,1,0,…,0]。对于App节点a1,在当前时间间隔t内在地点l1,l3都出现了被使用情况,则a1的节点属性可以表示为[1,0,1,…,0]。
图2示出了根据本公开的一些实施例的多个用户与多个应用程序之间的交互图序列的示意图。如图2所示,交互图序列200包括交互图210、交互图220、交互图230。交互图210、交互图220、交互图230分别与三个时隙对应,例如交互图210对应于时隙9:00-10:00,交互图220对应于时隙14:00-15:00,交互图230对应于时隙19:00-20:00。
在不同的时隙内,用户与应用程序交互的行为不同。例如相对于时隙9:00-10:00,在时隙19:00-20:00内用户倾向于在家使用购物等应用程序。
图2中U1~U3表示用户1~3,A1~A8表示应用程序1~8,并且交互图210、交互图220、交互图230左侧包括用户1~3小矩形、椭圆和大矩形分别表示不同的地点,例如小矩形表示公司,椭圆表示学习,大矩形表示家。用户和应用程序连接表示用户与应用程序存在交互。在交互图210中,表示用户1在时隙9:00-10:00内在公司访问了应用程序1和应用程序3。在交互图230中,表示用户1、用户2、用户3都是在家访问各个应用程序。
那么图2的各个交互图中包括三个用户节点,8个应用程序节点,三种区域(公司、学习、家),例如在交互图210中对应用户1的用户节点的节点属性可以表示为(1,0,0),表示用户1在时隙9:00-10:00内仅在公司与应用程序进行了交互。在交互图220中对应应用程序5的应用程序节点的节点属性可以表示为(1,1,0),表示应用程序5在时隙14:00-15:00内在公司和学校与用户进行了交互。
交互图序列能够体现不同时间间隔内用户使用应用程序的行为情况,从而能够反映用户与应用程序的节点属性随时间变化的情况,以使确定的第一表征和第二表征有效结合时空特征体现用户使用应用程序的行为偏好,还能够缓解数据稀疏性问题,提高为用户进行应用程序推荐的准确性。
在一些实施例中,根据交互图序列,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征包括:通过图卷积网络对交互图序列进行处理,确定每个用户的第一中间表征序列和每个应用程序的第二中间表征序列;通过门控逻辑单元对每个用户的第一中间表征序列和每个应用程序的第二中间表征序列进行处理,确定每个用户的第一表征和每个应用程序的第二表征。
图3示出了通过图卷积网络、门控逻辑单元处理交互图序列的流程示意图。如图3所示,分别表示在t1、t2、…、tn时隙内的交互图。在构建属性图(交互图)后,对每个时隙对应的交互图都通过图卷积网络(图中表示为GCN)进行处理,以进行交互特征的提取,从而获得每个用户的第一中间表征序列、每个应用程序的第二中间表征序列。之后通过两个门控逻辑单元分别对第一中间表征序列、第二中间表征矩阵序列进行处理,以进行时序特征的提取,从而获得交互图序列中涉及到的所有节点中的每个节点的表征,即每个用户的带有时序特征的用户表征(第一表征)和每个应用程序的带有时序特征的应用程序(App)表征(第二表征)。最后根据第一表征和第二表征完成推荐,例如获得前K个(Top-K)应用程序的推荐列表。
通过图卷积网络对交互图序列进行处理获得的第一中间表征序列和第二中间表征序列能够充分体现用户节点和应用程序节点之间的关联,获得结合应用程序节点信息的第一中间表征序列和结合用户节点信息的第二中间表征序列。
之后通过门控逻辑单元对第一中间表征序列和第二中间表征序列进行处理,能够充分挖掘第一中间表征序列和第二中间表征序列的时间演进属性,从而获得带有时序信息的第一表征和第二表征。
在一些实施例中,通过图卷积网络对交互图序列进行处理,确定每个用户的第一中间表征序列和每个应用程序的第二中间表征序列包括:确定交互图序列中的每个交互图的邻接矩阵和度矩阵;根据每个交互图的邻接矩阵和度矩阵、每个交互图中各个节点的节点属性,通过图卷积网络确定每个交互图中每个用户的第一中间表征和每个交互图中每个应用程序的第二中间表征;按照各个交互图对应的时隙的顺序,将所有交互图中每个用户的第一中间表征和每个应用程序的第二中间表征,组成每个用户的第一中间表征序列和每个应用程序的第二中间表征序列。
对于交互图序列中的每个交互图都利用图卷积网络进行处理,利用输出的所有第一中间表征和第二中间表征分别形成第一中间表征序列和第二中间表征序列。
在一些实施例中,图卷积网络包括预设层数,根据每个交互图的邻接矩阵和度矩阵、每个交互图中各个节点的节点属性,通过图卷积网络确定每个交互图中每个用户的第一中间表征和每个交互图中每个应用程序的第二中间表征包括:针对每个交互图,将交互图的邻接矩阵和度矩阵、交互图中各个节点的节点属性输入图卷积网络的第一层,以获得第一层输出的交互图的第一中间表征矩阵和第二中间表征矩阵;将交互图的邻接矩阵和度矩阵、当前层的上一层输出的的交互图的第一中间表征矩阵和第二中间表征矩阵输入当前层,以获得当前层输出的的交互图的第一中间表征矩阵和第二中间表征矩阵,直至获得最后一层输出的的交互图的第一中间表征矩阵和第二中间表征矩阵;将最后一层输出的交互图的第一中间表征矩阵中的特征确定为交互图中每个用户的第一中间表征,最后一层输出的交互图的的第二中间表征矩阵中的特征确定为交互图中每个应用程序的第二中间表征。
例如,预设图卷积网络为k层。确定交互图的邻接矩阵为A,度矩阵为D。第i层图卷积网络的输出可以用表示,其中,i=1,2,3…k,Ui第i层图卷积网络输出的第一中间表征,Ai表示第i层图卷积网络输出的第二中间表征。
那么其中,Wk是第i层图卷积网络的权重参数。/>I为单位阵,表示为邻接矩阵A添加自回环,因为交互图中的每个节点到自身的距离为0,添加自回环后能够表示节点与自身相连。
也就是说,图卷积网络的每一层的输出根据通过邻接矩阵和度矩阵、上一层的输出获得。此外,对于第二层图卷积网络的输出通过邻接矩阵和度矩阵、及节点属性获得。节点属性可以类似的形式用包含用户节点属性和应用程序节点属性的矩阵表示。
将最后一层的第一中间表征Uk作为多个用户的第一中间表征,最后一层的第二中间表征Ak作为多个应用程序的第二中间表征,从而能够获得每个用户的第一中间表征,每个应用程序的第二中间表征。
利用图卷积网络获得的每个用户的第一中间表征、每个应用程序的第二中间表征充分结合了用户节点和应用程序节点的信息,之后利用门控逻辑单元充分利用用户、应用程序的时序特征。
在一些实施例中,所述门控逻辑单元包括:第一门控逻辑单元,所述每个用户的第一中间表征序列包括各个时隙对应的所述每个用户的第一中间表征,所述通过门控逻辑单元对所述每个用户的第一中间表征序列和所述每个应用程序的第二中间表征序列进行处理,确定每个应用程序的第一表征和所述每个应用程序的第二表征包括:将第一个时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的第一个时隙对应的第一隐藏表征;将上一个时隙对应的第一隐藏表征、当前时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的当前时隙对应的第一隐藏表征;将当前时隙对应的第一隐藏表征、当前时隙的下一个时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的当前时隙的下一个对应的第一隐藏表征;将倒数第二个时隙对应的第一隐藏特征、最后一个时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的更新的最后一个时隙对应的第一中间表征,并确定为第一表征。
门控逻辑单元由两个门控单元,包括更新门和重置门,计算快速高效。图4示出了根据本公开一些实施例的门控逻辑单元的结构示意图。如图4所示,门控逻辑单元在当前时隙输入Xt、ht-1,输出ht,ht用于在当前时隙的下一个时隙的计算。ht表示隐藏门输出,Zt表示更新门,rt表示重置门。
对于第一中间表征序列中的每一个第一中间表征更新门(记作/>)和重置门(记作/>)的输出由上一个时隙对应的第一隐藏表征/>当前时隙对应的第一中间表征确定,以获得输出的当前时隙对应的第一隐藏表征/>之后获得下一个时隙对应的第一隐藏表征/>例如可以通过以下公式表示。
其中,GRUuser表示第一门控逻辑单元,Wzu、Mzu、Wru、Mru、Whu、Whu以及表示权重参数,bzn、bru、bhu为偏置项。
将倒数第二个时隙对应的第一隐藏特征、最后一个时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的更新的最后一个时隙对应的第一中间表征,并确定为第一表征。这样输出的第一表征结合了第一中间表征序列中所有第一中间表征的信息,能够提高后续根据第一表征为用户推荐应用程序的准确性。
在一些实施例中,通过门控逻辑单元对第一中间表征序列和第二中间表征序列进行处理,确定第一表征和第二表征包括:通过第二门控逻辑单元对第二中间表征序列进行处理,确定多个应用程序中的每个应用程序的第二表征:对于第二中间表征序列中的每一个第二中间表征,结合第二中间表征序列中的上一个第二中间表征,确定更新的第二中间表征;结合更新的第二中间表征,确定更新的第二中间表征序列中的下一个第二中间表征,直至确定第二中间表征序列中的最后一个更新的第二中间表征;将最后一个更新的第二中间表征确定为第二表征。
类似地,对于第二中间表征序列中的每一个第二中间表征更新门(记作/>)和重置门(记作/>)的输出上一个时隙对应的第一隐藏表征/>当前时隙对应的第一中间表征/>确定,以获得输出的当前时隙对应的第一隐藏表征/>之后获得下一个时隙对应的第一隐藏表征/>例如可以通过以下公式表示。
其中,GRUApp表示第二门控逻辑单元,Wza、Mza、Wra、Mta、Wha、Wha以及表示权重参数,bza、bra、bha为偏置项。
将倒数第二个时隙对应的第二隐藏特征、最后一个时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的更新的最后一个时隙对应的第二中间表征,并确定为第二表征。这样输出的第二表征结合了第二中间表征序列中所有第二中间表征的信息,能够提高后续根据第一表征为用户推荐应用程序的准确性。
第一表征和第二表征充分利用了图卷积网络的特征聚合和提取的能力,并结合门控逻辑单元在时序特征上的预测性能,从而能够从交互数据集中有效挖掘出用户与应用程序的动态时空特征,提供准确的应用程序的推荐方案。
在步骤S106中,根据每个用户的第一表征、每个应用程序的第二表征,确定向多个用户中的每个用户推荐的应用程序。
在一些实施例中,根据每个用户的第一表征、每个应用程序的第二表征,确定向多个用户中的每个用户推荐的应用程序包括:对于每个用户,确定用户未使用的应用程序的第二表征;通过用户的第一表征和用户未使用的应用程序的第二表征,确定用户对未使用的应用程序之间的偏好值;根据便好值,确定向用户推荐的应用程序。
在一些实施例中,通过用户的第一表征和用户未使用的应用程序的第二表征,确定用户对未使用的应用程序之间的偏好值包括:将第一表征与第二表征做向量叉乘,将叉乘结果作为用户对应用程序的偏好值。
在一些实施例中,根据便好值,确定向用户推荐的未使用的应用程序包括:将用户未使用的应用程序按照偏好值的降序顺序排列,以形成推荐表单;将推荐表单下发给用户。
根据用户的第一表征与应用程序的第二表征,获得用户与应用程序的偏好值,从而根据偏好值为用户推荐应用程序。如前所述第一表征和第二表征充分利用了用户与应用程序进行交互的时间信息和地点信息,即能够体现时空差异性,因此基于第一表征和第二表征能够为用户推荐符合喜好的应用程序。
在上述实施例中,本公开通过获取包括多个用户与多个应用程序进行交互的时间信息和地点信息的交互数据集,之后根据交互数据集获得每个用户和每个应用程序的表征,从而能够根据用户的表征以及用户未使用的应用程序的表征确定向用户推荐的未使用的应用程序。本公开的推荐方法利用了用户与应用程序进行交互的时间信息和地点信息,挖掘不同时空下用户对应用程序的偏好情况以及应用程序的使用模式,为不同用户提供个性化推荐,提高应用程序的推荐的准确性。
图5示出了根据本公开的一些实施例的应用程序的推荐装置的结构示意图。如图5所示,应用程序的推荐装置500包括:
获取模块510,被配置为获取多个用户与多个应用程序的交互数据集,其中,交互数据集包括多个用户与多个应用程序进行交互的时间信息和地点信息;
第一确定模块520,被配置为根据交互数据集,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征;
第二确定模块530,被配置为根据每个用户的第一表征、每个应用程序的第二表征,确定向多个用户中的每个用户推荐的应用程序。
在一些实施例中,第一确定模块520被配置为根据交互数据集,确定在预设的各个时隙和各个区域内,多个用户中的每个用户与多个应用程序中的每个应用程序是否进行交互的交互信息;根据交互信息,构建多个用户与多个应用程序之间的交互图序列,其中,交互图序列包括各个时隙对应的交互图;根据交互图序列,确定多个用户中的每个用户的第一表征、多个应用程序中的每个应用程序的第二表征。
在一些实施例中,交互图序列中的每个交互图包括:每个用户对应的用户节点和每个应用程序对应的应用程序节点,每个节点具有节点属性,每个用户节点的节点属性根据其对应的用户与多个应用程序交互的区域生成,每个应用程序节点的节点属性根据其对应的应用程序与多个用户交互的区域生成,并且在用户与应用程序在交互图对应的时隙存在交互的情况下,用户对应的用户节点与应用程序对应的应用程序节点之间配置边。
在一些实施例中,第一确定模块520被配置为通过图卷积网络对交互图序列进行处理,确定每个用户的第一中间表征序列和每个应用程序的第二中间表征序列;通过门控逻辑单元对每个用户的第一中间表征序列和每个应用程序的第二中间表征序列进行处理,确定每个用户的第一表征和每个应用程序的第二表征。
在一些实施例中,第一确定模块520被配置为确定交互图序列中的每个交互图的邻接矩阵和度矩阵;根据每个交互图的邻接矩阵和度矩阵、每个交互图中各个节点的节点属性,通过图卷积网络确定每个交互图中每个用户的第一中间表征和每个交互图中每个应用程序的第二中间表征;按照各个交互图对应的时隙的顺序,将所有交互图中每个用户的第一中间表征和每个应用程序的第二中间表征,组成每个用户的第一中间表征序列和每个应用程序的第二中间表征序列。
在一些实施例中,图卷积网络包括预设层数,第一确定模块520被配置为针对每个交互图,将交互图的邻接矩阵和度矩阵、交互图中各个节点的节点属性输入图卷积网络的第一层,以获得第一层输出的交互图的第一中间表征矩阵和第二中间表征矩阵;将交互图的邻接矩阵和度矩阵、当前层的上一层输出的交互图的第一中间表征矩阵和第二中间表征矩阵输入当前层,以获得当前层输出的交互图的第一中间表征矩阵和第二中间表征矩阵,直至获得最后一层输出的交互图的第一中间表征矩阵和第二中间表征矩阵;将最后一层输出的交互图的第一中间表征矩阵中的特征确定为交互图中每个用户的第一中间表征,最后一层输出的交互图的第二中间表征矩阵中的特征确定为交互图中每个应用程序的第二中间表征。
在一些实施例中,门控逻辑单元包括:第一门控逻辑单元,第一确定模块520被配置为将第一个时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的第一个时隙对应的第一隐藏表征;将上一个时隙对应的第一隐藏表征、当前时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的当前时隙对应的第一隐藏表征;将当前时隙对应的第一隐藏表征、当前时隙的下一个时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的当前时隙的下一个对应的第一隐藏表征;将倒数第二个时隙对应的第一隐藏特征、最后一个时隙对应的第一中间表征输入第一门控逻辑单元,以获得输出的更新的最后一个时隙对应的第一中间表征,并确定为第一表征。
在一些实施例中,门控逻辑单元包括:第二门控逻辑单元,第一确定模块520被配置为包括:将第一个时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的第一个时隙对应的第二隐藏表征;将上一个时隙对应的第二隐藏表征、当前时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的当前时隙对应的第二隐藏表征;将当前时隙对应的第二隐藏表征、当前时隙的下一个时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的当前时隙的下一个对应的第二隐藏表征;将倒数第二个时隙对应的第二隐藏特征、最后一个时隙对应的第二中间表征输入第二门控逻辑单元,以获得输出的更新的最后一个时隙对应的第二中间表征,并确定为第二表征。
在一些实施例中,第二确定模块530被配置为对于每个用户,确定用户未使用的应用程序的第二表征;通过用户的第一表征和用户未使用的应用程序的第二表征,确定用户对未使用的应用程序之间的偏好值;根据便好值,确定向用户推荐的应用程序。
在一些实施例中,第二确定模块530被配置为将用户未使用的应用程序按照偏好值的降序顺序排列,以形成推荐表单;将推荐表单下发给用户。
在一些实施例中,应用程序的推荐装置500还包括:将交互数据集中的所有交互数据的地点信息进行网格化处理,映射到预设规格的区域内;将所有交互数据的地点信息更新为在预设规格的区域内映射的地点信息。
本公开提供了一种电子设备,包括:处理器;以及耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如前所述的应用程序的推荐方法。
本公开的电子设备包括应用程序的推荐装置,下面结合图6、图7介绍应用程序的推荐装置。
图6示出了根据本公开的另一些实施例的应用程序的推荐装置的结构示意图。如图6所示,该实施例的装置600包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行本公开中任意一些实施例中的应用程序的推荐方法。
其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图7示出了根据本公开的又一些实施例的应用程序的推荐装置的结构示意图。如图7所示,该实施例的装置700包括:存储器710以及处理器720,分别与存储器610以及处理器620类似。还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口750为SD卡、U盘等外置存储设备提供连接接口。
在上述实施例中,本公开通过获取包括多个用户与多个应用程序进行交互的时间信息和地点信息的交互数据集,之后根据交互数据集获得每个用户和每个应用程序的表征,从而能够根据用户的表征以及用户未使用的应用程序的表征确定向用户推荐的未使用的应用程序。本公开的推荐方法利用了用户与应用程序进行交互的时间信息和地点信息,挖掘不同时空下用户对应用程序的偏好情况以及应用程序的使用模式,为不同用户提供个性化推荐,提高应用程序的推荐的准确性。
本公开的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如前所述的应用程序的推荐方法的步骤。
图8示出了根据本公开的一些实施例的应用程序的推荐模型的训练方法的流程示意图。如图8所示,应用程序的推荐模型的训练方法包括步骤S802~S810。
在步骤S802中,获取多个应用程序的样本交互数据集,其中,样本交互数据集包括多个样本用户与多个样本应用程序进行交互的时间信息和地点信息。
在获取样本交互数据集的过程中,如前所述,在一些实施例中,需要对获取的交互数据集进行预处理。预处理包括数据清洗、地理位置网格化、数据过滤中的至少一项,以获得可用的交互数据集。
在步骤S804中,通过推荐模型对样本交互数据集进行处理,确定多个样本用户中的每个样本用户的第一表征、多个样本应用程序中的每个样本应用程序的第二表征。
通过推荐模型输出的第一表征和第二表征,来衡量推荐模型的准确性。对推荐模型不断调整,直到获得满足终止条件的第一表征和第二表征,此时第一表征和第二表征能够为用户确定较准确的推荐的应用程序。
在步骤S806中,根据每个样本用户的第一表征、每个样本应用程序的第二表征,确定每个样本用户对每个样本应用程序的偏好值。
在一些实施例中,将样本用户的第一表征和样本应用程序的第二表征做向量叉乘,以叉乘的结果表示样本用户对样本应用程序的偏好值。
在步骤S808中,基于偏好值确定损失函数,以通过损失函数对推荐模型进行调整。
在一些实施例中,基于偏好值确定损失函数包括:确定每个样本用户对交互过的每个样本应用程序的正向偏好值、对未交互过的每个样本应用程序的反向偏好值;根据每个样本用户的所有正向偏好值与所有反向偏好值,确定每个样本用户的偏好值差距;基于所有样本用户的偏好值差距,确定损失函数。
通过每个样本用户对所有应用程序的正向偏好值和反向偏好值之间的差距确定损失函数,使得损失函数能够体现样本用户对交互过的应用程序和未交互过的应用程序的偏好差距,从而使得将推荐模型调整为能够充分体现本用户对交互过的应用程序和未交互过的应用程序的偏好差距,以使推荐模型能够发现倾向于表现为用户的正向偏好的应用程序。
在一些实施例中,损失函数为贝叶斯个性化排序函数,并增加L2正则化(RidgeRegression)项防止过拟合。
在一些实施例中,根据每个样本用户的所有正向偏好值与所有反向偏好值,确定每个样本用户的偏好值差距包括:确定每个样本用户的任意一个正向偏好值与任意一个反向偏好值之间的差距;将所有差距的均值确定为每个样本用户的偏好值差距。
在步骤S810中,满足终止条件的情况下,完成推荐模型的训练。
在一些实施例中,终止条件为调整后获得的损失函数的值与调整前获得的损失函数的值的差距小于预设阈值。例如终止条件可以为调整前与调整后获得的损失函数的值小于10-4。
在完成推荐模型的训练后,可以采用推荐模型为用户推荐应用程序。图9示出了根据本公开的一些实施例的从训练推荐模型到使用训练模型的流程示意图。如图9所示,包括步骤S902~S906。
在步骤S902中,从基站获取多个用户与多个应用程序的交互数据集。
在一些实施例中,获取可用的交互数据集需要经过数据采集、数据清洗、坐标网格化(上文中地理位置网格化)和数据过滤等过程。从交互数据集中可以获取训练集,用于下面步骤中训练推荐模型。
在步骤S904中,构建交互图(属性图)序列。
在一些实施例中,构建交互图序列包括用户空间特征提取(上文中的用户节点属性)、App空间特征提取(上文中的应用程序节点属性),从而构建交互图(属性图)、交互图序列。
在步骤S906中,对应用程序(App)的推荐模型进行训练。
在一些实施例中,训练推荐模型包括构建推荐模型、训练推荐模型、对推荐模型训练完成后可以获得向用户的推荐列表,下发给用户。
通过上述过程能够提供向用户进行应用程序的推荐的准确性,从而提升用户满意度、增加用户粘性,增加移动数据使用量,创造营收机会。
图10示出了根据本公开的另一些实施例的从训练推荐模型到使用训练模型的流程示意图。如图10所示,应用程序的推荐模型的训练方法包括步骤S1002~S1024。
在步骤S1002中,获取用户使用应用程序(App)的数据。数据包括用户标识(ID)、用户的地点信息(用户当前所在位置的坐标,例如用经纬度表示),用户使用的应用程序标识(App ID),用户的时间信息(当前时间戳,例如格式为-年-月-日-时-分-秒)
在步骤S1004中,对数据进行清洗,将重复或具有空缺字段的数据删除。
在步骤S1006中,对数据中的地点信息(地理位置信息)进行网格化处理,例如将经纬度坐标映射到边长为100米的正方形区域内。
在步骤S1008中,对处理后的数据进行筛选。考虑到用户活跃度以及地点的热门情况,对与记录中使用应用程序数量少于10个的用户以及区域内被使用的应用程序数量少于15个的地点,将其删除。
在步骤S1010中,计算地理特征,即为每个用户和每个应用程序的对应的节点属性。
在步骤S1012中,构建交互(属性)二部图序列。
在步骤S1014中,确定交互二部图序列中的每个二部图的邻接矩阵、度矩阵。
在步骤S1016中,设定推荐模型的基本参数,例如设定序列步长、图卷积网络和门控逻辑单元的神经元数量等。
在步骤S1018中,对推荐模型进行训练,推荐模型带有时空语义信息。
在步骤S1020中,判断是否符合停止条件,若是执行步骤S1022,否则返回步骤S1018。
在步骤S1022中,完成对推荐模型的训练,输出用户表征、App表征。
在步骤S1024中,根据用户表征、App表征获得对用户的推荐列表。
图11示出了根据本公开的一些实施例的应用程序的推荐模型的训练装置的结构示意图。如图11所示,应用程序的推荐模型的训练装置1100包括:
获取模块1110,获取多个样本用户与多个样本应用程序的样本交互数据集,其中,样本交互数据集包括多个样本用户与多个样本应用程序进行交互的时间信息和地点信息;
第一确定模块1120,通过推荐模型对样本交互数据集进行处理,确定多个样本用户中的每个样本用户的第一表征、多个样本应用程序中的每个样本应用程序的第二表征;
第二确定模块1130,根据每个用户的第一表征、每个应用程序的第二表征,确定每个样本用户对每个样本应用程序的偏好值;
调整模块1140,基于偏好值确定损失函数,以通过损失函数对推荐模型进行调整;
完成模块1150,在满足终止条件的情况下,完成推荐模型的训练。
在一些实施例中,调整模块1140被配置为确定每个样本用户对交互过的每个样本应用程序的正向偏好值、对未交互过的每个样本应用程序的反向偏好值;根据每个样本用户的所有正向偏好值与所有反向偏好值,确定每个样本用户的偏好值差距;基于所有样本用户的偏好值差距,确定损失函数。
在一些实施例中,调整模块1140被配置为确定每个样本用户的任意一个正向偏好值与任意一个反向偏好值之间的差距;将所有差距的均值确定为每个样本用户的偏好值差距。
在一些实施例中,终止条件为调整后获得的损失函数的值与调整前获得的损失函数的值的差距小于预设阈值。
在上述实施例中,通过每个样本用户对所有应用程序的正向偏好值和反向偏好值之间的差距确定损失函数,使得损失函数能够体现样本用户对交互过的应用程序和未交互过的应用程序的偏好差距,从而使得将推荐模型调整为能够充分体现本用户对交互过的应用程序和未交互过的应用程序的偏好差距,以使推荐模型能够发现倾向于表现为用户的正向偏好的应用程序。
本公开提供的电子设备中包括的存储器还存储有指令,指令被处理器执行时,使处理器执行如前所述的应用程序的推荐模型的训练方法。
本公开的电子设备还包括应用程序的推荐模型的训练装置,下面结合图12、图13介绍应用程序的推荐装置。
图12示出了根据本公开的另一些实施例的应用程序的推荐模型的训练装置的结构示意图。如图12所示,该实施例的装置1200包括:存储器1210以及耦接至该存储器1210的处理器1220,处理器1220被配置为基于存储在存储器1210中的指令,执行本公开中任意一些实施例中的应用程序的推荐方法。
其中,存储器1210例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图13示出了根据本公开的又一些实施例的应用程序的推荐模型的训练装置的结构示意图。如图13所示,该实施例的装置1300包括:存储器1310以及处理器1320,分别与存储器1210以及处理器1220类似。还可以包括输入输出接口1330、网络接口1340、存储接口1350等。这些接口1330,1340,1350以及存储器1310和处理器1320之间例如可以通过总线1360连接。其中,输入输出接口1330为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口1340为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口1350为SD卡、U盘等外置存储设备提供连接接口。
在上述实施例中,通过每个样本用户对所有应用程序的正向偏好值和反向偏好值之间的差距确定损失函数,使得损失函数能够体现样本用户对交互过的应用程序和未交互过的应用程序的偏好差距,从而使得将推荐模型调整为能够充分体现本用户对交互过的应用程序和未交互过的应用程序的偏好差距,以使推荐模型能够发现倾向于表现为用户的正向偏好的应用程序。
本公开的实施例提供的计算机可读存储介质,其上还存储有计算机程序,其特征在于,该程序被处理器执行时实现如前所述的应用程序的推荐模型的训练方法的步骤。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (19)
1.一种应用程序的推荐方法,包括:
获取多个用户与多个应用程序的交互数据集,其中,所述交互数据集包括所述多个用户与所述多个应用程序进行交互的时间信息和地点信息;
根据所述交互数据集,确定所述多个用户中的每个用户的第一表征、所述多个应用程序中的每个应用程序的第二表征;
根据所述每个用户的第一表征、所述每个应用程序的第二表征,确定向所述多个用户中的每个用户推荐的应用程序。
2.根据权利要求1所述的推荐方法,其中,所述根据所述交互数据集,确定所述多个用户中的每个用户的第一表征、所述多个应用程序中的每个应用程序的第二表征包括:
根据所述交互数据集,确定在预设的各个时隙和各个区域内,所述多个用户中的每个用户与所述多个应用程序中的每个应用程序是否进行交互的交互信息;
根据所述交互信息,构建所述多个用户与所述多个应用程序之间的交互图序列,其中,所述交互图序列包括各个时隙对应的交互图;
根据所述交互图序列,确定所述多个用户中的每个用户的第一表征、所述多个应用程序中的每个应用程序的第二表征。
3.根据权利要求2所述的推荐方法,其中,所述交互图序列中的每个交互图包括:所述每个用户对应的用户节点和所述每个应用程序对应的应用程序节点,每个节点具有节点属性,每个用户节点的节点属性根据其对应的用户与所述多个应用程序交互的区域生成,每个应用程序节点的节点属性根据其对应的应用程序与所述多个用户交互的区域生成,并且在用户与应用程序在所述交互图对应的时隙存在交互的情况下,所述用户对应的用户节点与所述应用程序对应的应用程序节点之间配置边。
4.根据权利要求3所述的推荐方法,其中,所述根据所述交互图序列,确定所述多个用户中的每个用户的第一表征、所述多个应用程序中的每个应用程序的第二表征包括:
通过图卷积网络对所述交互图序列进行处理,确定所述每个用户的第一中间表征序列和所述每个应用程序的第二中间表征序列;
通过门控逻辑单元对所述每个用户的第一中间表征序列和所述每个应用程序的第二中间表征序列进行处理,确定所述每个用户的第一表征和所述每个应用程序的第二表征。
5.根据权利要求4所述的推荐方法,其中,所述通过图卷积网络对所述交互图序列进行处理,确定所述每个用户的第一中间表征序列和所述每个应用程序的第二中间表征序列包括:
确定所述交互图序列中的每个交互图的邻接矩阵和度矩阵;
根据所述每个交互图的邻接矩阵和度矩阵、所述每个交互图中各个节点的节点属性,通过图卷积网络确定所述每个交互图中每个用户的第一中间表征和所述每个交互图中所述每个应用程序的第二中间表征;
按照各个交互图对应的时隙的顺序,将所有交互图中所述每个用户的第一中间表征和所述每个应用程序的第二中间表征,组成所述每个用户的第一中间表征序列和所述每个应用程序的第二中间表征序列。
6.根据权利要求5所述的推荐方法,其中,所述图卷积网络包括预设层数,所述根据所述每个交互图的邻接矩阵和度矩阵、所述每个交互图中各个节点的节点属性,通过图卷积网络确定所述每个交互图中每个用户的第一中间表征和所述每个交互图中所述每个应用程序的第二中间表征包括:针对每个交互图,
将所述交互图的邻接矩阵和度矩阵、所述交互图中各个节点的节点属性输入所述图卷积网络的第一层,以获得第一层输出的所述交互图的第一中间表征矩阵和第二中间表征矩阵;
将所述交互图的邻接矩阵和度矩阵、当前层的上一层输出的所述交互图的第一中间表征矩阵和第二中间表征矩阵输入当前层,以获得当前层输出的所述交互图的第一中间表征矩阵和第二中间表征矩阵,直至获得最后一层输出的所述交互图的第一中间表征矩阵和第二中间表征矩阵;
将所述最后一层输出的所述交互图的第一中间表征矩阵中的特征确定为所述交互图中每个用户的第一中间表征,所述最后一层输出的所述交互图的第二中间表征矩阵中的特征确定为所述交互图中每个应用程序的第二中间表征。
7.根据权利要求4所述的推荐方法,其中,所述门控逻辑单元包括:第一门控逻辑单元,所述每个用户的第一中间表征序列包括各个时隙对应的所述每个用户的第一中间表征,所述通过门控逻辑单元对所述每个用户的第一中间表征序列和所述每个应用程序的第二中间表征序列进行处理,确定每个应用程序的第一表征和所述每个应用程序的第二表征包括:
将第一个时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的第一个时隙对应的第一隐藏表征;
将上一个时隙对应的第一隐藏表征、当前时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的当前时隙对应的第一隐藏表征;将当前时隙对应的第一隐藏表征、当前时隙的下一个时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的当前时隙的下一个对应的第一隐藏表征;
将倒数第二个时隙对应的第一隐藏特征、最后一个时隙对应的第一中间表征输入所述第一门控逻辑单元,以获得输出的更新的最后一个时隙对应的第一中间表征,并确定为第一表征。
8.根据权利要求4所述的推荐方法,其中,所述门控逻辑单元包括:第二门控逻辑单元,所述每个应用程序的第二中间表征序列包括各个时隙对应的所述每个应用程序的第二中间表征,所述通过门控逻辑单元对所述每个用户的第一中间表征序列和所述每个应用程序的第二中间表征序列进行处理,确定所述每个用户的第一表征和所述每个应用程序的第二表征包括:
将第一个时隙对应的第二中间表征输入所述第二门控逻辑单元,以获得输出的第一个时隙对应的第二隐藏表征;
将上一个时隙对应的第二隐藏表征、当前时隙对应的第二中间表征输入所述第二门控逻辑单元,以获得输出的当前时隙对应的第二隐藏表征;将当前时隙对应的第二隐藏表征、当前时隙的下一个时隙对应的第二中间表征输入所述第二门控逻辑单元,以获得输出的当前时隙的下一个对应的第二隐藏表征;
将倒数第二个时隙对应的第二隐藏特征、最后一个时隙对应的第二中间表征输入所述第二门控逻辑单元,以获得输出的更新的最后一个时隙对应的第二中间表征,并确定为第二表征。
9.根据权利要求1所述的推荐方法,其中,所述根据所述每个用户的第一表征、所述每个应用程序的第二表征,确定向所述多个用户中的每个用户推荐的应用程序包括:对于所述每个用户,
确定所述用户未使用的应用程序的第二表征;
通过所述用户的第一表征和所述用户未使用的应用程序的第二表征,确定所述用户对所述未使用的应用程序之间的偏好值;
根据所述便好值,确定向所述用户推荐的应用程序。
10.根据权利要求9所述的推荐方法,其中,所述根据所述便好值,确定向所述用户推荐的未使用的应用程序包括:
将所述用户未使用的应用程序按照偏好值的降序顺序排列,以形成推荐表单;
将所述推荐表单下发给所述用户。
11.根据权利要求2所述的推荐方法,还包括:
将所述交互数据集中的所有交互数据的地点信息进行网格化处理,映射到预设规格的区域内;
将所述所有交互数据的地点信息更新为在所述预设规格的区域内映射的地点信息。
12.一种应用程序的推荐模型的训练方法,包括:
获取多个样本用户与多个样本应用程序的样本交互数据集,其中,所述样本交互数据集包括所述多个样本用户与所述多个样本应用程序进行交互的时间信息和地点信息;
通过所述推荐模型对所述样本交互数据集进行处理,确定所述多个样本用户中的每个样本用户的第一表征、所述多个样本应用程序中的每个样本应用程序的第二表征;
根据所述每个样本用户的第一表征、所述每个样本应用程序的第二表征,确定所述每个样本用户对所述每个样本应用程序的偏好值;
基于所述偏好值确定损失函数,以通过所述损失函数对所述推荐模型进行调整;
在满足终止条件的情况下,完成所述推荐模型的训练。
13.根据权利要求12所述的训练方法,其中,所述基于所述偏好值确定损失函数包括:
确定所述每个样本用户对交互过的每个样本应用程序的正向偏好值、对未交互过的每个样本应用程序的反向偏好值;
根据所述每个样本用户的所有正向偏好值与所有反向偏好值,确定所述每个样本用户的偏好值差距;
基于所有样本用户的所述偏好值差距,确定损失函数。
14.根据权利要求13所述的训练方法,其中,所述根据所述每个样本用户的所有正向偏好值与所有反向偏好值,确定所述每个样本用户的偏好值差距包括:
确定所述每个样本用户的任意一个正向偏好值与任意一个反向偏好值之间的差距;
将所有差距的均值确定为所述每个样本用户的偏好值差距。
15.根据权利要求13所述的训练方法,其中,所述终止条件为调整后获得的损失函数的值与调整前获得的损失函数的值的差距小于预设阈值。
16.一种应用程序的推荐装置,包括:
获取模块,被配置为获取多个用户与多个应用程序的交互数据集,其中,所述交互数据集包括所述多个用户与所述多个应用程序进行交互的时间信息和地点信息;
第一确定模块,被配置为根据所述交互数据集,确定所述多个用户中的每个用户的第一表征、所述多个应用程序中的每个应用程序的第二表征;
第二确定模块,被配置为根据所述每个用户的第一表征、所述每个应用程序的第二表征,确定向所述多个用户中的每个用户推荐的应用程序。
17.一种应用程序的推荐模型的训练装置,包括:
获取模块,获取多个样本用户与多个样本应用程序的样本交互数据集,其中,所述样本交互数据集包括所述多个样本用户与所述多个样本应用程序进行交互的时间信息和地点信息;
第一确定模块,通过所述推荐模型对所述样本交互数据集进行处理,确定所述多个样本用户中的每个样本用户的第一表征、所述多个样本应用程序中的每个样本应用程序的第二表征;
第二确定模块,根据所述每个样本用户的第一表征、所述每个应用程序的第二表征,确定所述每个样本用户对所述每个样本应用程序的偏好值;
调整模块,基于所述偏好值确定损失函数,以通过所述损失函数对所述推荐模型进行调整;
完成模块,在满足终止条件的情况下,完成所述推荐模型的训练。
18.一种电子设备,包括:
处理器;以及
耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如权利要求1至11中任一项所述的应用程序的推荐方法或者权利要求12至15中任一项所述的应用程序的推荐模型的训练方法。
19.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1至11中任一项所述的应用程序的推荐方法的步骤或者权利要求12至15中任一项所述的应用程序的推荐模型的训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311594954.5A CN117493694A (zh) | 2023-11-27 | 2023-11-27 | 应用程序的推荐方法、推荐模型的训练方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311594954.5A CN117493694A (zh) | 2023-11-27 | 2023-11-27 | 应用程序的推荐方法、推荐模型的训练方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117493694A true CN117493694A (zh) | 2024-02-02 |
Family
ID=89674486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311594954.5A Pending CN117493694A (zh) | 2023-11-27 | 2023-11-27 | 应用程序的推荐方法、推荐模型的训练方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493694A (zh) |
-
2023
- 2023-11-27 CN CN202311594954.5A patent/CN117493694A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Steiger et al. | Exploration of spatiotemporal and semantic clusters of Twitter data using unsupervised neural networks | |
CN109992710A (zh) | 点击率预估方法、系统、介质和计算设备 | |
CN111695046B (zh) | 基于时空移动数据表征学习的用户画像推断方法及装置 | |
Chen et al. | Dynamic clustering collaborative filtering recommendation algorithm based on double-layer network | |
CN113610265A (zh) | 一种基于超图卷积网络的时空行为预测方法及系统 | |
CN105580043A (zh) | 用于推荐系统的基于强度的建模 | |
US20220139010A1 (en) | Generating visualizations of analytical causal graphs | |
CN114417174B (zh) | 内容推荐方法、装置、设备及计算机存储介质 | |
Pálovics et al. | Location-aware online learning for top-k recommendation | |
CN112817563A (zh) | 目标属性配置信息确定方法、计算机设备和存储介质 | |
EP3192061A1 (en) | Measuring and diagnosing noise in urban environment | |
Jin et al. | EcoLens: visual analysis of ecological regions in urban contexts using traffic data | |
CN110232151A (zh) | 一种混合概率分布检测的QoS预测模型的构建方法 | |
CN112686690A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
Zhang et al. | A hybrid model for high spatial and temporal resolution population distribution prediction | |
CN114417166B (zh) | 基于行为序列和动态社交影响的连续兴趣点推荐方法 | |
Xiang et al. | Camer: a context-aware mobile service recommendation system | |
CN117493694A (zh) | 应用程序的推荐方法、推荐模型的训练方法和装置 | |
CN110633890A (zh) | 一种土地利用效率判断方法和系统 | |
CN113626697A (zh) | 一种基于anchor-LDA和卷积神经网络的兴趣点推荐方法 | |
Taillandier et al. | Automatic revision of rules used to guide the generalisation process in systems based on a trial and error strategy | |
CN115062230B (zh) | 数据处理方法、装置、设备、介质和程序产品 | |
Deng et al. | MVCV-Traffic: multiview road traffic state estimation via cross-view learning | |
Santos et al. | MAT-Tree: A Tree-based Method for Multiple Aspect Trajectory Clustering | |
WO2024114034A1 (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 |