[go: up one dir, main page]

CN115203585B - 一种协同过滤模型的自动化架构搜索方法 - Google Patents

一种协同过滤模型的自动化架构搜索方法 Download PDF

Info

Publication number
CN115203585B
CN115203585B CN202211119443.3A CN202211119443A CN115203585B CN 115203585 B CN115203585 B CN 115203585B CN 202211119443 A CN202211119443 A CN 202211119443A CN 115203585 B CN115203585 B CN 115203585B
Authority
CN
China
Prior art keywords
network
sub
architecture
collaborative filtering
super
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
CN202211119443.3A
Other languages
English (en)
Other versions
CN115203585A (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.)
Jiangsu Hongcheng Big Data Technology And Application Research Institute Co ltd
Original Assignee
Jiangsu Hongcheng Big Data Technology And Application Research Institute Co ltd
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 Jiangsu Hongcheng Big Data Technology And Application Research Institute Co ltd filed Critical Jiangsu Hongcheng Big Data Technology And Application Research Institute Co ltd
Priority to CN202211119443.3A priority Critical patent/CN115203585B/zh
Publication of CN115203585A publication Critical patent/CN115203585A/zh
Application granted granted Critical
Publication of CN115203585B publication Critical patent/CN115203585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (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

本发明公开了一种协同过滤模型的自动化架构搜索方法。本发明的方法包括如下步骤:S1.根据预设的搜索空间构建超网络,超网络中的参数被所有子架构共享;S2.超网络训练:从超网络中随机采样子架构,通过训练子架构训练超网络;S3.在S2中的超网络训练完成之后,使用进化算法从超网络中搜索表现优秀的协同过滤模型,其中最优的模型即为架构搜索的结果。本发明相比于以前方法,进一步拓展了搜索空间的多样性,提升了协同过滤模型表现力;基于权重共享的超网络训练和架构搜索极大地提升了搜索算法的效率。

Description

一种协同过滤模型的自动化架构搜索方法
技术领域
本发明涉及人工智能、推荐算法和自动化机器学习领域,具体涉及一种协同过滤模型的自动化架构搜索方法。
背景技术
个性化推荐无处不在,已被应用于许多在线服务,如电子商务、广告和社交媒体。它的核心是根据历史上的互动,如购买和点击,估计用户采用某个项目的可能性。协同过滤(collaborative filtering, CF)通过假设行为相似的用户会对物品表现出类似的偏好解决这个问题。为了实现这一假设,一个常见的范式是对用户和物品进行模型参数化,以重建历史互动,并根据参数预测用户的偏好。一般来说,可学习模型有两个关键部分:
(1)嵌入表示,将用户和物品转化为低维的向量表示。通常是通过创建一个嵌入矩阵存储所有用户和物品的向量表示,每一行向量即为具体某个用户或者物品的向量表示。
(2)交互函数,基于嵌入重建历史交互。例如,矩阵分解(MF)直接将用户/物品ID的交互建模成一个矩阵,然后利用矩阵分解,为用户和物品各生成一个表示用户或者物品的隐含因子矩阵,也就是为每个用户和物品生成一个嵌入向量,并用内积建立用户与物品的交互模型。近些年来深度学习的兴起,启发了研究者们用表现力更强的深度神经网络代替传统的内积交互模型。神经协同过滤模型用非线性神经网络取代矩阵分解的内积交互功能,而基于翻译的CF模型则使用欧氏距离尺度作为交互函数等等。
本发明主要针对协同过滤模型中的交互函数建模。神经协同过滤(NCF)为交互建模引入了深度神经网络模型,将用户侧的输入和物品侧的输入拼接到一起输入到神经网络模型里,以此实现更加强有效的特征交叉,丰富隐式特征的交叉。
NCF中采取的深度神经网络模型,主要是多层感知器(MLP),每层具有不同数量的神经元。然而,每层神经元的个数通常依赖人工专家的经验,推荐系统的业务场景有很多,一套超参数很难适用所有的业务场景,超参数如果设计的不好,会对模型效果造成了很大的影响。
因此,一些工作试图在交互函数中应用自动化机器学习(AutoML)技术针对特定的数据集搜索合适的交互函数。SIF认为在不同的数据集中,协同过滤中最优的交互函数并不一样,所以SIF使用NAS方法搜索交互函数。然而,SIF的搜索空间只涉及一些简单的数学操作,例如,加减乘除、取最大/最小值和内积等,模型表达能力有限。
基于NCF和SIF的不足,本发明提出了一种协同过滤模型的自动化架构搜索方法,用于自动化搜索协同过滤模型交互函数的NAS算法。NAS算法通常设计三个方面:
(1) 搜索空间:定义了可以搜索的神经网络结构的集合,即解的空间。
(2) 搜索策略:定义了如何在搜索空间中寻找最优网络结构。
(3) 评价方法:定义了如何评估搜索出的网络结构的性能。
发明内容
发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种协同过滤模型的自动化架构搜索方法,解决当前协同过滤模型自动化架构搜索的搜索空间有限,模型架构表现能力受限的问题。
技术方案:为实现上述发明目的,本发明采用的技术方案为一种协同过滤模型的自动化架构搜索方法,包括以下步骤:
S1.根据预设的搜索空间构建超网络,超网络中的参数被所有子架构共享;
S2.超网络训练:从超网络中随机采样子架构,通过训练子架构训练超网络;
S3.在S2中的超网络训练完成之后,使用进化算法从超网络中搜索表现优秀的协同过滤模型,其中最优的模型即为架构搜索的结果。
进一步地,步骤S1中所述构建超网络的具体方法是:
S11.首先对现有的协同过滤模型进行归纳抽象,形成协同过滤模型的统一框架,并且表示为数学模型,具体地,通过分析现有的协同过滤模型,将协同过滤模型抽象为有两个部分:嵌入表示,将用户和物品转化为低维的向量表示;交互函数,基于嵌入重建用户和物品的历史交互;以下为协同过滤抽象框架的数学表示:首先定义用户
Figure 866563DEST_PATH_IMAGE001
的嵌入向量
Figure 878381DEST_PATH_IMAGE002
,物品
Figure 236069DEST_PATH_IMAGE003
的嵌入向量
Figure 155483DEST_PATH_IMAGE004
,其中
Figure 177666DEST_PATH_IMAGE005
表示实数集合,k为嵌入向量的维度;用户
Figure 891544DEST_PATH_IMAGE001
的嵌入表
Figure 733598DEST_PATH_IMAGE006
,物品
Figure 191124DEST_PATH_IMAGE003
的嵌入表
Figure 536655DEST_PATH_IMAGE007
,其中m为用户个数,n为物品个数;
Figure 421434DEST_PATH_IMAGE008
为用户
Figure 954047DEST_PATH_IMAGE009
对物品
Figure 9072DEST_PATH_IMAGE003
的实际评分;
Figure 740267DEST_PATH_IMAGE010
为训练集中用户和物品有过实际交互的数据,
Figure 530369DEST_PATH_IMAGE011
为损失函数,
Figure 347015DEST_PATH_IMAGE012
为正则化系数,则协同过滤模型的优化目标定义为:
Figure 739819DEST_PATH_IMAGE013
其中
Figure 59942DEST_PATH_IMAGE014
为交互函数,
Figure 86192DEST_PATH_IMAGE015
表示矩阵的弗罗贝尼乌斯范数,
Figure 124555DEST_PATH_IMAGE016
为正则化项,用于缓解模型优化中的过拟合问题,通过最小化函数
Figure 993154DEST_PATH_IMAGE017
的值来优化协同过滤模型;
S12.在S11得到的协同过滤模型的统一框架的基础上,使用架构搜索技术来搜索协同过滤中关键的交互函数
Figure 167783DEST_PATH_IMAGE014
,其在协同过滤模型中表现为特定架构的形式,该架构搜索技术的数学定义为:
Figure 893162DEST_PATH_IMAGE018
Figure 481139DEST_PATH_IMAGE019
其中
Figure 150499DEST_PATH_IMAGE020
为验证集上的用户和物品的交互数据,A为交互函数
Figure 648476DEST_PATH_IMAGE021
的搜索空间,也即要构建的超网络,
Figure 279178DEST_PATH_IMAGE022
即为需要搜索得到的最优的交互函数,这是一个双层优化问题,其中内层为在训练数据上优化协同过滤模型,外层为在验证数据上优化交互函数的架构;
S13.找到最优的交互函数架构,使得协同过滤模型可以在给定的数据上达到最优的性能,通过进一步分析现有的协同过滤模型中常用的交互函数架构,提出了一个交互函数架构搜索空间,该搜索空间包含多种推荐系统模型中常用的操作,该搜索空间设计为一个基于参数共享的超网络,其层数为N,每层包含M种不同的块;其中每种块对应一种操作;通过在超网络的每层采样一个块,得到一个候选架构;搜索空间中的操作定义如下:
①Element-Wise操作,即EW操作:包括按位加、按位取最大值、按位取最小值、按位求平均值和内积,共计构成5种不同的块;
②多层感知器操作,即MLP操作:定义的每个MLP操作只包含三层,输入层和输出层都被指定了维度,以此在搜索空间上对齐维度,隐含层使用不同的神经元个数,以此体现不同的MLP操作,隐藏层神经元个数包括16、32、64、128、256、512和1024,总共构成7种不同的块;
③交叉网络操作,即CN操作:由多个交叉层组成,交叉层的输出通过以下公式计算
Figure 495395DEST_PATH_IMAGE023
其中x 0为交叉网络的初始输入,x l 为第l层交叉层的输出,w l b l 分别是第l层交叉层的权重参数和偏置参数,而x l+1 就是第l+1层交叉层的输出;
交叉网络的输出包含所有从1阶到l+1阶的交叉项
Figure 440217DEST_PATH_IMAGE024
,其中d CN 为交叉网络输出的维度,
Figure 120598DEST_PATH_IMAGE025
表示向量x i 的第a j 个分量;
交叉层的数量决定了交叉项的最大阶数,使用4种类型的交叉网络,其交叉层的数量为1、2、3和4,共计构成4种不同的块;
④自我注意力操作,即SA操作:其QKV SA 三个矩阵均来自同一输入,利用Softmax操作将其结果归一化为概率分布,再乘以矩阵V SA 就得到权重求和的表示;然后为了防止其结果过大,会除以一个尺度标度
Figure 859883DEST_PATH_IMAGE026
;使用不同的QKV SA 矩阵就是多头机制,从而学到不同的注意力表示,不同的头数也就形成了不同自我注意力模块,使用1、2、3和4个不同头数的自我注意力模块,也就是总共构成4种不同的块,注意力操作的计算公式如下:
Figure 360135DEST_PATH_IMAGE027
⑤因子分解机操作,即FM操作:因子分解机操作表示为以下公式:
Figure 642736DEST_PATH_IMAGE028
其中
Figure 912044DEST_PATH_IMAGE029
为因子分解机的参数,V FM 为参数矩阵,x为输入向量,d FM 为输入向量的维度,
Figure 884548DEST_PATH_IMAGE030
表示参数矩阵V FM 的第i行,
Figure 606516DEST_PATH_IMAGE031
表示矩阵V的第j
Figure 689878DEST_PATH_IMAGE032
表示向量x的第i个分量,
Figure 813692DEST_PATH_IMAGE033
表示向量x的第j个分量。
进一步地,步骤S2中所述超网络训练的具体方法是:在S1中构建的超网络的基础上,从超网络中采样子架构,采样的子架构继承超网络的参数,通过训练采样的子架构来训练超网络;记
Figure 160360DEST_PATH_IMAGE034
为超网络A包含的所有参数权重,
Figure 366695DEST_PATH_IMAGE035
为超网络A中的子架构a的网络参数,
Figure 457011DEST_PATH_IMAGE036
表示一个具体采样的子架构及其网络参数,
Figure 497648DEST_PATH_IMAGE037
为采样子架构a的先验分布,则训练超网络的目标为:
Figure 218479DEST_PATH_IMAGE038
其中,
Figure 711777DEST_PATH_IMAGE039
表示期望,
Figure 543467DEST_PATH_IMAGE040
表示架构在训练数据上的损失,即从超网络中按照先验分布
Figure 173032DEST_PATH_IMAGE037
随机采样子架构的期望性能最优;
S21.随机初始化超网络的参数:通过标准的网络参数初始化技术初始化超网络的参数;
S22.训练超网络,超网络的训练过程迭代执行,指定训练轮数
Figure 861502DEST_PATH_IMAGE041
,每一轮迭代包含以下三个步骤:
(1)从超网络中随机采样一个子架构,子架构继承和共享超网络中的参数;
(2)从训练数据中随机采样一个批量的数据;
(3)使用梯度下降通过训练数据训练采样的子架构,同时更新超网络中的相应参数。
进一步地,步骤S3中所述进化搜索算法的具体方法是:
S31.首先通过随机采样的子架构初始化种群P 0,种群中包含P个个体,种群中的每个个体即为一个候选子架构,进化算法通过对种群选择、交叉、变异,逐步迭代找到最优解;
S32.计算适应度:种群中每个个体的适应度为其对应子架构的性能,使用参数共享技术,这里无需对子架构训练,直接继承超网络中的参数进行评估,得到个体的适应度;
S33.执行一个进化步骤:根据个体的适应度,独立地从种群中选择P/2次个体,每次选择一个个体,所述个体被选中的概率与其适应度大小成正比,被选中的个体作为母体;对母体进行交叉、变异操作,其中选中的个体中每个块变异的概率为0.1,两个随机选择的个体中随机选择一个块进行交叉,交叉和变异后的后代加入到种群中,从新的种群中选择适应度最高的P个个体形成新的种群。
S34.在进化算法达到预定义的迭代次数之后,从最终的种群中选择适应度最高的t个子架构,对这些子架构进行训练和评估,选择其中最优的子架构作为搜索结果。
有益效果:
本发明提出一种协同过滤模型的自动化架构搜索,引入NAS算法针对特定数据集搜索相应的协同过滤模型中的交互函数,以此提高协同过滤模型的效果。相比于其它的以一些应用NAS的协同过滤模型的工作,本发明的搜索空间紧凑高效,包含了多种推荐系统模型里常用的操作和模块。并且本发明的搜索空间是一种基于参数共享的超网络,它可以利用随机采样高效的训练采样的子架构,以此达到训练整体超网络的目的。同时,本发明的搜索策略是一个两阶段的方法,首先采样超网络里的子架构训练超网络的参数,接着利用进化算法搜索超网络里的优秀的子架构。在公开数据集上进行实验,与人工设计的方法和其它NAS算法相比,本发明也有显著提升。
附图说明
图1为本发明的整体框架示意图;
图2为本发明的搜索空间和搜索算法的整体示意图。图2中(a)表示搜索空间, 2(b)表示搜索空间的一个解,通过在每一层采样一个块得到。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本发明一种协同过滤模型自动化架构搜索的方法,包括以下步骤:
S1.根据预设的搜索空间构建超网络,超网络中的参数被所有子架构共享;
S11.首先对现有的协同过滤模型进行归纳抽象,形成协同过滤模型的统一框架,并且表示为数学模型。通过分析现有的协同过滤模型,可以将协同过滤模型抽象为有两个部分:嵌入表示,将用户和物品转化为低维的向量表示;交互函数,基于嵌入重建用户和物品的历史交互。以下为协同过滤抽象框架的数学表示:S12.在S11得到的协同过滤模型的统一框架的基础上,使用架构搜索技术来搜索协同过滤中关键的交互函数
Figure 251550DEST_PATH_IMAGE014
,其在协同过滤模型中表现为特定架构的形式,该架构搜索技术的数学定义为:
Figure 683669DEST_PATH_IMAGE042
Figure 902161DEST_PATH_IMAGE043
其中
Figure 27111DEST_PATH_IMAGE044
为验证集上的用户和物品的交互数据,A为交互函数
Figure 432685DEST_PATH_IMAGE045
的搜索空间,也即要构建的超网络,
Figure 402915DEST_PATH_IMAGE022
即为需要搜索得到的最优的交互函数,这是一个双层优化问题,其中内层为在训练数据上优化协同过滤模型,外层为在验证数据上优化交互函数的架构。
可以看出,公式的前半部分计算模型,计算的是用户和物品的相似度与用户和物品实际的相似度之间的差距,其中模型计算的用户和物品的相似度,通过计算用户和物品的各自的嵌入向量的内积得到,而用户和物品实际的相似度,通常来自用户对物品的主动动作,例如用户给某部电影的评分(1星到5星)。
Figure 741492DEST_PATH_IMAGE011
为损失函数,通常采用的是均方误差(mean-square error, MSE),所以用户对物品的评分一般也需要做相应的归一化或者标准化。公式的后半部分是计算用户和物品的嵌入表的二范数,以此达到惩罚的目的,抑制过拟合。传统的协同过滤模型通常利用类似
Figure 771765DEST_PATH_IMAGE046
的内积形式计算相似度。然而,内积并不是在所有的数据集上表现都最优,不同的数据集可能需要不同的交互方式。因此可以引入AutoML的思想,利用NAS算法针对特定的数据集搜索特定的交互函数。
则协同过滤模型的优化目标定义为:
Figure 133477DEST_PATH_IMAGE013
其中
Figure 193485DEST_PATH_IMAGE014
为交互函数,
Figure 652148DEST_PATH_IMAGE015
表示矩阵的弗罗贝尼乌斯范数,
Figure 56584DEST_PATH_IMAGE016
为正则化项,上述公式定义的
Figure 499067DEST_PATH_IMAGE017
与前面公式不同的是,将使用内积计算相似度
Figure 279941DEST_PATH_IMAGE047
,替代为了抽象的交互函数
Figure 858690DEST_PATH_IMAGE014
,它是一个可学习的神经网络架构,这样定义也利于扩展,例如在NCF中
Figure 434028DEST_PATH_IMAGE014
就是一个多层感知器,在SIF中就可以表示不同的数学交互操作。
S12.在S11得到的抽象框架的基础上,本发明提出使用架构搜索技术来搜索协同过滤中关键的交互函数
Figure 832648DEST_PATH_IMAGE014
,其在协同过滤模型中表现为特定架构的形式。本发明旨在通过架构搜索得到更合适的交互函数架构,提升协同过滤模型的性能。以上架构搜索问题的数学定义为:
Figure 951301DEST_PATH_IMAGE018
Figure 853398DEST_PATH_IMAGE019
其中
Figure 599637DEST_PATH_IMAGE020
为验证集上的用户和物品的交互数据,A为交互函数
Figure 219975DEST_PATH_IMAGE021
的搜索空间,也即要构建的超网络,
Figure 873810DEST_PATH_IMAGE022
即为需要搜索得到的最优的交互函数,这是一个双层优化问题,其中内层为在训练数据上优化协同过滤模型,外层为在验证数据上优化交互函数的架构。整体上期望找到最优的交互函数架构,使得协同过滤模型可以在给定的数据上达到最优的性能。
S13.为了解决S12中提出的搜索问题,本发明通过进一步分析现有的协同过滤模型中常用的交互函数架构,提出了一个紧凑高效的交互函数架构搜索空间。搜索空间包含多种推荐系统模型中常用的操作。将整体搜索空间设计成一个基于参数共享的超网络,如图2所示,这是一个层数为N的搜索空间,每层包含M种不同的块(Block),每种块具体处理数据的方式都不同。而且每层所有的块在后续的训练子架构的过程或者搜索子架构的过程时只会有一个具体的块被激活。也就是如图2所示的,每层的虚线块只会有一个被选中,作为实际被采样的架构或者搜索到的架构。需要注意的是,原始输入(用户嵌入和物品嵌入)会输出到每一层作为每一层的输入,同时第i层的输出会作为第
Figure 895992DEST_PATH_IMAGE048
层的输入。因为在推荐系统模型中,特征的交叉非常重要,这样设计可以丰富低阶特征(包括原始输入)与高阶特征的隐式交叉,提升了模型的表达能力。并且同时这样设计类似Resnet中Skip-Connection的设计,借鉴了残差学习的思想,可以使原始输入更容易传递到网络的深层部分,反向回传中更好地把梯度传到更浅的层次中,使得模型更容易学习。
每层都包含M种不同的块,它们都是推荐系统模型中一些常用的操作和模块,实际上可以分为5大类,并且它们每种大类型的块都包含一些超参数,下面列出这5大类操作:
①Element-Wise(EW)操作:主要包含一些元素级的数学操作,包括按位加(sum)、按位取最大值(max)、按位取最小值(min)、按位求平均值(avg)和内积(inner product),共计构成5种不同的块。
②多层感知器(MLP)操作:即简单的前馈神经网络层,为了搜索空间的多样性,本发明定义的每个MLP操作只包含三层,输入层和输出层都被指定了维度,以此在搜索空间上对齐维度,隐含层使用不同的神经元个数,以此体现不同的MLP操作,隐藏层神经元个数包括16、32、64、128、256、512和1024,总共构成7种不同的块。
③交叉网络(Cross Network , CN)操作:由多个交叉层组成,交叉层的输出通过以下公式计算
Figure 875450DEST_PATH_IMAGE023
其中x 0为交叉网络的初始输入,x l 为第l层交叉层的输出,w l b l 分别是第l层交叉层的权重参数和偏置参数,而x l+1 就是第l+1层交叉层的输出;
交叉网络的输出包含所有从1阶到l+1阶的交叉项
Figure 920766DEST_PATH_IMAGE024
,其中d CN 为交叉网络输出的维度,
Figure 906521DEST_PATH_IMAGE025
表示向量x i 的第a j 个分量;
交叉层的数量决定了交叉项的最大阶数,本实施例使用4种类型的交叉网络,其交叉层的数量为1、2、3和4,共计构成4种不同的块。
④自我注意力(Self-Attention, SA)操作:自我注意力机制是注意力机制的一种特例,其Q(Query), K(Key), V SA (Value)三个矩阵均来自同一输入,利用Softmax操作将其结果归一化为概率分布,然后再乘以矩阵V SA 就得到权重求和的表示,然后为了防止其结果过大,会除以一个尺度标度
Figure 48789DEST_PATH_IMAGE026
;使用不同的QKV SA 矩阵就是多头(multi-head)机制,它可以学到不同的注意力表示,不同的头数也就形成了不同自我注意力模块,本发明中使用1、2、3和4个不同头数的自我注意力模块,也就是总共构成4种不同的块。注意力操作的计算公式如下:
Figure 136831DEST_PATH_IMAGE027
⑤因子分解机(Factorization Machine, FM)操作:因子分解机操作可以表示为以下公式:
Figure 997340DEST_PATH_IMAGE028
其中
Figure 258557DEST_PATH_IMAGE029
为因子分解机的参数,V FM 为参数矩阵,x为输入向量,d FM 为输入向量的维度,
Figure 989752DEST_PATH_IMAGE030
表示参数矩阵V FM 的第i行,
Figure 45433DEST_PATH_IMAGE031
表示矩阵V的第j
Figure 127659DEST_PATH_IMAGE032
表示向量x的第i个分量,
Figure 130250DEST_PATH_IMAGE033
表示向量x的第j个分量。
因子分解机的输出是一阶特征和二阶特征相互作用的总和。由于两个输入都已经转化为低维嵌入,本发明将多个输入串联为一个张量计算一阶特征和二阶特征的相互作用。
因此,本发明的搜索空间中每层共有
Figure 515619DEST_PATH_IMAGE049
种不同的块。同时为了参数共享和方便不同类型的块处理多个输入,每个块的输出都被固定为指定维度,记为
Figure 211043DEST_PATH_IMAGE050
S2.超网络训练:从超网络中随机采样子架构,通过训练子架构训练超网络;
在S1中构建的超网络的基础上,从超网络中采样架构,采样的架构继承超网络的参数,通过训练采样的架构来训练超网络。记
Figure 514985DEST_PATH_IMAGE035
为超网络A中的子架构a的网络参数,
Figure 383584DEST_PATH_IMAGE036
表示一个具体采样的子架构及其网络参数,
Figure 620530DEST_PATH_IMAGE037
为采样子架构a的先验分布,则训练超网络的目标为:
Figure 814751DEST_PATH_IMAGE038
其中,
Figure 524432DEST_PATH_IMAGE039
表示期望,
Figure 665563DEST_PATH_IMAGE040
表示架构在训练数据上的损失,即从超网络中按照先验分布
Figure 225857DEST_PATH_IMAGE037
随机采样子架构的期望性能最优。通过上述公式可以看出,架构参数被解耦到了先验分布
Figure 325400DEST_PATH_IMAGE037
中,训练超网络的参数时不再涉及到优化架构参数。因此,先验分布
Figure 541618DEST_PATH_IMAGE037
起到了比较重要的作用。最近的一些工作发现,纯粹的随机搜索相比几个最为先进的NAS方法具有很强的竞争力。并且,根据之前一些工作中的经验发现,
Figure 486440DEST_PATH_IMAGE037
采用均匀采样(uniformsampling)已经得到很好的采样效果。所以在本发明中,
Figure 169750DEST_PATH_IMAGE037
采用了均匀采样的方法,并且它是固定的,在训练超网络的过程中,分布也不需要进行学习。图2的所示的子架构可以被视作为一个随机采样到的子架构。
S21.随机初始化超网络的参数:通过标准的网络参数初始化技术初始化超网络的参数。
S22.训练超网络。在训练超网络时,会指定训练轮数为
Figure 174615DEST_PATH_IMAGE051
,如果资源时间充足,
Figure 878129DEST_PATH_IMAGE052
可以设的较大,如果资源时间受限,
Figure 626642DEST_PATH_IMAGE051
可以设置的较小,区别是超网络的参数能不能得到充分的训练。每一轮迭代包含以下三个步骤:
(1)从超网络中随机采样一个子架构,子架构继承和共享超网络中的参数。
(2)从训练数据中随机采样一个批量的数据。
(3)使用梯度下降通过训练数据训练采样的子架构,同时更新超网络中的相应参数。
S3.在S2中的超网络训练完成之后,使用进化算法从超网络中搜索表现优秀的协同过滤模型,其中最优的模型即为架构搜索的结果。受益于参数共享技术,搜索到的候选子架构无需训练,直接推理即可得到子架构的精度。权重共享技术极大地提升了架构搜索的效率。
S31.进化算法通过对种群选择、交叉、变异,逐步迭代找到最优解。种群中的每个个体即为一个候选子架构。首先通过随机采样的子架构初始化种群P 0,种群中包含P个个体。
S32.计算适应度。种群中每个个体的适应度为其对应子架构的性能,使用参数共享技术,这里无需对子架构训练,直接继承超网络中的参数进行评估,得到个体的适应度。
S33.执行一个进化步骤:根据个体的适应度,独立地从种群中选择P/2次个体,每次选择一个个体,所述个体被选中的概率与其适应度大小成正比,被选中的个体作为母体;对母体进行交叉、变异操作,其中选中的个体中每个块变异的概率为0.1,两个随机选择的个体中随机选择一个块进行交叉。交叉和变异后的后代加入到种群中。从新的种群中选择适应度最高的P个个体形成新的种群。
S34.在进化算法达到预定义的迭代次数之后,从最终的种群中选择适应度最高的t个子架构,对这些子架构进行训练和评估,选择其中最优的子架构作为搜索结果。
表1 列出了本发明与其他方法的平方均误差的对比,可以看出本发明相比其他方法有明显提升。
表1:本发明与其他方法的平方均误差对比
Figure 895949DEST_PATH_IMAGE053

Claims (3)

1.一种协同过滤模型的自动化架构搜索方法,其特征在于,该方法包括以下步骤:
S1.根据预设的搜索空间构建超网络,超网络中的参数被所有子架构共享;
S2.超网络训练:从超网络中随机采样子架构,通过训练子架构训练超网络;
S3.在S2中的超网络训练完成之后,使用进化算法从超网络中搜索表现优秀的协同过滤模型,其中最优的模型即为架构搜索的结果;
步骤S1中所述构建超网络的具体方法是:
S11.首先对现有的协同过滤模型进行归纳抽象,形成协同过滤模型的统一框架,并且表示为数学模型,具体地,通过分析现有的协同过滤模型,将协同过滤模型抽象为有两个部分:嵌入表示,将用户和物品转化为低维的向量表示;交互函数,基于嵌入重建用户和物品的历史交互;以下为协同过滤抽象框架的数学表示:首先定义用户
Figure DEST_PATH_IMAGE002
的嵌入向量
Figure DEST_PATH_IMAGE004
,物品
Figure DEST_PATH_IMAGE006
的嵌入向量
Figure DEST_PATH_IMAGE008
,其中
Figure DEST_PATH_IMAGE010
表示实数集合,k为嵌入向量的维度;用户
Figure 183682DEST_PATH_IMAGE002
的嵌入表
Figure DEST_PATH_IMAGE012
,物品
Figure 274391DEST_PATH_IMAGE006
的嵌入表
Figure DEST_PATH_IMAGE014
,其中m为用户个数,n为物品个数;
Figure DEST_PATH_IMAGE016
为用户
Figure 506658DEST_PATH_IMAGE002
对物品
Figure 511654DEST_PATH_IMAGE006
的实际评分;
Figure DEST_PATH_IMAGE018
为训练集中用户和物品有过实际交互的数据,
Figure DEST_PATH_IMAGE020
为损失函数,
Figure DEST_PATH_IMAGE022
为正则化系数,则协同过滤模型的优化目标定义为:
Figure DEST_PATH_IMAGE024
其中
Figure DEST_PATH_IMAGE026
为交互函数,
Figure DEST_PATH_IMAGE028
表示矩阵的弗罗贝尼乌斯范数,
Figure DEST_PATH_IMAGE030
为正则化项,用于缓解模型优化中的过拟合问题,通过最小化函数
Figure DEST_PATH_IMAGE032
的值来优化协同过滤模型;
S12.在S11得到的协同过滤模型的统一框架的基础上,使用架构搜索技术来搜索协同过滤中关键的交互函数
Figure 707450DEST_PATH_IMAGE026
,其在协同过滤模型中表现为特定架构的形式,该架构搜索技术的数学定义为:
Figure DEST_PATH_IMAGE034
Figure DEST_PATH_IMAGE036
其中
Figure DEST_PATH_IMAGE038
为验证集上的用户和物品的交互数据,A为交互函数
Figure DEST_PATH_IMAGE040
的搜索空间,也即要构建的超网络,
Figure DEST_PATH_IMAGE042
即为需要搜索得到的最优的交互函数,这是一个双层优化问题,其中内层为在训练数据上优化协同过滤模型,外层为在验证数据上优化交互函数的架构;
S13.找到最优的交互函数架构,使得协同过滤模型可以在给定的数据上达到最优的性能,通过进一步分析现有的协同过滤模型中常用的交互函数架构,提出了一个交互函数架构搜索空间,该搜索空间包含多种推荐系统模型中常用的操作,该搜索空间设计为一个基于参数共享的超网络,其层数为N,每层包含M种不同的块;其中每种块对应一种操作;通过在超网络的每层采样一个块,得到一个候选架构;搜索空间中的操作定义如下:
①Element-Wise操作,即EW操作:包括按位加、按位取最大值、按位取最小值、按位求平均值和内积,共计构成5种不同的块;
②多层感知器操作,即MLP操作:定义的每个MLP操作只包含三层,输入层和输出层都被指定了维度,以此在搜索空间上对齐维度,隐含层使用不同的神经元个数,以此体现不同的MLP操作,隐藏层神经元个数包括16、32、64、128、256、512和1024,总共构成7种不同的块;
③交叉网络操作,即CN操作:由多个交叉层组成,交叉层的输出通过以下公式计算
Figure DEST_PATH_IMAGE044
其中x 0为交叉网络的初始输入,x l 为第l层交叉层的输出,w l b l 分别是第l层交叉层的权重参数和偏置参数,而x l+1 就是第l+1层交叉层的输出;
交叉网络的输出包含所有从1阶到l+1阶的交叉项
Figure DEST_PATH_IMAGE046
,其中d CN 为交叉网络输出的维度,
Figure DEST_PATH_IMAGE048
表示向量x i 的第a j 个分量;
交叉层的数量决定了交叉项的最大阶数,使用4种类型的交叉网络,其交叉层的数量为1、2、3和4,共计构成4种不同的块;
④自我注意力操作,即SA操作:其QKV SA 三个矩阵均来自同一输入,利用Softmax操作将其结果归一化为概率分布,再乘以矩阵V SA 就得到权重求和的表示;然后为了防止其结果过大,会除以一个尺度标度
Figure DEST_PATH_IMAGE050
;使用不同的QKV SA 矩阵就是多头机制,从而学到不同的注意力表示,不同的头数也就形成了不同自我注意力模块,使用1、2、3和4个不同头数的自我注意力模块,也就是总共构成4种不同的块,注意力操作的计算公式如下:
Figure DEST_PATH_IMAGE052
⑤因子分解机操作,即FM操作:因子分解机操作表示为以下公式:
Figure DEST_PATH_IMAGE054
其中
Figure DEST_PATH_IMAGE056
为因子分解机的参数,V FM 为参数矩阵,x为输入向量,d FM 为输入向量的维度,
Figure DEST_PATH_IMAGE058
表示参数矩阵V FM 的第i行,
Figure DEST_PATH_IMAGE060
表示矩阵V的第j
Figure DEST_PATH_IMAGE062
表示向量x的第i个分量,
Figure DEST_PATH_IMAGE064
表示向量x的第j个分量。
2.根据权利要求1所述的协同过滤模型的自动化架构搜索方法,其特征在于,步骤S2中所述超网络训练的具体方法是:在S1中构建的超网络的基础上,从超网络中采样子架构,采样的子架构继承超网络的参数,通过训练采样的子架构来训练超网络;记
Figure DEST_PATH_IMAGE066
为超网络A包含的所有参数权重,
Figure DEST_PATH_IMAGE068
为超网络A中的子架构a的网络参数,
Figure DEST_PATH_IMAGE070
表示一个具体采样的子架构及其网络参数,
Figure DEST_PATH_IMAGE072
为采样子架构a的先验分布,则训练超网络的目标为:
Figure DEST_PATH_IMAGE074
其中,
Figure DEST_PATH_IMAGE076
表示期望,
Figure DEST_PATH_IMAGE078
表示架构在训练数据上的损失,即从超网络中按照先验分布
Figure 32095DEST_PATH_IMAGE072
随机采样子架构的期望性能最优;
S21.随机初始化超网络的参数:通过标准的网络参数初始化技术初始化超网络的参数;
S22.训练超网络,超网络的训练过程迭代执行,指定训练轮数
Figure DEST_PATH_IMAGE080
,每一轮迭代包含以下三个步骤:
(1)从超网络中随机采样一个子架构,子架构继承和共享超网络中的参数;
(2)从训练数据中随机采样一个批量的数据;
(3)使用梯度下降通过训练数据训练采样的子架构,同时更新超网络中的相应参数。
3.根据权利要求1所述的协同过滤模型的自动化架构搜索方法,其特征在于,步骤S3中所述进化算法的具体方法是:
S31.首先通过随机采样的子架构初始化种群P 0,种群中包含P个个体,种群中的每个个体即为一个候选子架构,进化算法通过对种群选择、交叉、变异,逐步迭代找到最优解;
S32.计算适应度:种群中每个个体的适应度为其对应子架构的性能,使用参数共享技术,这里无需对子架构训练,直接继承超网络中的参数进行评估,得到个体的适应度;
S33.执行一个进化步骤:根据个体的适应度,独立地从种群中选择P/2次个体,每次选择一个个体,所述个体被选中的概率与其适应度大小成正比,被选中的个体作为母体;对母体进行交叉、变异操作,其中选中的个体中每个块变异的概率为0.1,两个随机选择的个体中随机选择一个块进行交叉,交叉和变异后的后代加入到种群中,从新的种群中选择适应度最高的P个个体形成新的种群。
S34.在进化算法达到预定义的迭代次数之后,从最终的种群中选择适应度最高的t个子架构,对这些子架构进行训练和评估,选择其中最优的子架构作为搜索结果。
CN202211119443.3A 2022-09-15 2022-09-15 一种协同过滤模型的自动化架构搜索方法 Active CN115203585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211119443.3A CN115203585B (zh) 2022-09-15 2022-09-15 一种协同过滤模型的自动化架构搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211119443.3A CN115203585B (zh) 2022-09-15 2022-09-15 一种协同过滤模型的自动化架构搜索方法

Publications (2)

Publication Number Publication Date
CN115203585A CN115203585A (zh) 2022-10-18
CN115203585B true CN115203585B (zh) 2022-12-27

Family

ID=83572187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211119443.3A Active CN115203585B (zh) 2022-09-15 2022-09-15 一种协同过滤模型的自动化架构搜索方法

Country Status (1)

Country Link
CN (1) CN115203585B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116484906A (zh) * 2023-04-23 2023-07-25 北京航空航天大学 图神经网络架构搜索方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110288444A (zh) * 2019-06-28 2019-09-27 第四范式(北京)技术有限公司 实现用户相关推荐的方法和系统
CN112464579A (zh) * 2021-02-02 2021-03-09 四川大学 基于进化神经网络结构搜索食管癌病变区域识别建模方法
CN114419389A (zh) * 2021-12-14 2022-04-29 上海悠络客电子科技股份有限公司 一种基于神经网络架构搜索的目标检测模型构建方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110288444A (zh) * 2019-06-28 2019-09-27 第四范式(北京)技术有限公司 实现用户相关推荐的方法和系统
CN112464579A (zh) * 2021-02-02 2021-03-09 四川大学 基于进化神经网络结构搜索食管癌病变区域识别建模方法
CN114419389A (zh) * 2021-12-14 2022-04-29 上海悠络客电子科技股份有限公司 一种基于神经网络架构搜索的目标检测模型构建方法

Also Published As

Publication number Publication date
CN115203585A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
CN111611472B (zh) 一种基于图卷积神经网络的捆绑推荐方法及系统
CN111310063B (zh) 基于神经网络的记忆感知门控因子分解机物品推荐方法
CN111932336A (zh) 一种基于长短期兴趣偏好的商品列表推荐方法
CN111881342A (zh) 一种基于图孪生网络的推荐方法
CN111881363B (zh) 一种基于图交互网络的推荐方法
CN112232925A (zh) 一种融合知识图谱对商品进行个性化推荐的方法
CN113918832B (zh) 基于社交关系的图卷积协同过滤推荐系统
CN113918833B (zh) 通过社交网络关系的图卷积协同过滤实现的产品推荐方法
CN111583031A (zh) 一种基于集成学习的申请评分卡模型建立方法
CN114357312A (zh) 基于图神经网络自动建模的社区发现方法及个性推荐方法
CN111552852B (zh) 基于半离散矩阵分解的物品推荐方法
CN116108260B (zh) 一种基于交互二部图重构邻近的个性化推荐方法
CN113744023A (zh) 一种基于图卷积网络的双通道协同过滤推荐方法
CN115525819A (zh) 一种面向信息茧房的跨领域推荐方法
CN113761359A (zh) 数据包推荐方法、装置、电子设备和存储介质
CN117271909A (zh) 一种基于对比学习和知识共享的多任务推荐方法
CN116955810A (zh) 一种基于图卷积网络的知识协同推荐算法的优化方法
CN110765363B (zh) 一种基于高斯分布表示的深度推荐系统
CN116385077A (zh) 一种基于行为感知融合图卷积网络的多行为推荐系统
CN115203585B (zh) 一种协同过滤模型的自动化架构搜索方法
CN116796073B (zh) 一种基于特征增强的图对比学习会话推荐方法
CN116759106A (zh) 一种基于层次注意力融合多特征的药物多毒性预测方法
CN120541312A (zh) 一种基于对齐和均匀性的图去噪协同过滤推荐方法
CN116664253B (zh) 一种基于广义矩阵分解与遮蔽注意力的项目推荐方法
Kalidindi et al. Discrete Deep Learning Based Collaborative Filtering Approach for Cold Start Problem.

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