CN111368995B - 一种基于序列推荐系统的通用网络压缩框架和压缩方法 - Google Patents

一种基于序列推荐系统的通用网络压缩框架和压缩方法 Download PDF

Info

Publication number
CN111368995B
CN111368995B CN202010092180.6A CN202010092180A CN111368995B CN 111368995 B CN111368995 B CN 111368995B CN 202010092180 A CN202010092180 A CN 202010092180A CN 111368995 B CN111368995 B CN 111368995B
Authority
CN
China
Prior art keywords
layer
recommendation
block
cluster
blocks
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
Application number
CN202010092180.6A
Other languages
English (en)
Other versions
CN111368995A (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.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
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 Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN202010092180.6A priority Critical patent/CN111368995B/zh
Publication of CN111368995A publication Critical patent/CN111368995A/zh
Application granted granted Critical
Publication of CN111368995B publication Critical patent/CN111368995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种基于序列推荐系统的通用网络压缩框架和压缩方法。该通用网络压缩框架包括:基于分块自适应分解的输入嵌入层:用于根据推荐项的频率将推荐项集合划分为多个簇并将输入嵌入矩阵分割为对应的多个块,其中为每个簇的块分配不同维度;分层参数共享的中间层:连接所述输入嵌入层,由多个残差块堆积而成,采用分层参数共享机制进行参数共享;基于分块自适应分解的输出层:与所述输入嵌入层使用相同的分块嵌入的聚簇配置,并采用树型结构表示各簇的块,获得输出序列的概率分布,进而对期望的推荐项进行预测。本发明有效地解决了序列推荐模型参数量庞大的问题,提升了模型的训练和推断效率,缓解了模型过拟合现象。

Description

一种基于序列推荐系统的通用网络压缩框架和压缩方法
技术领域
本发明涉及序列推荐技术领域,更具体地,涉及一种基于序列推荐系统的通用网络压缩框架和压缩方法。
背景技术
序列(又称基于会话)推荐系统已成为推荐领域的研究热点。这是因为现实生活中的用户交互行为通常以时间序列的形式存在。例如,在亚马逊购买电话后,用户很可能在会话中购买手机壳,耳机和屏幕保护膜等。另一个例子来自流行的短视频共享应用程序TikTok,用户可以在一小时内观看数百个视频,这些视频自然形成了一个视频播放序列。在这种情况下,基于递归神经网络(RNN)或卷积神经网络(CNN)(通常使用空洞卷积)的序列推荐模型获得了最好的推荐性能,因为这些深度学习模型在获取用户-推荐项交互序列中的序列依存关系方面更强大。。
一般来说,基于深度神经网络(DNN)的现代序列推荐模型分为三个主要模块:用于表示交互序列的输入嵌入层、用于生成下一项概率分布的输出softmax层以及夹在它们之间的一个或多个隐藏层(循环层或卷积层)。在实际应用中,为了提高模型的容量,通常采用的方法是更大的模型尺寸和更多的模型参数。通过增加序列推荐模型的大小,即使用更大的嵌入维度或更深的网络架构,可以提高其预测精度。虽然大型网络往往会带来明显的精度提高,但也可能成为模型部署和实时预测的主要障碍。特别是对于内存有限的设备,如GPU/TPU或终端用户设备,具有数亿甚至数十亿参数的大型序列模型很容易达到可用硬件的内存限制。另一个缺点是,使用较大的矩阵和较深的网络会影响训练和推理速度。虽然模型并行化可以应用于更大的网络,但通信开销仍然与模型中的参数数量成比例。此外,现有研究表明,在某一点上,进一步增大模型大小可能导致过度拟合问题或意外的模型表现退化问题。因此,模型压缩对于实现能够实时响应和更好的泛化能力的推荐模型至关重要。
事实上,推荐系统领域中的模型压缩问题比其他领域,如计算机视觉(CV)和自然语言处理(NLP)更具挑战性。例如,在CV中,用于ImageNet的ResNet-101只有4450万个参数。其中最大的NLP模型BERT Large(24层,16个注意头)有大约3.4亿个可训练参数。相比之下,在工业推荐系统中,例如YouTube和Amazon,存在着数亿个推荐项。如果简单地假设推荐项数为1亿,并将嵌入维度设为1024,可以得到关于输入嵌入和输出softmax矩阵的2000亿可训练的参数,分别比ResNet-101和BERT-Large大4000和400多倍。另一方面,在中小型推荐系统中,来自中间层的参数不可忽略,例如未来的车载推荐系统,其中内存消耗可能由中间层和嵌入矩阵支配。在实践中,如果用户行为序列较长,则可能需要堆叠更多的中间层以获得更好的精度
随着人们越来越多地关注模型压缩方法。一些相关的研究成果也不断被发表出来。例如,在一项研究成果中,提出了使用标准的低秩分解方法,将输入嵌入层和输出softmax层分别分解为两个较小的矩阵,在中间层采用了跨层参数共享的方法,通过这些方法对模型进行压缩,提高了参数效率。在另外一项研究成果中,提出了基于知识蒸馏的模型用于推荐领域,将知识从大型的、经过预训练的教师模型转移到通常较小的学生模型中,进而实现模型压缩。由于没有明确考虑到序列推荐领域的特点,上述两种方法均存在很大的局限性,如模型压缩过程中存在明显的损失性能,并且压缩效果不够理想。
在工业推荐系统中,例如YouTube和Amazon,存在着数亿个推荐项,为表示推荐项之间错综的复杂关系,导致输入嵌入层和输出softmax层的参数量巨大。另一方面,如果用户-推荐项交互序列较长,则可能需要堆叠更多的中间层以获得更好的模型表现,导致中间层参数量巨大。
目前,模型压缩技术在序列推荐系统中还没有得到很好的研究,这体现在,现有技术倾向于应用非常小的嵌入维数用于研究目的。此外,到目前为止,还没有文献使用深度学习模型高于20层的推荐任务。
总之,目前序列推荐模型存在三个明显缺陷:
1)、大型的推荐模型通常会带来明显的性能提升,但它也可能成为模型部署和实时预测的主要障碍。特别是对于处理具有大规模推荐项的推荐系统,输入嵌入层和输出softmax层的参数量呈爆炸性增长,在训练过程中批处理大小和嵌入大小的增加也会使得所需存储空间呈倍数增加,在输出层估计下一个的推荐项的概率时,由于推荐项的数量庞大,消耗时间过多导致训练和测试时极其缓慢。虽然模型并行化可以应用于大型深度模型加速模型,但通信开销仍然与模型中的参数数量成比例;
2)、在实践中推荐模型在处理长交互序列时,通常需搭建深度架构(即加深的堆叠层)用以获取长距离序列依赖信息,这也将大幅增加中间层的参数量;
3)、在某些情况下,进一步增大模型大小可能会导致过拟合或模型性能下降问题。
发明内容
本发明的一个目的是解决序列推荐领域中模型压缩的问题,提供一种基于序列推荐系统的通用压缩框架和压缩方法。
根据本发明的第一方面,提供一种基于序列推荐系统的通用网络压缩框架,包括:
基于分块自适应分解的输入嵌入层:根据推荐项的频率将推荐项集合划分为多个簇并将输入嵌入矩阵分割为对应的多个块,其中为每个簇的块分配不同维度;
分层参数共享的中间层:连接所述输入嵌入层,由多个残差块堆积而成,采用分层参数共享机制进行参数共享;
基于分块自适应分解的输出层:与所述输入嵌入层使用相同的分块嵌入的聚簇配置,并采用树型结构表示各簇的块,获得输出序列的概率分布,进而对期望的推荐项进行预测。
在一个实施例中,所述根据推荐项的频率将推荐项集合划分为多个簇并将输入嵌入矩阵分割为对应的多个块包括:
根据推荐项的频率对所有推荐项进行排序S={x1,x2,…,xK},其中x1和xK分别是频率最高和最低的推荐项;
将推荐项集合S划分为n个簇,表示为S=S1∪S2,…,∪Sn-1∪Sn,
Figure BDA0002384056280000041
Figure BDA0002384056280000042
其中
Figure BDA0002384056280000043
α≠β,每个簇中推荐项的数量为k1,k2,…,kn,且
Figure BDA0002384056280000044
K为所有推荐项的数量;
将输入嵌入矩阵E∈RK×d分割为n个块,表示为
Figure BDA0002384056280000045
Figure BDA0002384056280000046
其中d是嵌入大小。
在一个实施例中,对于输入嵌入层,还包括:
将块
Figure BDA0002384056280000047
j=2,…,n分解为两个低阶矩阵
Figure BDA0002384056280000048
其中
Figure BDA0002384056280000049
dj是第j个块的因式分解维度;
对于一给定推荐项标签IDx,其嵌入向量vx∈Rd表示为:
Figure BDA00023840562800000410
其中
Figure BDA00023840562800000411
表示第j个块的第g行的嵌入向量,
Figure BDA00023840562800000412
在一个实施例中,所述分层参数共享机制包括:
跨块参数共享,表示所有较高层都重复使用第一个残差块的参数;
相邻层参数共享,表示每个残差块中的两个单独的层共享相同的参数集;
相邻块参数共享,表示在每两个相邻残差块之间共享参数。
在一个实施例中,所述采用树型结构表示各簇的块包括:
构建两层树结构,每个树节点代表一个簇,第一个簇的嵌入矩阵被保存在树的根节点,其它簇的嵌入矩阵被保存在树的第二层的叶子节点中;
对于第一个簇,其中每一个推荐项被表示为一个不同的类,而对于其它的簇,为每一个推荐项分配两个节点,包括使用其簇的位置作为该推荐项的父类的根节点和代表其簇中特定位置的叶子节点。
在一个实施例中,所述输出层还执行:
将第一个块矩阵扩展为
Figure BDA00023840562800000413
其中n-1表示叶子节点所属的父类的数量,第一个簇的标签集合被扩展为S1={1,2,…,k1+n-1},其中k1+1到k1+n-1对应于第2个至第n个簇的父类标签;输出层的其它的块矩阵表示为
Figure BDA0002384056280000051
j=2,…,n,其中
Figure BDA0002384056280000052
在一个实施例中,配置为包括多个中间层,并且每两个中间层都使用残差连接,作为一个残差块,通过倍增每一层的空洞因子来获得指数增长的感受野。
根据本发明的第二方面,提供一种利用本发明所提供的基于序列推荐系统的通用网络压缩框架的压缩方法,包括:
根据推荐项的频率将推荐项集合划分为多个簇并将输入嵌入矩阵分割为对应的多个块,其中为每个簇的块分配不同维度;
所述中间层由多个残差块堆积而成,采用分层参数共享机制进行参数共享;
所述输出层使用与所述输入嵌入层相同的分块嵌入的聚簇配置,并采用树型结构表示各簇的块,获得输出序列的概率分布,进而对期望的推荐项进行预测。
相对于现有技术,本发明的优点在于:基于序列推荐领域的特点,利用深度学习模型,提出了一种新的序列推荐的联合压缩框架,从输入嵌入层、输出softmax层和中间层三个方面来综合考虑模型压缩,有效地解决了模型参数量庞大的问题,提升了序列推荐模型的训练和推断效率,缓解了模型过拟合现象。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是根据本发明一个实施例的分块嵌入分解方法的示意图;
图2是根据本发明一个实施例的跨块、相邻层/块参数共享的示意图;
图3是根据本发明一个实施例的通用网络压缩框架的示意图;
附图中,block-块,layer-层。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
简言之,在本发明实施例中,提出两种通用的模型压缩机制来降低序列推荐系统的内存消耗,分别为分块自适应分解方法和分层参数共享方法。具体包括:为减少输入嵌入和输出softmax矩阵中的参数,提出了分块自适应分解方法得到分块嵌入矩阵,以近似原始的嵌入矩阵(输入嵌入矩阵和输出softmax矩阵在下文的描述中也统称为嵌入矩阵);引入跨块参数共享、相邻层参数共享和相邻块参数共享方法以减少中间层的参数。由于这两种模型压缩机制是正交的,在本发明实施例中可以自然地将它们组合在一起,构成联合模型压缩框架,以实现更高的压缩率。
在本文中,将所提出的联合模型压缩框架命名为CpRec或称为基于序列推荐系统的通用网络压缩框架,该通用网络压缩框架结合序列推荐领域的特点,从输入层、输出层和中间深度架构三个方面来对序列推荐模型进行压缩,在保证模型的推荐精度的前提下,提升了模型工作效率,缓解模型过拟合现象并降低模型所需存储。在下文中,将分布介绍分块自适应分解(包含输入嵌入层和输出softmax层)、分层参数共享的中间层,并基于NextItNet架构来描述本发明所提供的CpRec。
一、关于分块自适应分解
在序列推荐系统中,推荐项的频率分布服从长尾分布,只有少数项目由于其频率高而可能包含丰富的信息,而其他项目可能仅包含有限的信息。例如,一些“头”(或流行)推荐项具有大量的用户交互,但是对于“尾巴”推荐项只有少数交互。鉴于此,对所有推荐项分配固定的嵌入维度是次优且不必要的,可能导致性能欠佳。直观而言,频率较高的推荐项可能比稀有推荐项包含更多的信息,因此应在训练过程中为其分配更多的容量。换句话说,更频繁(或受欢迎)的推荐项的嵌入维度应该比不受欢迎的推荐项的嵌入维度大。
例如,首先根据序列推荐系统的频率对所有推荐项进行排序S={x1,x2,…,xK},其中x1和xK分别是频率最高和最低的推荐项。将推荐项集合S划分为n个簇,例如,表示为:S=S1∪S2,…,∪Sn-1∪Sn,
Figure BDA0002384056280000071
Figure BDA0002384056280000072
其中
Figure BDA0002384056280000073
α≠β。每个簇中推荐项的数量为k1,k2,…,kn,且
Figure BDA0002384056280000074
K为所有推荐项的数量。通过这种方式,可以将输入嵌入矩阵E∈RK×d(如图1(a)所示)分割为n个块
Figure BDA0002384056280000075
(如图2(b)所示),其中d是嵌入大小。采用相似的策略,对输出softmax矩阵P∈Rd×K分割为n个块
Figure BDA0002384056280000076
接下来,将分别描述输入嵌入矩阵和输出softmax矩阵的分块自适应分解。
1)、基于分块自适应分解的输入嵌入层
在输入层中,将块
Figure BDA0002384056280000077
j=2,…,n分解为两个低阶矩阵
Figure BDA0002384056280000078
其中
Figure BDA0002384056280000079
dj是第j个块的因式分解维度(也称为秩)。由于高频率的推荐项应具有更高的表达能力,因此随着簇的索引增加,减小对应的dj。相应地,每个推荐项的嵌入表示与通过原始的look-up操作的嵌入表示是不同的。给定推荐项标签IDx,将嵌入向量vx∈Rd表示为:
Figure BDA00023840562800000710
其中
Figure BDA00023840562800000711
表示第j个块的第g行的嵌入向量,
Figure BDA00023840562800000712
通过这种因式分解,能将输入嵌入层的参数量从O(K×d)减少到
Figure BDA00023840562800000713
Figure BDA0002384056280000081
当di<<d1,输入嵌入层的参数量会明显减少。参见图2(c)示意的分解过程。
与现有技术的普通输入嵌入层不同,本发明实施例的基于分块自适应分解的输入嵌入层根据所有推荐项的频率将其分为多个簇,每个簇的嵌入矩阵(称为块)由两个低秩矩阵分解,其中秩值也由簇中的推荐项的频率确定,即将较大的秩值分配给具有更多频繁项的块。通过分块自适应分解,能够为每个簇的块分配不同的维度进而大幅减少输入嵌入层的参数量。
2)、基于分块自适应分解的输出softmax层
在输出softmax层,参考class-based softmax(Le H S,Oparin I,Allauzen A,etal.Structured output layer neural network language model[C]//2011IEEEInternational Conference on Acoustics,Speech and Signal Processing(ICASSP).IEEE,2011:5524-5527.),在一个实施例中,通过两层树来构造这些块,其中每个树节点代表一个簇。图2(d)是输出softmax层的分块嵌入的示例。第一个簇的嵌入矩阵(第一个块)被保存在树的根节点,其它块被保存在树的第二层的叶子节点中。对于第一个簇,其中每一个推荐项被表示为一个不同的类;然而对于其它的簇,为每一个推荐项分配两个节点:使用其簇的位置作为该推荐项的父类的根节点和代表其簇中特定位置的叶子节点。通过这种方式,同一簇中的推荐项共享相同的父类。更具体地,在输出softmax层中使用与输入嵌入层类似的分块嵌入的聚簇配置。一个主要的不同是,输出层的第一个块矩阵被扩展为
Figure BDA0002384056280000082
其中n-1表示叶子节点所属的父类的数量。第一个簇的标签集合被扩展为S1={1,2,…,k1+n-1},其中k1+1到k1+n-1对应于第2个至第n个簇的父类标签。在输出softmax层的其它的块矩阵为
Figure BDA0002384056280000083
j=2,…,n,其中
Figure BDA0002384056280000084
对比于原始的softmax层,输出softmax层的参数量从O(K×d)减少到
Figure BDA0002384056280000085
Figure BDA0002384056280000086
通过上述方式,根据所有推荐项的频率将其分为多个簇,每个簇的嵌入矩阵(称为块)由两个低秩矩阵组成,其中秩值也由簇中的推荐项频率确定-将较高的秩值分配给具有更多频繁项的块。通过分块自适应分解方法,能够为每个簇的块分配不同的维度进而降低模型大小。
以下将详细描述在训练过程中建立目标函数以及在推理过程中生成推荐项。
训练过程中,在给定上下文向量h∈Rd(即序列推荐模型的最终隐藏向量)的情况下,预测下一个用户可能感兴趣的推荐项,需要首先根据下一个推荐的标签(例如x)确定搜索空间。如果x属于第一个簇,则仅计算该簇中的logits。如果x属于其他簇,则将在其父类所属簇(即第一个簇)和当前簇中计算logits。
Figure BDA0002384056280000091
表示为:
Figure BDA0002384056280000092
其中,规定属于叶子节点的每个推荐项x在第一个簇中都具有父类标签c(x)。相应地,训练过程包括两个步骤。第一步,计算第一个聚类的logits,这需要O(k1+n-1)时间。在第二阶段,如果推荐项标签x属于叶子节点上的簇之一,将计算该簇的logits,这需要O(kj)时间。通过这种方式,对比于使用原始的softmax,本发明使用分块嵌入的训练时间从O(K)减少到O(k1+n-1)和O(k1+kj+n-1)之间。
Figure BDA0002384056280000093
Figure BDA0002384056280000094
通过softmax函数的归一化值,将关于
Figure BDA0002384056280000095
和真实标签向量y的损失函数f表示为:
Figure BDA0002384056280000096
与训练阶段不同,在推断过程中,推荐项属于哪个簇是未知的。但是,能够根据条件分布计算所有簇中推荐项的概率分布,表示为:
Figure BDA0002384056280000097
其中p(x|h,S1),p(x|c(x),h),p(c(x)|h,S1)均可由公式(2)计算。最终,得到基于p(x)推荐top-N(前N项)的推荐项。实际上,在推断阶段通常不需要为所有推荐项计算softmax概率。可以执行提前停止搜索以加快生成过程。具体来说,如果前N个概率得分位于第一个簇中,不需要计算在其它簇的推荐项的概率分数(即p(x|c(x),h))。因为p(x|c(x),h)p(c(x)|h,S1)(其中p(c(x)|h,S1)<1)始终小于第一个簇的top-N得分。
对于本发明的分块自适应分解的输出softmax层,在输出softmax层使用与输入嵌入层类似的分块嵌入的聚类结构,包括块数和每一个块的大小。并且在输出softmax层中设计了一种基于树表示的概率近似方法取代原始的softmax,从而显著地减少了输出softmax层的参数量,训练时间和推断时间。
综上,本发明提出了一种分块自适应分解方法用于输入嵌入和输出softmax层,以得到分块嵌入矩阵,进而近似序列推荐系统中原始的输入和输出层的嵌入矩阵,并在输出softmax层中基于树表示设计了一种概率近似方法替代原始的softmax。这种方式能够很好的降低输入/输出层的嵌入矩阵参数量,有效地提升序列推荐模型的训练和推断速度,从而解决了现有推荐系统中推荐项过多,使得输入嵌入层和输出softmax层的参数量巨大以及模型训练和推断速度缓慢的缺点。
二、分层参数共享的中间层
在许多实际的推荐系统中,用户交互序列可能非常长,例如短视频和新闻推荐。为了对长距离交互序列进行建模,一种常见的方法是构建更深的网络体系结构。但中间层的参数大小可能会占总体内存消耗的主导,尤其是对于移动或最终用户设备中的小规模应用而言。因此,本发明实施例提出的压缩方法主要集中在序列推荐模型上,该模型具有多个中间层,并且每两个中间层都通过残差连接(参见ResNet结构(He K,Zhang X,Ren S,etal.Deep residual learning for image recognition[C]//Proceedings of the IEEEconference on computer vision and pattern recognition.2016:770-778.)),例如NextItNet。
为了降低中间层的参数消耗,ALBERT(Lan Z,Chen M,Goodman S,et al.Albert:Alite bert for self-supervised learning of language representations[J].arXivpreprint arXiv:1909.11942,2019.)提出了跨层参数共享方法,如图2(a)所示。在减少大量冗余参数的同时,神经网络模型的表达也受到了一定程度的限制。实际上,使用该跨层共享方案,在推荐任务中,模型性能显著降低了。因此,本发明实施例提出了跨块参数共享,如图2(b)所示,其中所有较高层都重复使用第一个残差块(即两个底层)的参数。
为了充分利用深度模型的堆叠层的优势,同时提高参数效率,本发明实施例还提出了另外两种分层的参数共享方法:相邻层参数共享(如图2c所示)和相邻块参数共享(如图2(d)所示)。具体地,相邻层参数共享表示每个残差块中的两个单独的层共享相同的参数集。相邻块参数共享表示在每两个相邻残差块之间共享参数。这种参数共享策略具有两个主要优点:作为一种正则化方法,可以稳定训练过程并提高模型的泛化能力;可以显著减少参数量,而不会像跨层参数共享那样降低性能。特别是,通过相邻块参数共享,推荐准确率始终比基准模型更好。
综上,本发明提出了三种不同的分层参数共享方式(即跨块参数共享、相邻层参数共享、相邻块参数共享),以减少中间层的冗余参数。随着模型层数的不断加深,有效地限制了参数量,从而解决了序列推荐领域中提取用户-推荐项交互序列中的长距离依赖信息所需搭建深度架构而造成的参数量庞大的缺点。
三、基于系统推荐系统的通用网络压缩框架的架构
本发明通过使用NextItNet架构实例化CpRec,参见图3所示总体的神经网络模型架构,其中分为三大模块,分别是分块自适应分解的输入嵌入层(对应图3中左方结构图)、分块自适应分解的输出softmax层(对应图3中右方结构图)和分层参数共享的中间层(对应图3的中间结构图)。
对于输入嵌入层,给定用户-推荐项交互序列{x1,x2,…,xt+1},序列推荐模型将通过基于分块嵌入矩阵的查找表检索前t个推荐项{x1,x2,…,xt}的嵌入向量。然后可以将这些嵌入向量堆叠到一个新的矩阵中(如图3的左侧,其中t=5),该矩阵用作中间层的输入。
对于中间层,如图3的中间部分所示,参照NextItNet为CpRec使用空洞卷积层,其中每两层都使用残差连接,作为一个残差块。CpRec通过倍增每一层的空洞因子来获得指数增长的感受野,例如{1,2,4,8}。此外,为了进一步增强模型的表达能力和提高准确性,可堆叠该结构多次,例如{1,2,4,8,…,1,2,4,8}。然后可以在这些中间层应用所提出的分层参数共享策略,以提高它们的参数效率。
对于输出softmax层,采用树型结构的分块嵌入矩阵来表示每个簇的块。如前所述,对于训练和推理阶段,CpRec都可以通过这种结构实现显著的加速。类似于NextItNet,给定每个输入序列{x1,…,xt},CpRec估计表示{x2,…,xt+1}的输出序列的概率分布,其中xt+1是预期的下一个被期望的推荐项。
需要说明的是,在不违背本发明精神的前提下,本领域技术人员对上述实施例可以作适当的变型,例如,根据序列推荐系统的频率对所有推荐项进行排序也可采用频率由小到大的排序方式,又如,在输出层可构建多层树结构等。
综上所述,本发明基于序列推荐领域的特点,在深度学习模型的基础上,提出了一种新的基于深度序列推荐的模型压缩框架CpRec,其是一种用于学习压缩的序列推荐模型的灵活通用的神经网络压缩框架。该框架从输入嵌入层、输出softmax层和中间层三个方面来综合考虑模型压缩,提升了序列推荐模型的训练和推断效率,缓解了模型过拟合现象,降低了模型的存储占有量。CpRec能够实现更快的训练/推断速度,更低的内存并以更好的推荐准确率生成用户感兴趣的推荐项。
为了验证本发明所提出基于序列推荐系统的通用网络压缩框架的有效性和先进性,使用联合压缩框架CpRec在tiktok、movielen这两个广泛使用的推荐数据集上进行了大量实验和消融分析,从而进行推荐性能、参数量和训练\推断时间测试对比。实验结果表明,本发明始终优于现有的NextItNet和RNN等基准模型,可以被广泛应用于序列推荐领域。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种基于序列推荐系统的通用网络压缩框架,包括:
基于分块自适应分解的输入嵌入层:根据推荐项的频率将推荐项集合划分为多个簇并将输入嵌入矩阵分割为对应的多个块,其中为每个簇的块分配不同维度;
分层参数共享的中间层:连接所述输入嵌入层,由多个残差块堆积而成,采用分层参数共享机制进行参数共享;
基于分块自适应分解的输出层:与所述输入嵌入层使用相同的分块嵌入的聚簇配置,并采用树型结构表示各簇的块,获得输出序列的概率分布,进而对期望的推荐项进行预测。
2.根据权利要求1所述的基于序列推荐系统的通用网络压缩框架,其中,所述根据推荐项的频率将推荐项集合划分为多个簇并将输入嵌入矩阵分割为对应的多个块包括:
根据推荐项的频率对所有推荐项进行排序S={x1,x2,…,xK},其中x1和xK分别是频率最高和最低的推荐项;
将推荐项集合S划分为n个簇,表示为S=S1∪S2,…,∪Sn-1∪Sn,
Figure FDA0002384056270000011
Figure FDA0002384056270000012
其中
Figure FDA0002384056270000013
α≠β,每个簇中推荐项的数量为k1,k2,…,kn,且
Figure FDA0002384056270000014
K为所有推荐项的数量;
将输入嵌入矩阵E∈RK×d分割为n个块,表示为
Figure FDA0002384056270000015
Figure FDA0002384056270000016
其中d是嵌入大小。
3.根据权利要求2所述的基于序列推荐系统的通用网络压缩框架,其中,对于输入嵌入层,还包括:
将块
Figure FDA0002384056270000017
j=2,…,n分解为两个低阶矩阵
Figure FDA0002384056270000018
其中
Figure FDA0002384056270000019
dj是第j个块的因式分解维度;
对于一给定推荐项标签IDx,其嵌入向量vx∈Rd表示为:
Figure FDA00023840562700000110
其中
Figure FDA00023840562700000111
表示第j个块的第g行的嵌入向量,
Figure FDA00023840562700000112
4.根据权利要求1所述的基于序列推荐系统的通用网络压缩框架,其中,所述分层参数共享机制包括:
跨块参数共享,表示所有较高层都重复使用第一个残差块的参数;
相邻层参数共享,表示每个残差块中的两个单独的层共享相同的参数集;
相邻块参数共享,表示在每两个相邻残差块之间共享参数。
5.根据权利要求3所述的基于序列推荐系统的通用网络压缩框架,其中,所述采用树型结构表示各簇的块包括:
构建两层树结构,每个树节点代表一个簇,第一个簇的嵌入矩阵被保存在树的根节点,其它簇的嵌入矩阵被保存在树的第二层的叶子节点中;
对于第一个簇,其中每一个推荐项被表示为一个不同的类,而对于其它的簇,为每一个推荐项分配两个节点,包括使用其簇的位置作为该推荐项的父类的根节点和代表其簇中特定位置的叶子节点。
6.根据权利要求5所述的基于序列推荐系统的通用网络压缩框架,其中,所述输出层还执行:
将第一个块矩阵扩展为
Figure FDA0002384056270000021
其中n-1表示叶子节点所属的父类的数量,第一个簇的标签集合被扩展为S1={1,2,…,k1+n-1},其中k1+1到k1+n-1对应于第2个至第n个簇的父类标签;输出层的其它的块矩阵表示为
Figure FDA0002384056270000022
j=2,…,n,其中
Figure FDA0002384056270000023
7.根据权利要求1所述的基于序列推荐系统的通用网络压缩框架,其中,配置为包括多个中间层,并且每两个中间层都使用残差连接,作为一个残差块,通过倍增每一层的空洞因子来获得指数增长的感受野。
8.一种利用权利要求1至7任一项所述的基于序列推荐系统的通用网络压缩框架的压缩方法,包括:
根据推荐项的频率将推荐项集合划分为多个簇并将输入嵌入矩阵分割为对应的多个块,其中为每个簇的块分配不同维度;
所述中间层由多个残差块堆积而成,采用分层参数共享机制进行参数共享;
所述输出层使用与所述输入嵌入层相同的分块嵌入的聚簇配置,并采用树型结构表示各簇的块,获得输出序列的概率分布,进而对期望的推荐项进行预测。
9.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求8所述的压缩方法的步骤。
10.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求8所述的压缩方法的步骤。
CN202010092180.6A 2020-02-14 2020-02-14 一种基于序列推荐系统的通用网络压缩框架和压缩方法 Active CN111368995B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010092180.6A CN111368995B (zh) 2020-02-14 2020-02-14 一种基于序列推荐系统的通用网络压缩框架和压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010092180.6A CN111368995B (zh) 2020-02-14 2020-02-14 一种基于序列推荐系统的通用网络压缩框架和压缩方法

Publications (2)

Publication Number Publication Date
CN111368995A CN111368995A (zh) 2020-07-03
CN111368995B true CN111368995B (zh) 2023-05-02

Family

ID=71210717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010092180.6A Active CN111368995B (zh) 2020-02-14 2020-02-14 一种基于序列推荐系统的通用网络压缩框架和压缩方法

Country Status (1)

Country Link
CN (1) CN111368995B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507209B (zh) * 2020-11-10 2022-07-05 中国科学院深圳先进技术研究院 一种基于陆地移动距离进行知识蒸馏的序列推荐方法
CN112464104B (zh) * 2020-11-13 2024-05-14 中国科学院深圳先进技术研究院 一种基于网络自协作的隐式推荐方法和系统
CN117974672B (zh) * 2024-04-02 2024-06-18 华侨大学 基于全局信息的乳腺超声肿瘤病变区域检测方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142029A (zh) * 2011-03-21 2011-08-03 大连灵动科技发展有限公司 一种互联网的个性化服务方法
CN109785062A (zh) * 2019-01-10 2019-05-21 电子科技大学 一种基于协同过滤模型的混合神经网络推荐系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783450B2 (en) * 2016-11-10 2020-09-22 Adobe Inc. Learning user preferences using sequential user behavior data to predict user behavior and provide recommendations
US10691886B2 (en) * 2017-03-09 2020-06-23 Samsung Electronics Co., Ltd. Electronic apparatus for compressing language model, electronic apparatus for providing recommendation word and operation methods thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142029A (zh) * 2011-03-21 2011-08-03 大连灵动科技发展有限公司 一种互联网的个性化服务方法
CN109785062A (zh) * 2019-01-10 2019-05-21 电子科技大学 一种基于协同过滤模型的混合神经网络推荐系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Simple Convolutional Generative Network for Next Item Recommendation;Fajie Yuan et.al;《2019 Association for Computing Machinery.》;全文 *
ALBERT:A LITF BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS;Zhengzhong Lan et.al;《arXiv:1909.11942V1》;全文 *
结合Retinex和HVS的自适应全息水印算法;龚一珉;孙刘杰;;光学技术(第06期);全文 *

Also Published As

Publication number Publication date
CN111368995A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
Luo et al. Autopruner: An end-to-end trainable filter pruning method for efficient deep model inference
CN111368995B (zh) 一种基于序列推荐系统的通用网络压缩框架和压缩方法
WO2020221200A1 (zh) 神经网络的构建方法、图像处理方法及装置
CN107423376B (zh) 一种有监督深度哈希快速图片检索方法及系统
WO2021120719A1 (zh) 神经网络模型更新方法、图像处理方法及装置
Tjandra et al. Compressing recurrent neural network with tensor train
CN109409500B (zh) 基于知识蒸馏与非参数卷积的模型加速方法及装置
WO2021218517A1 (zh) 获取神经网络模型的方法、图像处理方法及装置
CN111819580A (zh) 用于密集图像预测任务的神经架构搜索
CN112633010B (zh) 基于多头注意力和图卷积网络的方面级情感分析方法及系统
CN110175628A (zh) 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法
Ghorbani et al. Data shapley valuation for efficient batch active learning
CN111612134A (zh) 神经网络结构搜索方法、装置、电子设备及存储介质
Liu et al. A survey on computationally efficient neural architecture search
WO2023077819A1 (zh) 数据处理系统及方法、装置、设备、存储介质、计算机程序、计算机程序产品
CN116368796A (zh) 数据处理方法和装置
CN111882035A (zh) 基于卷积核的超网络搜索方法、装置、设备和介质
WO2021159448A1 (zh) 一种基于序列推荐系统的通用网络压缩框架和压缩方法
CN112200313A (zh) 一种深度学习模型推理加速的方法、系统、设备及介质
Zhang et al. Analogous to evolutionary algorithm: Designing a unified sequence model
Mary Shanthi Rani et al. [Retracted] DeepCompNet: A Novel Neural Net Model Compression Architecture
Ngo et al. Adaptive anomaly detection for internet of things in hierarchical edge computing: A contextual-bandit approach
CN112580723B (zh) 多模型融合方法、装置、电子设备和存储介质
WO2021057690A1 (zh) 构建神经网络的方法与装置、及图像处理方法与装置
Luan et al. LRP‐based network pruning and policy distillation of robust and non‐robust DRL agents for embedded systems

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