CN113962156A - 基于矩阵分解模型的剪枝方法、装置、设备、存储介质 - Google Patents

基于矩阵分解模型的剪枝方法、装置、设备、存储介质 Download PDF

Info

Publication number
CN113962156A
CN113962156A CN202111244280.7A CN202111244280A CN113962156A CN 113962156 A CN113962156 A CN 113962156A CN 202111244280 A CN202111244280 A CN 202111244280A CN 113962156 A CN113962156 A CN 113962156A
Authority
CN
China
Prior art keywords
matrix
target
parameters
model
parameter
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.)
Granted
Application number
CN202111244280.7A
Other languages
English (en)
Other versions
CN113962156B (zh
Inventor
何向南
王艳芳
隋勇铎
王翔
刘振广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN202111244280.7A priority Critical patent/CN113962156B/zh
Publication of CN113962156A publication Critical patent/CN113962156A/zh
Application granted granted Critical
Publication of CN113962156B publication Critical patent/CN113962156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于矩阵分解模型的剪枝方法,包括:获取目标矩阵分解模型的模型结构数据,其中,模型结构数据包括多个矩阵参数;多个矩阵参数的每一行分别对应一个目标用户或一个目标物品;根据多个矩阵参数确定目标矩阵分解模型中可被剪枝的第一矩阵参数;利用基于第一矩阵参数生成的第二矩阵参数更新矩阵集合;以及通过评价指标确定矩阵集合中的目标矩阵参数。本公开提供的基于矩阵分解模型的剪枝方法能够在保证模型性能的同时,减少表征矩阵的参数量,从而有效地降低模型能耗,并且加快推理速度。

Description

基于矩阵分解模型的剪枝方法、装置、设备、存储介质
技术领域
本公开涉及机器学习与数据挖掘领域,更具体地,涉及一种基于矩阵分解模型的剪枝方法、装置、电子设备和存储介质。
背景技术
推荐***旨在捕捉用户对于物品的兴趣偏好,提供精准的个性化推荐服务,已经被广泛应用于现实互联网场景中。近年来,由于矩阵分解算法能够兼具协同过滤和隐语义的优势,并且易于实现拓展,逐渐成为了推荐***领域的主流技术。基于矩阵分解的推荐模型使用表征向量来表示每个用户和物品的潜在语义。所有用户和物品的表征向量构成了推荐模型中的最基本参数——表征矩阵。基于矩阵分解的推荐模型通过用户和物品之间的表征向量交互来建模用户对不同物品的喜好。显然,表征矩阵的参数规模越大,推荐模型的表示能力越强,因而能够更好地描述用户画像和物品属性,也能更精准地预测用户与物品的交互。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:
(1)在实际的工业推荐***中,随着物品种类和用户数量的不断增加,表征矩阵的参数规模会急剧膨胀。大规模的表征矩阵需要消耗大量的算力、内存和电量,极大地限制了矩阵分解模型的生产部署和实时预测;
(2)不同用户的交互历史记录通常包含不同数量和类型的物品,因此信息量各不相同。然而,现有的矩阵分解模型往往会不加区分地将所有的用户和物品都表示为相同长度的向量,这可能会导致严重的过参数化和过拟合问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于矩阵分解模型的剪枝方法、装置、电子设备、存储介质,以期至少部分地解决上述技术问题中的至少之一。
作为本发明的一方面,提供了一种基于矩阵分解模型的剪枝方法,包括:
获取目标矩阵分解模型的模型结构数据,其中,上述模型结构数据包括多个矩阵参数;上述多个矩阵参数的每一行分别对应一个目标用户或一个目标物品;
根据上述多个矩阵参数确定上述目标矩阵分解模型中可被剪枝的第一矩阵参数;
利用基于上述第一矩阵参数生成的第二矩阵参数更新矩阵集合;以及
通过评价指标确定上述矩阵集合中的目标矩阵参数。
根据本发明的实施例,其中,上述根据上述多个矩阵参数确定上述目标矩阵分解模型中可被剪枝的第一矩阵参数包括:
根据预设规则将上述多个矩阵参数进行排序,其中,上述预设规则为上述多个矩阵参数的绝对值;
确定上述多个矩阵参数的绝对值最小的矩阵参数为上述第一矩阵参数,其中,上述第一矩阵参数包括第一掩蔽矩阵和第一表征矩阵。
根据本发明的实施例,其中,上述利用基于上述第一矩阵参数生成的第二矩阵参数更新矩阵集合包括:
将上述第一掩蔽矩阵对应位置的元素设置为0,得到第二掩蔽矩阵;
利用上述第二掩蔽矩阵和表征矩阵生成上述第二矩阵参数;
利用上述第二矩阵参数更新矩阵集合。
根据本发明的实施例,其中,上述通过评价指标确定上述矩阵集合中的目标矩阵参数包括:
根据上述第二矩阵参数,采用第一关系模型,得到上述第二矩阵参数的评价指标,其中,上述第一关系模型为:
Figure BDA0003318635420000021
其中,T(u)表示用户在测试集上的行为列表;R(u)表示根据用户在训练集上的行为给用户作出的推荐列表;|·|表示列表长度。
根据本发明的实施例,其中,上述通过评价指标确定上述矩阵集合中的目标矩阵参数还包括:
根据上述第二矩阵参数,采用第二关系模型,得到上述第二矩阵参数的评价指标,其中,上述第二关系模型为:
Figure BDA0003318635420000031
其中,|REL|表示测试集物品列表的前K个;rel_i表示K个物品中第i个物品在物品列表中的排序。
根据本发明的实施例,其中,在上述通过评价指标确定上述矩阵集合中的目标矩阵参数之后,所述方法还包括:
将上述目标矩阵参数分解为目标用户矩阵和目标物品矩阵的乘积,以便根据上述目标用户矩阵和上述目标物品矩阵为上述目标用户推荐上述目标物品。
根据本发明的实施例,其中,在上述获取目标矩阵分解模型的模型结构数据之前,上述方法还包括:
获取用户与物品交互关系的二部图、包含用户和物品的表征矩阵;
利用上述表征矩阵参数构建初始掩蔽矩阵,其中,上述初始掩蔽矩阵的维度与上述表征矩阵参数相同;上述初始掩蔽矩阵中的各个元素均为1;
利用上述用户与物品交互关系的二部图、上述表征矩阵参数和上述初始掩蔽矩阵构建待训练的矩阵分解模型;
利用上述包含用户与物品交互关系的二部图训练上述待训练的矩阵分解模型,得到目标矩阵分解模型。
作为本发明的二方面,提供了一种基于矩阵分解模型的剪枝装置,包括:
第一获取模块,用于获取目标矩阵分解模型的模型结构数据,其中,上述模型结构数据包括多个矩阵参数;上述多个矩阵参数的每一行分别对应一个目标用户或一个目标物品;
第一确定模块,用于根据上述多个矩阵参数确定上述目标矩阵分解模型中可被剪枝的第一矩阵参数;
更新模块,用于利用基于上述第一矩阵参数生成的第二矩阵参数更新矩阵集合;以及
第二确定模块,用于通过评价指标确定上述矩阵集合中的目标矩阵参数。
作为本发明的三方面,提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器执行上述的方法。
作为本发明的四方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述的方法。
根据本公开的实施例,因为采用了通过在矩阵分解模型中应用剪枝算法,通过迭代的方式对表征矩阵进行稀疏裁剪,以删除表征矩阵中的冗余参数的技术手段;所以至少部分地克服了相关技术中现有矩阵分解模型存在海量参数,导致消耗大量的算力;维度不统一,导致严重的过参数化和过拟合的技术问题,进而达到了能够在维持性能的前提下,极大地降低矩阵分解模型的参数规模从而有效地降低矩阵分解模型能耗,并且加快推理速度的技术效果。
附图说明
图1示意性示出了根据本公开实施例的基于矩阵分解模型的剪枝方法的流程图;
图2示意性示出了根据本公开实施例的确定第一矩阵参数的方法的流程图;
图3示意性示出了根据本公开实施例的更新矩阵集合的方法的流程图;
图4示意性示出了根据本公开另一实施例的得到目标矩阵分解模型的方法的流程图;
图5示意性示出了根据本公开另一实施例的基于矩阵分解模型的剪枝方法的迭代流程;
图6(a)~图6(f)示意性示出了根据本公开另一实施例的剪枝算法IMP与基准模型剪枝算法RP和OMP的性能对比图;
图7示意性示出了根据本公开实施例的基于矩阵分解模型的剪枝装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现基于矩阵分解模型的剪枝方法的电子设备的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
推荐***旨在捕捉用户对于物品的兴趣偏好,提供精准的个性化推荐服务,已经被广泛应用于现实互联网场景中。近年来,由于矩阵分解算法能够兼具协同过滤和隐语义的优势,并且易于实现拓展,逐渐成为了推荐***领域的主流技术。基于矩阵分解的推荐模型使用表征向量来表示每个用户和物品的潜在语义。所有用户和物品的表征向量构成了推荐模型中的最基本参数——表征矩阵。基于矩阵分解的推荐模型通过用户和物品之间的表征向量交互来建模用户对不同物品的喜好。显然,表征矩阵的参数规模越大,推荐模型的表示能力越强,因而能够更好地描述用户画像和物品属性,也能更精准地预测用户与物品的交互。
尽管矩阵分解模型已经表现出优异的推荐性能,但目前还存在着以下两方面的缺陷:
(1)在实际的工业推荐***中,随着物品种类和用户数量的不断增加,表征矩阵的参数规模会急剧膨胀。大规模的表征矩阵需要消耗大量的算力、内存和电量,极大地限制了矩阵分解模型的生产部署和实时预测。
(2)不同用户的交互历史记录通常包含不同数量和类型的物品,因此信息量各不相同。然而,现有的矩阵分解模型往往会不加区分地将所有的用户和物品都表示为相同长度的向量,这可能会导致严重的过参数化和过拟合问题。
目前解决上述问题的方法主要有:自动机器学习的方法,在定义的搜索空间中为研究对象搜索合适的表征维度;模型压缩的方法,对表征矩阵进行低秩分解,或者通过对相似特征进行部分参数共享,来降低表征矩阵参数量。
但是,应用自动机器学习的方法需要先设计搜索空间,工程实践难度较大;应用模型压缩的方法,在将参数数量减低的同时也会使输出结果与原始结果有差距。
为了至少部分地解决相关技术中存在的技术问题,本公开提供了一种基于矩阵分解模型的剪枝方法,包括:获取目标矩阵分解模型的模型结构数据,其中,模型结构数据包括多个矩阵参数;多个矩阵参数的每一行分别对应一个目标用户或一个目标物品;多个矩阵参数每一列中的各个元素分别对应一个目标物品;根据多个矩阵参数确定目标矩阵分解模型中可被剪枝的第一矩阵参数;利用基于第一矩阵参数生成的第二矩阵参数更新矩阵集合;以及通过评价指标确定矩阵集合中的目标矩阵参数。本公开还提供了一种基于矩阵分解模型的剪枝装置、电子设备和计算机存储介质。
需要说明的是,本公开实施例所提供的基于矩阵分解模型的剪枝方法,可用于推荐***领域,但并不局限于此;也可以用于除推荐***领域之外的任一领域,如自然语言处理领域、搜索领域等。因此本公开的基于矩阵分解模型的剪枝方法在应用领域方面不做限定。
在以下描述中阐述了具体细节以便于充分理解本发明,但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面提供的具体实施的限制。
图1示意性示出了根据本公开实施例的基于矩阵分解模型的剪枝方法的流程图。
如图1所示,该实施例的基于矩阵分解模型的剪枝方法包括操作S101~S104。
在操作S101,获取目标矩阵分解模型的模型结构数据,其中,模型结构数据包括多个矩阵参数;多个矩阵参数的每一行分别对应一个目标用户或一个目标物品。
根据本公开的实施例,矩阵分解模型通过目标用户的历史行为数据,去预测用户可能感兴趣的目标物品。
根据本公开的实施例,目标物品包括但不限于餐馆、酒吧等现实物品,抖音短视频、快手短视频等虚拟物品。
在操作S102,根据多个矩阵参数确定目标矩阵分解模型中可被剪枝的第一矩阵参数。
在操作S103,利用基于第一矩阵参数生成的第二矩阵参数更新矩阵集合。
在操作S104,通过评价指标确定矩阵集合中的目标矩阵参数。
根据本公开的实施例,因为采用了通过在矩阵分解模型中应用剪枝算法,通过迭代的方式对表征矩阵进行稀疏裁剪,以删除表征矩阵中的冗余参数的技术手段;所以至少部分地克服了相关技术中现有矩阵分解模型存在海量参数,导致消耗大量的算力;维度不统一,导致严重的过参数化和过拟合的技术问题,进而达到了能够在维持性能的前提下,极大地降低矩阵分解模型的参数规模,从而有效地降低矩阵分解模型能耗,并且加快推理速度的技术效果。
根据本公开的实施例,在通过评价指标确定矩阵集合中的目标矩阵参数还包括:
将目标矩阵参数分解为目标用户矩阵和目标物品矩阵的乘积,以便根据目标用户矩阵和目标物品矩阵为目标用户推荐目标物品。
根据本公开的实施例,因为采用了评价指标来确定矩阵集合中的目标矩阵参数,通过稀疏化表示来为不同的用户和物品分配合适的表征维度,从而达到了在维持推荐性能的前提下,极大地降低矩阵分解模型的参数规模的技术效果。
下面参考图2~图6,结合具体实施例对图1所示的方法做进一步说明。
图2示意性示出了根据本公开实施例的确定第一矩阵参数的方法的流程图。
如图2所示,该实施例的确定第一矩阵参数的方法包括操作S201~S202。
在操作S201,根据预设规则将多个矩阵参数进行排序,其中,预设规则为多个矩阵参数的绝对值。
在操作S202,确定多个矩阵参数的绝对值最小的矩阵参数为第一矩阵参数,其中,第一矩阵参数包括第一掩蔽矩阵和第一表征矩阵。
图3示意性示出了根据本公开实施例的更新矩阵集合的方法的流程图。
如图3所示,该实施例的更新矩阵集合的方法包括操作S301~S303。
在操作S301,将第一掩蔽矩阵对应位置的元素设置为0,得到第二掩蔽矩阵。
在操作S302,利用第二掩蔽矩阵和表征矩阵生成第二矩阵参数。
在操作S303,利用第二矩阵参数更新矩阵集合。
根据本公开的实施例,在通过评价指标确定矩阵集合中的目标矩阵参数包括:
根据第二掩蔽矩阵,采用第一关系模型,计算第二掩蔽矩阵的稀疏度,其中,第一关系模型为:
Figure BDA0003318635420000081
其中,T(u)表示用户在测试集上的行为列表;R(u)表示根据用户在训练集上的行为给用户作出的推荐列表;|·|表示列表长度。
根据本公开的实施例,在通过稀疏度和评价指标确定矩阵集合中的目标矩阵参数还包括:
根据第二矩阵参数,采用第二关系模型,得到第二矩阵参数的评价指标,其中,第二关系模型为:
Figure BDA0003318635420000082
其中,|REL|表示测试集物品列表的前K个;rel_i表示K个物品中第i个物品在物品列表中的排序。
图4示意性示出了根据本公开另一实施例的得到目标矩阵分解模型的方法的流程图。
如图4所示,该实施例的得到目标矩阵分解模型的方法包括操作S401~S404。
在操作S401,获取用户与物品交互关系的二部图、包含用户和物品的表征矩阵。
在操作S402,利用表征矩阵参数构建初始掩蔽矩阵,其中,初始掩蔽矩阵的维度与表征矩阵参数相同;初始掩蔽矩阵中的各个元素均为1。
在操作S403,利用用户与物品交互关系的二部图、表征矩阵参数和初始掩蔽矩阵构建待训练的矩阵分解模型。
在操作S404,利用包含用户与物品交互关系的二部图训练待训练的矩阵分解模型,得到目标矩阵分解模型。
图5示意性示出了根据本公开实施例的本算法的迭代剪枝流程图。
根据本公开的实施例,以推荐***中的经典矩阵分解模型MF和LightGCN为具体实例来介绍本公开提供的基于矩阵分解模型的剪枝方法,但并不局限于此,本公开提供的剪枝方法还可以应用在任意一种模型中。
X0表示利用MF和LightGCN模型随机初始化得到的包含用户和物品交互关系的表征矩阵,
Figure BDA0003318635420000091
表示值全为1的初始掩蔽矩阵,待训练的矩阵分解模型
Figure BDA0003318635420000092
等价于
Figure BDA0003318635420000093
通过对M0中对应位置的元素进行置零,来实现对表征矩阵的稀疏剪枝。
待训练的矩阵分解模型为
Figure BDA0003318635420000094
用户与物品交互关系的二部图为
Figure BDA0003318635420000095
每轮循环中的剪枝率为pr%,剪枝轮数为I,训练轮数为J。
根据本公开的实施例,本算法的具体实现步骤为:
(1)初始化掩蔽矩阵
Figure BDA0003318635420000096
矩阵集合
Figure BDA0003318635420000097
(2)初始化当前迭代轮次i←0,i∈[0,I-1],i=0表示第一轮;
(3)训练:在
Figure BDA0003318635420000098
上将模型
Figure BDA0003318635420000099
训练J个循环,得到
Figure BDA00033186354200000910
(4)剪枝:从Mi⊙Xj矩阵中选择绝对值最小的pr%的非零元素,将第一掩蔽矩阵Mi中对应位置的元素进行置零,得到第二掩蔽矩阵Mi+1
(5)回退:将表征矩阵重新设置为X0
(6)更新矩阵集合LS←LS∪{Mi+1⊙X0};
(7)判断i是否小于I。若是,则令i←i+1,返回步骤(3);否则,算法结束,返回LS。
如图5所示,上述算法采用迭代幅度剪枝的方式对表征矩阵进行稀疏剪枝,每轮剪枝过程目的是获得一个稀疏的掩蔽矩阵Mi,Mi记录了所有本轮剪枝过程需要被裁剪掉的所有元素并保留了上一轮剪枝结束时被裁减掉的元素。因此经过I轮迭代剪枝,可以得到稀疏度为1-(1-pr%)I的子表征矩阵MI⊙X0
此处稀疏度的计算方式为:统计Mi矩阵中零元素个数与矩阵中所有元素的个数的比值。
Figure BDA0003318635420000101
经过I轮的迭代剪枝后,可以得到一个稀疏子矩阵集合LS={M1⊙X0,M2⊙X0,…,MI⊙X0},其中的每个子矩阵都是原始稠密表征矩阵的一个稀疏的子表征矩阵,其稀疏度分别为1-(1-pr%),1-(1-pr%)2,…,1-(1-pr%)I
最后,对矩阵集合中的每个稀疏子矩阵进行独立训练和测试,以验证每个稀疏子矩阵中是否存在与X0表现相近甚至更优的子矩阵。这些子矩阵即为寻找的不降低模型效果的稀疏子矩阵。其中稀疏度最高且性能与原稠密网络相近的稀疏子矩阵即为本方法所要获得的目标矩阵参数。
根据本公开的实施例,为了验证性能的提升,选用以下三个公开数据集Yelp2018、TikTok和Kwai进行实验,三个数据集包含了用户和物品的交互关系,三个数据集的具体统计情况如表1所示。
Yelp2018:来源于2018年的Yelp挑战赛,其中,物品是餐馆和酒吧;
TikTok:来源于2019年的ICME挑战赛,物品是抖音短视频,由于原交互数据量十分庞大,此处选取了一个时间段内的视频,并滤除模态不完整的视频;
Kwai:来源于2018China MM大赛,物品为快手短视频。
表1数据集统计
数据集 用户数 物品数 交互数 稠密度
Yelp2018 31,668 38,048 1,561,406 0.00130
TikTok 36,638 97,117 746,546 0.00021
Kwai 7,010 80,631 292,042 0.00052
根据本公开的实施例,表1中稠密度的计算公式为:
Figure BDA0003318635420000102
根据本公开的实施例,选用两种推荐***中的经典矩阵分解模型MF和LightGCN作为测试模型,选用召回率(Recall)和归一化折损累计增益(Normalized DiscountedCumulative Gain,简称NDCG)作为评价指标。
MF:仅基于用户-物品交互记录、不使用任何外部信息的深度推荐模型,而且模型参数只有用户和物品表征矩阵的矩阵分解模型。
LightGCN:同样仅基于用户-物品交互记录,没有额外参数的矩阵分解模型,与MF不同的是,该模型使用图模型聚合更新的方式对用户和物品节点表示进行表征。
对于测试集中的用户,利用Recall@K和NDCG@K评价模型性能,取K=20,表示该推荐列表长度为20。具体计算公式为上式(2)和式(3)。实验结果如表2所示。
表2剪枝过程中的模型性能变化
Figure BDA0003318635420000111
表2示出了在Yelp2018、TikTok和Kwai三个数据集上分别对选用的矩阵分解模型MF和LightGCN进行剪枝的结果,表中剪枝率为0的列(稀疏度为0)表示的是剪枝前的原模型。从表2中可以观察到,经过裁剪后的稀疏模型,其参数量远远小于原稠密模型,但却能通过独立训练,达到甚至超越原模型的测试表现。在Kwai数据集上,以MF模型为基础的表征矩阵甚至可以被裁剪掉90%以上的参数,同时,模型的性能还能得到大幅的提升。
图6(a)~图6(f)示意性示出了根据本公开另一实施例的剪枝算法IMP与基准模型剪枝算法RP和OMP的性能对比。
根据本公开的实施例,还选用了基准模型剪枝算法随机剪枝算法RP和一次剪枝算法OMP,与剪枝算法IMP进行了实验对比,对比结果如图6(a)~图6(f)所示。
RP:随机剪枝(Random Pruning),即对训练好的表征矩阵进行随机裁剪。
OMP:一次剪枝(Oneshot MaguitudePruning),即在模型训练完毕后,根据参数的幅值,直接将表征矩阵裁剪至目标稀疏度。
如图6(a)~图6(f)所示,相比于OMP和RP,剪枝算法IMP更加稳定,并且裁剪后的模型性能更优。图6(a)~图6(f)中的红色五角星表示本剪枝算法IMP可以达到的最高裁剪稀疏度,即目标稀疏度,在此稀疏度下,稀疏子表征矩阵可以重新训练并获得与原始稠密表征矩阵相近的测试表现。
根据本公开的实施例,还选用了基准模型压缩算法线性模型压缩算法LMC,与本剪枝算法IMP进行了实验对比,对比结果如表3所示。
LMC:线性压缩方法(Linear Compression Model),该方法首先训练好一个表征矩阵,然后再训练一个全连接层,利用全连接层对表征矩阵进行向量稀疏化处理。
如表3所示,在相同的压缩率下,通过本剪枝算法IMP所得到的剪枝模型,其测试表现显著而一致地优于通过LMC算法所得到的压缩模型。
表3本算法与基准模型压缩算法的性能对比
Figure BDA0003318635420000121
Figure BDA0003318635420000131
根据本公开的实施例,本公开提供的基于矩阵分解模型的剪枝方法能够在保证模型性能的同时,减少表征矩阵的参数量,并为不同的用户和向量分配合适的表征维度;在同样的压缩率下,其性能优于所选区的基准模型剪枝算法和基准模型压缩算法。
图7示意性示出了根据本公开实施例的基于矩阵分解模型的剪枝装置的结构框图。
如图7所示,基于矩阵分解模型的剪枝装置包括第一获取模块710、确定模块720、更新模块730和第二确定模块740。
第一获取模块710,用于获取目标矩阵分解模型的模型结构数据,其中,模型结构数据包括多个矩阵参数;多个矩阵参数的每一行分别对应一个目标用户或一个目标物品。
第一确定模块720,用于根据多个矩阵参数确定目标矩阵分解模型中可被剪枝的第一矩阵参数。
更新模块730,用于利用基于第一矩阵参数生成的第二矩阵参数更新矩阵集合。
第二确定模块740,用于通过评价指标确定矩阵集合中的目标矩阵参数。
根据本公开的实施例,第一确定模块720包括排序单元和确定单元。
排序单元,用于根据预设规则将多个矩阵参数进行排序,其中,预设规则为多个矩阵参数的绝对值。
确定单元,用于确定多个矩阵参数的绝对值最小的矩阵参数为第一矩阵参数,其中,第一矩阵参数包括第一掩蔽矩阵和第一表征矩阵。
根据本公开的实施例,更新模块730包括设置单元、生成单元和更新单元。
设置单元,用于将第一掩蔽矩阵对应位置的元素设置为0,得到第二掩蔽矩阵。
生成单元,用于利用第二掩蔽矩阵和表征矩阵生成第二矩阵参数。
更新单元,用于利用第二矩阵参数更新矩阵集合。
根据本公开的实施例,第二确定模块740包括第一计算单元。
第一计算单元,用于根据第二掩蔽矩阵,采用第一关系模型,计算第二掩蔽矩阵的稀疏度,其中,第一关系模型为:
第一计算单元,用于根据第二矩阵参数,采用第一关系模型,得到第二矩阵参数的评价指标,其中,第一关系模型为:
Figure BDA0003318635420000141
其中,T(u)表示用户在测试集上的行为列表;R(u)表示根据用户在训练集上的行为给用户作出的推荐列表;|·|表示列表长度。
根据本公开的实施例,第二确定模块740还包括第二计算单元。
第二计算单元,用于根据第二矩阵参数,采用第二关系模型,得到第二矩阵参数的评价指标,其中,第二关系模型为:
Figure BDA0003318635420000142
其中,|REL|表示测试集物品列表的前K个;rel_i表示K个物品中第i个物品在物品列表中的排序。
根据本公开的实施例,基于矩阵分解模型的剪枝装置还包括推荐模块。
推荐模块,用于将目标矩阵参数分解为目标用户矩阵和目标物品矩阵的乘积,以便根据目标用户矩阵和目标物品矩阵为目标用户推荐目标物品。
根据本公开的实施例,基于矩阵分解模型的剪枝装置还包括第二获取模块、第一构建模块、第二构建模块和训练模块。
第二获取模块,用于获取用户与物品交互关系的二部图、包含用户和物品的表征矩阵。
第一构建模块,用于利用表征矩阵参数构建初始掩蔽矩阵,其中,初始掩蔽矩阵的维度与表征矩阵参数相同;初始掩蔽矩阵中的各个元素均为1。
第二构建模块,用于利用用户与物品交互关系的二部图、表征矩阵参数和初始掩蔽矩阵构建待训练的矩阵分解模型。
训练模块,用于利用包含用户与物品交互关系的二部图训练待训练的矩阵分解模型,得到目标矩阵分解模型。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块710、第一确定模块720、更新模块730和第二确定模块740中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,第一获取模块710、第一确定模块720、更新模块730和第二确定模块740中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块710、第一确定模块720、更新模块730和第二确定模块740中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中用于确定云服务实施策略的装置部分与本公开的实施例中用于确定云服务实施策略的方法部分是相对应的,用于确定云服务实施策略的装置部分的描述具体参考用于确定云服务实施策略的方法部分,在此不再赘述。
图8示意性示出了根据本公开实施例的适于实现基于矩阵分解模型的剪枝方法的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种基于矩阵分解模型的剪枝方法,包括:
获取目标矩阵分解模型的模型结构数据,其中,所述模型结构数据包括多个矩阵参数;所述多个矩阵参数的每一行分别对应一个目标用户或一个目标物品;
根据所述多个矩阵参数确定所述目标矩阵分解模型中可被剪枝的第一矩阵参数;
利用基于所述第一矩阵参数生成的第二矩阵参数更新矩阵集合;以及
通过评价指标确定所述矩阵集合中的目标矩阵参数。
2.根据权利要求1所述的方法,其中,所述根据所述多个矩阵参数确定所述目标矩阵分解模型中可被剪枝的第一矩阵参数包括:
根据预设规则将所述多个矩阵参数进行排序,其中,所述预设规则为所述多个矩阵参数的绝对值;
确定所述多个矩阵参数的绝对值最小的矩阵参数为所述第一矩阵参数,其中,所述第一矩阵参数包括第一掩蔽矩阵和第一表征矩阵。
3.根据权利要求2所述的方法,其中,所述利用基于所述第一矩阵参数生成的第二矩阵参数更新矩阵集合包括:
将所述第一掩蔽矩阵对应位置的元素设置为0,得到第二掩蔽矩阵;
利用所述第二掩蔽矩阵和表征矩阵生成所述第二矩阵参数;
利用所述第二矩阵参数更新矩阵集合。
4.根据权利要求3中任一项所述的方法,其中,所述通过评价指标确定所述矩阵集合中的目标矩阵参数包括:
根据所述第二矩阵参数,采用第一关系模型,得到所述第二矩阵参数的评价指标,其中,所述第一关系模型为:
Figure FDA0003318635410000011
其中,T(u)表示用户在测试集上的行为列表;R(u)表示根据用户在训练集上的行为给用户作出的推荐列表;|·|表示列表长度。
5.根据权利要求3或4中任一项所述的方法,其中,所述通过评价指标确定所述矩阵集合中的目标矩阵参数还包括:
根据所述第二矩阵参数,采用第二关系模型,得到所述第二矩阵参数的评价指标,其中,所述第二关系模型为:
Figure FDA0003318635410000021
其中,|REL|表示测试集物品列表的前K个;rel_i表示K个物品中第i个物品在物品列表中的排序。
6.根据权利要求1至5中任一项所述的方法,其中,在所述通过评价指标确定所述矩阵集合中的目标矩阵参数之后,所述方法还包括:
将所述目标矩阵参数分解为目标用户矩阵和目标物品矩阵的乘积,以便根据所述目标用户矩阵和所述目标物品矩阵为所述目标用户推荐所述目标物品。
7.根据权利要求1所述的方法,其中,在所述获取目标矩阵分解模型的模型结构数据之前,所述方法还包括:
获取用户与物品交互关系的二部图、包含用户和物品的所述表征矩阵;
利用所述表征矩阵参数构建初始掩蔽矩阵,其中,所述初始掩蔽矩阵的维度与所述表征矩阵参数相同;所述初始掩蔽矩阵中的各个元素均为1;
利用所述用户与物品交互关系的二部图、所述表征矩阵参数和所述初始掩蔽矩阵构建待训练的矩阵分解模型;
利用所述包含用户与物品交互关系的二部图训练所述待训练的矩阵分解模型,得到目标矩阵分解模型。
8.一种基于矩阵分解模型的剪枝装置,包括:
第一获取模块,用于获取目标矩阵分解模型的模型结构数据,其中,所述模型结构数据包括多个矩阵参数;所述多个矩阵参数的每一行分别对应一个目标用户或一个目标物品;
第一确定模块,用于根据所述多个矩阵参数确定所述目标矩阵分解模型中可被剪枝的第一矩阵参数;
更新模块,用于利用基于所述第一矩阵参数生成的第二矩阵参数更新矩阵集合;以及
第二确定模块,用于通过评价指标确定所述矩阵集合中的目标矩阵参数。
9.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
CN202111244280.7A 2021-10-25 2021-10-25 基于矩阵分解模型的剪枝方法、装置、设备、存储介质 Active CN113962156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111244280.7A CN113962156B (zh) 2021-10-25 2021-10-25 基于矩阵分解模型的剪枝方法、装置、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111244280.7A CN113962156B (zh) 2021-10-25 2021-10-25 基于矩阵分解模型的剪枝方法、装置、设备、存储介质

Publications (2)

Publication Number Publication Date
CN113962156A true CN113962156A (zh) 2022-01-21
CN113962156B CN113962156B (zh) 2024-05-17

Family

ID=79466866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111244280.7A Active CN113962156B (zh) 2021-10-25 2021-10-25 基于矩阵分解模型的剪枝方法、装置、设备、存储介质

Country Status (1)

Country Link
CN (1) CN113962156B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180330192A1 (en) * 2017-05-15 2018-11-15 International Business Machines Corporation Load-Balancing Training of Recommender System for Heterogeneous Systems
CN111402003A (zh) * 2020-03-13 2020-07-10 第四范式(北京)技术有限公司 实现用户相关推荐的***和方法
CN113361698A (zh) * 2020-03-05 2021-09-07 阿里巴巴集团控股有限公司 神经网络模型的处理方法和装置、数据处理方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180330192A1 (en) * 2017-05-15 2018-11-15 International Business Machines Corporation Load-Balancing Training of Recommender System for Heterogeneous Systems
CN113361698A (zh) * 2020-03-05 2021-09-07 阿里巴巴集团控股有限公司 神经网络模型的处理方法和装置、数据处理方法和装置
CN111402003A (zh) * 2020-03-13 2020-07-10 第四范式(北京)技术有限公司 实现用户相关推荐的***和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李铭;岳宾;代永平;: "基于偏见修正的联合矩阵分解算法", 计算机科学, no. 1 *

Also Published As

Publication number Publication date
CN113962156B (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
CN109902708B (zh) 一种推荐模型训练方法及相关装置
US20230252327A1 (en) Neural architecture search for convolutional neural networks
CN109460793B (zh) 一种节点分类的方法、模型训练的方法及装置
US20190362222A1 (en) Generating new machine learning models based on combinations of historical feature-extraction rules and historical machine-learning models
CN107766573B (zh) 基于数据处理的商品推荐方法、装置、设备和存储介质
CN108536784B (zh) 评论信息情感分析方法、装置、计算机存储介质和服务器
CN114048331A (zh) 一种基于改进型kgat模型的知识图谱推荐方法及***
US20220147877A1 (en) System and method for automatic building of learning machines using learning machines
CN111080360B (zh) 行为预测方法、模型训练方法、装置、服务器及存储介质
CN111406264A (zh) 神经架构搜索
CN112085172A (zh) 图神经网络的训练方法及装置
CN109313720A (zh) 具有稀疏访问的外部存储器的增强神经网络
US10445341B2 (en) Methods and systems for analyzing datasets
CN110851708B (zh) 负样本的抽取方法、装置、计算机设备和存储介质
CN108229572B (zh) 一种参数寻优方法及计算设备
CN113449176A (zh) 基于知识图谱的推荐方法及装置
CN110705889A (zh) 一种企业筛选方法、装置、设备及存储介质
CN112905885B (zh) 向用户推荐资源的方法、装置、设备、介质和程序产品
CN113962156A (zh) 基于矩阵分解模型的剪枝方法、装置、设备、存储介质
CN112528500B (zh) 一种场景图构造模型的评估方法及评估设备
CN112150206A (zh) 用户感兴趣物品的预测方法及设备
CN112000888B (zh) 信息推送方法、装置、服务器及存储介质
US20230195842A1 (en) Automated feature engineering for predictive modeling using deep reinforcement learning
CN116910604A (zh) 用户分类方法、装置、计算机设备、存储介质和程序产品
CN117591701A (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