CN116150508A - 一种基于对比学习的物品推荐方法、电子设备及存储介质 - Google Patents

一种基于对比学习的物品推荐方法、电子设备及存储介质 Download PDF

Info

Publication number
CN116150508A
CN116150508A CN202310438525.2A CN202310438525A CN116150508A CN 116150508 A CN116150508 A CN 116150508A CN 202310438525 A CN202310438525 A CN 202310438525A CN 116150508 A CN116150508 A CN 116150508A
Authority
CN
China
Prior art keywords
loss function
coarse
subsequence
granularity
sequence
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
CN202310438525.2A
Other languages
English (en)
Other versions
CN116150508B (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 Yiyou Huiyun Software Co ltd
Original Assignee
Jiangsu Yiyou Huiyun Software 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 Yiyou Huiyun Software Co ltd filed Critical Jiangsu Yiyou Huiyun Software Co ltd
Priority to CN202310438525.2A priority Critical patent/CN116150508B/zh
Publication of CN116150508A publication Critical patent/CN116150508A/zh
Application granted granted Critical
Publication of CN116150508B publication Critical patent/CN116150508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/9536Search customisation based on social or collaborative filtering
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Image Analysis (AREA)

Abstract

本申请涉及机器学习技术领域,特别是涉及一种基于对比学习的物品推荐方法、电子设备及存储介质。所述物品推荐方法,包括:将各用户的原始交互序列切分为多个子序列;对于每一子序列,从具有与所述子序列相同的目标物品的所有子序列中取样一个作为对比序列;捕捉获得子序列和对比序列对应的粗粒度的意图表示并进行粗粒度对比学习;将子序列和对比序列的粗粒度的意图表示和聚类所得的对应的细粒度的意图表示进行细粒度对比学习;确定物品推荐概率和推荐损失函数;基于粗粒度对比学习和细粒度对比学习的损失函数以及推荐损失函数进行迭代训练生成物品推荐模型。本申请的一种基于对比学习的物品推荐方法,物品推荐准确率高,鲁棒性好。

Description

一种基于对比学习的物品推荐方法、电子设备及存储介质
技术领域
本申请涉及机器学习技术领域,特别是涉及一种基于对比学习的物品推荐方法、电子设备及存储介质。
背景技术
推荐系统是基于用户的历史交互信息为用户推荐感兴趣物品的一种系统,序列推荐作为动态建模用户兴趣偏好的最优模型之一,其专注于通过用户的交互历史来预测用户下一个可能交互的物品。由于用户的交互行为主要依赖于用户的意图,因此现有技术常常引入意图捕捉来提高预测的性能和鲁棒性,目前建模捕捉意图的方法按照是否使用辅助信息分为两类,一类是使用如用户行为、物品种类等辅助信息来帮助模型学习用户的意图表示,但是这些辅助信息并不是总能够反应用户的意图,存在局限性;另一类是通过用户序列级别的聚类来捕捉单个用户的意图,但忽略了具有相同目标物品的子序列的不同用户之间的关系,导致推荐性能并不如意。
发明内容
为了解决现有技术存在的不足,本申请的目的在于提供一种基于对比学习的物品推荐方法、电子设备及存储介质,提高推荐系统的推荐精准度。
为实现上述目的,本申请提供一种基于对比学习的物品推荐方法,包括:将各用户的原始交互序列切分为多个子序列,使所述原始交互序列中的每一个交互物品都作为一个子序列的目标物品,所述目标物品为子序列中的最后一个物品;
对于每一子序列,从具有与所述子序列相同的目标物品的所有子序列中取样一个作为所述子序列的对比序列;
对所述子序列和所述子序列的对比序列进行编码,捕捉获得所述子序列和所述子序列的对比序列对应的粗粒度的意图表示,并进行粗粒度对比学习,确定粗粒度对比学习的损失函数;
使用K-means对所有的子序列的粗粒度的意图表示进行聚类,将聚类中心作为子序列的细粒度的意图表示,获得所有子序列的细粒度的意图表示,再使用query确定每个子序列对应的细粒度的意图表示;
将所述子序列、所述子序列的对比序列的粗粒度的意图表示和对应的细粒度的意图表示进行细粒度对比学习,确定细粒度对比学习的损失函数;
对所述粗粒度的意图表示与物品的向量矩阵做乘法运算并进行归一化,确定物品推荐概率和推荐损失函数;
基于所述粗粒度对比学习的损失函数、所述细粒度对比学习的损失函数和所述推荐损失函数,确定总损失函数,基于所述总损失函数,进行迭代训练生成物品推荐模型。
进一步地,所述将各用户的原始交互序列切分为多个子序列的步骤,包括:
使用滑动窗口从后往前按照预设步长移动切分所述原始交互序列得到子序列,直至得到长度为2且目标物品为原始交互序列中第2个位置的物品的子序列。
进一步地,所述方法,还包括:
将所有具有相同目标物品的子序列放入同一个集合。
进一步地,所述使用K-means对所有的子序列的粗粒度的意图表示进行聚类,将聚类中心作为子序列的细粒度的意图表示,获得所有子序列的细粒度的意图表示的步骤,采用如下公式:
Figure SMS_1
其中,f为编码器,
Figure SMS_2
为编码器参数,/>
Figure SMS_3
为第m个子序列,/>
Figure SMS_4
为第m个子序列的粗粒度的意图表示,C为聚类结果,c为意图,K为意图的种类。
进一步地,所述对所述子序列和所述子序列的对比序列进行编码,捕捉获得所述子序列和所述子序列的对比序列对应的粗粒度的意图表示,并进行粗粒度对比学习,确定粗粒度对比学习的损失函数的步骤,采用如下公式:
Figure SMS_5
其中,
Figure SMS_6
为粗粒度对比学习的损失函数,S()为相似度,/>
Figure SMS_7
分别为子序列和所述子序列的对比序列的粗粒度的意图表示,/>
Figure SMS_8
为温度系数,/>
Figure SMS_9
为一个训练批量内除了/>
Figure SMS_10
外的所有其他样本。
进一步地,所述将所述子序列、所述子序列的对比序列的粗粒度的意图表示和对应的细粒度的意图表示进行细粒度对比学习,确定细粒度对比学习的损失函数的步骤,采用如下公式:
Figure SMS_11
其中,
Figure SMS_12
为细粒度对比学习的损失函数,/>
Figure SMS_13
,/>
Figure SMS_14
Figure SMS_15
、/>
Figure SMS_16
分别为粗粒度的意图表示/>
Figure SMS_17
、/>
Figure SMS_18
聚类后对应的细粒度意图表示。
进一步地,所述对所述粗粒度的意图表示与物品的向量矩阵做乘法运算并进行归一化,确定物品推荐概率和推荐损失函数的步骤,采用如下公式:
Figure SMS_19
Figure SMS_20
其中,
Figure SMS_22
为物品推荐概率,/>
Figure SMS_24
为推荐损失函数,/>
Figure SMS_26
为目标物品的标签,/>
Figure SMS_23
为预测到目标物品的概率,/>
Figure SMS_25
为预测到第/>
Figure SMS_27
个物品的概率,/>
Figure SMS_28
为所有物品的数量,/>
Figure SMS_21
为用户u的交互序列的意图表示,M为物品的向量矩阵。
更进一步地,所述基于所述粗粒度对比学习的损失函数、细粒度对比学习的损失函数和推荐损失函数,确定总损失函数的步骤,采用如下公式:
Figure SMS_29
其中,
Figure SMS_30
为总损失函数,/>
Figure SMS_31
和/>
Figure SMS_32
为权重超参数,/>
Figure SMS_33
为粗粒度对比学习的损失函数,
Figure SMS_34
为细粒度对比学习的损失函数,/>
Figure SMS_35
为推荐损失函数。
为实现上述目的,本申请提供的电子设备,包括:
处理器;
存储器,其上存储有一个或多个在所述处理器上运行的计算机指令;
所述处理器运行所述计算机指令时,执行如上所述的基于对比学习的物品推荐方法的步骤。
为实现上述目的,本申请提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令被处理器运行时,执行如上所述的基于对比学习的物品推荐方法的步骤。
本申请的一种基于对比学习的物品推荐方法,利用隐藏在不同用户交互历史中的相同目标物品的子序列来构建意图监督信号意图进行对比学习,以此提高了用户交互物品预测推荐的准确率和性能。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请的基于对比学习的物品推荐方法的流程示意图;
图2为本申请的物品推荐模型的结构示意图;
图3为本申请的数据统计结果的示意图;
图4为本申请的物品推荐模型的性能指标的示意图;
图5为本申请的物品推荐模型的鲁棒性效果的示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
下面,将参考附图详细地说明本申请的实施例。
实施例1
本申请的一个实施例,提供了一种基于对比学习的物品推荐方法,下面将参考图1-5对本申请的基于对比学习的物品推荐方法进行详细描述。
步骤S101:将各用户的原始交互序列切分为多个子序列,使所述原始交互序列中的每一个交互物品都作为一个子序列的目标物品,所述目标物品为子序列中的最后一个物品;
具体的,假设用户和物品的集合分别为U和I,用户u(属于U)的原始交互序列Su={su 1,su 2,·····,su |S u |}, su t(属于I,t属于[1,|Su|])表示用户u在第t个位置交互的物品,其中|Su|表示序列的长度。
在本实施方式中,为了学习不同用户的原始交互序列中隐藏的相同子序列,使用滑动操作即DS(·)操作将各用户的原始交互序列切分为多个子序列,DS(·)操作过程如下:
Figure SMS_36
对于原始交互序列
Figure SMS_38
,规定切分后的子序列的最大长度为/>
Figure SMS_43
,当原始交互序列/>
Figure SMS_47
的长度/>
Figure SMS_40
小于规定的子序列的最大长度/>
Figure SMS_44
时,直接滑动切分,切分得到长度分别为2~/>
Figure SMS_46
的子序列;当原始交互序列/>
Figure SMS_49
的长度/>
Figure SMS_37
大于规定的子序列的最大长度/>
Figure SMS_41
时,使用窗口大小为/>
Figure SMS_45
的滑动窗口,从后往前切分原始交互序列直至原始交互序列的长度小于/>
Figure SMS_48
,当原始交互序列的长度小于/>
Figure SMS_39
后,再直接滑动切分,切分得到长度分别为2~/>
Figure SMS_42
的子序列。
需要说明的是, iu k(属于I,k属于[2,|S u|])表示用户u在第k个位置交互的物品(和su t的定义相同,两者的区别是为了方便后面的划分集合,也即将具有相同目标物品的子序列划到一个集合中,如果用su t表示会出现解释模型的情况例如s1 t和s2 t可能表示的是同一个item(物品)。
综上所述,即使用滑动窗口从后往前按照预设步长移动切分所述原始交互序列得到子序列,直至得到长度为2且目标物品为原始交互序列中第2个位置的物品的子序列。
示例性的,原始交互序列
Figure SMS_51
,规定切分后的子序列的最大长度为3,则切分后得到的子序列有:[/>
Figure SMS_55
]、[/>
Figure SMS_57
]、[/>
Figure SMS_52
]、[/>
Figure SMS_54
],对于子序列[/>
Figure SMS_56
],其目标物品即为/>
Figure SMS_58
对应的物品,对于子序列/>
Figure SMS_50
],其目标物品即为
Figure SMS_53
对应的物品。
在本实施方式中,将所有具有相同目标物品的子序列放入同一个集合。
步骤S102:对于每一子序列,从具有与所述子序列相同的目标物品的所有子序列中取样一个作为所述子序列的对比序列;
具体的,对于每一子序列,从其对应的集合中,采样一个作为对比序列。
步骤S103:对所述子序列和所述子序列的对比序列进行编码,捕捉获得所述子序列和所述子序列的对比序列对应的粗粒度的意图表示,并进行粗粒度对比学习,确定粗粒度对比学习的损失函数。
参考图2,在本实施方式中,使用Transformer作为编码器来进行编码、捕捉粗粒度的意图表示,三个编码器均为Transformer且共享参数。示例性的,
Figure SMS_59
,/>
Figure SMS_60
为编码器,/>
Figure SMS_61
为一个子序列,/>
Figure SMS_62
为粗粒度的意图表示,/>
Figure SMS_63
为编码器参数。
具体的,确定粗粒度对比学习的损失函数采用如下公式:
Figure SMS_64
其中,s()为相似度,
Figure SMS_65
分别为子序列和所述子序列的对比序列的粗粒度的意图表示,/>
Figure SMS_66
为温度系数,/>
Figure SMS_67
为一个训练批量内除了/>
Figure SMS_68
外的所有其他样本。
可以理解的是,因为直接将所有数据放进模型会导致梯度过大,所以每次是按批量大小计算的梯度,例如所有数据总量为1000条数据,批量大小为10,可以有100个批量,
Figure SMS_69
,这里每一个训练批量里面就有10条数据。
步骤S104:使用K-means对所有的子序列的粗粒度的意图表示进行聚类,将聚类中心作为子序列的细粒度的意图表示,获得所有子序列的细粒度的意图表示,再使用query确定每个子序列对应的细粒度的意图表示。
需要明白的是,K-means是一种常用的聚类算法,其原理在此不再赘述。
在本实施方式中,使用faiss包里面的k-means方法来对所有的子序列的粗粒度的意图表示进行聚类,然后使用faiss包里面的k-means里面的query子方法确定每个子序列对应的细粒度的意图表示。
具体的,使用K-means对所有的子序列的粗粒度意图表示进行聚类采用如下公式:
Figure SMS_70
其中,f为编码器,
Figure SMS_71
为编码器参数,/>
Figure SMS_72
为第m个子序列,/>
Figure SMS_73
为第m个子序列的粗粒度的意图表示,C为聚类结果,c为意图,k为意图的种类。
具体的,对于一个子序列的粗粒度的意图表示
Figure SMS_74
,其对应的细粒度的意图表示为
Figure SMS_75
步骤S105:将所述子序列、所述子序列的对比序列的粗粒度的意图表示和对应的细粒度的意图表示进行细粒度对比学习,确定细粒度对比学习的损失函数。
具体的,确定细粒度对比学习的损失函数采用一下公式:
Figure SMS_76
;/>
其中,
Figure SMS_77
,/>
Figure SMS_78
,/>
Figure SMS_79
、/>
Figure SMS_80
分别为粗粒度的意图表示
Figure SMS_81
、/>
Figure SMS_82
聚类后对应的细粒度意图表示。
步骤S106:对所述粗粒度的意图表示与物品的向量矩阵做乘法运算并进行归一化,确定物品推荐概率和推荐损失函数。
具体的,所述确定物品推荐概率和推荐损失函数包括:
Figure SMS_83
Figure SMS_84
其中,
Figure SMS_85
为物品推荐概率,g为目标物品的标签,/>
Figure SMS_86
为预测到目标物品的概率,
Figure SMS_87
为预测到第i个物品的概率,/>
Figure SMS_88
为所有物品的数量,/>
Figure SMS_89
为用户u的交互序列的意图表示,M为物品的向量矩阵。
步骤S107:基于所述粗粒度对比学习的损失函数、所述细粒度对比学习的损失函数和所述推荐损失函数,确定总损失函数,基于所述总损失函数,进行迭代训练生成物品推荐模型。
具体的,确定总损失函数采用如下公式:
Figure SMS_90
其中,
Figure SMS_91
和/>
Figure SMS_92
为权重超参数,/>
Figure SMS_93
为第一损失函数,/>
Figure SMS_94
为第二损失函数,/>
Figure SMS_95
为推荐损失函数。
下面将结合试验数据对本申请的基于对比学习的物品推荐方法做进一步说明:
图3为本申请的数据统计结果的示意图,如图3所示,在本实施方式中,使用广泛用于推荐的运动数据集Sports、装饰品数据集Beauty、玩具数据集Toys以及电影数据集ML-1M四个数据集对推荐方法进行了评估。
图4为本申请的物品推荐模型的性能指标的示意图,如图4所示,以命中率HR@K和累积折损增益NDCG@K作为主要的性能评价指标,可以看出本申请的物品推荐模型(表中的ICSRec)在Sports、Beauty、Toys以及ML-1M四个数据集上预测推荐的性能比其他如:BPR、GRU4Rec、Caser、SASRec、BertRec、S3-Rec、CL4SRec、CoScRec、DuoRec、DSSRec、SINE和ICLRec等模型的性能平均提高了24个百分点。
图5为本申请的物品推荐模型添加噪音后的鲁棒性在NDCG@20上效果的示意图,如图5所示,物品推荐模型ICSRec在在引入不同程度的噪音数据的情况下都优于其他模型,特别地,ICSRec在引入15%噪音数据的情况下甚至优于其他模型不添加任何噪音的结果,具有优秀的鲁棒性。
实施例2
本实施例中,还提供一种基于对比学习的物品推荐模型,下面将参考图2对本申请的基于对比学习的物品推荐方法进行详细描述,包括:
监督信号建立、意图表示学习、预测层和多任务学习三部分。
第一部分,为了学习不同用户交互历史中隐藏的相同的子序列模式,我们首先通过DS(·)操作将原始序列切分为多个子序列。对与给定的一个原始序列Su,动态滑动操作定义如下:
Figure SMS_96
公式解释:对于给定长度的序列,从后往前依次切分,例如给定序列S=[i1,i2,i3,i4,[i5]],假定n设置为2,也即序列最大长度为n+1=3(序列中最后一个为该子序列的目标物品),因为其长度为5大于3,因此将其切分为S=[[i1,[i2]],[i1,i2,[i3]],[i2,i3,[i4]],[i3,i4,[i5]]],也即让每一个物品都做一次前面所有item组成的子序列的目标物品。
当给定序列的长度小于等于切分序列长度时:直接进行滑动切分,划分长度为2~n+1,当滑动长度为n+1时,也即等价于原始序列;
当给定序列的长度大于切分序列长度时:对于前n+1个item组成的子序列按照小于等于n+1长度切分,之后滑动窗口固定大小为n+1,步长为1向后滑动,每一次截取n+1个长度的子序列,如上案例所示S=[i1,i2,i3,i4,[i5]],n=2的时候划分之后序列变为S=[[i1,[i2]],[i1,i2,[i3]],[i2,i3,[i4]],[i3,i4,[i5]]]。
其中n表示序列的最大长度,iu k(属于I,k属于[2,|S u|])表示用户u在第k个位置交互的物品(和su t的定义相同,两者的区别是为了方便后面的划分集合,也即将具有相同目标物品的子序列划到一个集合中,如果用su t表示会出现解释模型的情况例如s1 t和s2 t可能表示的是同一个item(物品),用i表示更加合理)。在完成切分操作之后,我们将所有具有相同的目标物品的子序列放入一个集合中,T = {T1, T2, ..., T|I|},其中Tm表示目标物品为im的所有子序列的集合。
第二部分,意图对比部分的损失函数主要包含两部分,首先会直接将两个具有相同目标物品经过编码器所获得的粗粒度的意图表示直接进行对比学习,损失函数如下所示:
h1=fθ(S1),h2=fθ(S2);
Lcl1=Lcl(h1,h2);
另外会将每一个子序列所获得粗理的意图表示与其原始的细粒度的意图表示进行对比,细粒度表示是通过对粗粒度的意图表示进行聚类获得的,这里假定用户总共有K不同的意图,然后使用K-means对所有的序列获得的粗粒度的意图表示进行聚类,并使用聚类中心(聚类的簇)作为该类别的细粒度的意图表示,在训练过程中先使用聚类获得所有子序列的细粒度的意图表示C={c}K,获得的方式如下:
C=K-means({fθ(S1),fθ(S2),...,fθ(Sm)})={c}K
其中m表示所有子序列的数目,这里会先将所有子序列放入编码器fθ()编码,将所得的m个表示(一个子序列经过编码获得一个粗粒度意图表示),然后对这m个得到的表示进行k-means聚类得到k个细粒度的意图表示。
然后使用query操作获得每一个子序列对应的细粒度的意图表示,其计算如下所示:
c1=query(h1,C),c2=query(h2,C);
最后让每一个子序列与其对应的细粒度进行对比,计算公式如下所示:
Lcl2=Lcl(h1,c1)+Lcl(h2,c2)
需要说明的Lcl为对比学习二大损失函数,采用以下公式:
Figure SMS_97
;
其中,x1,x2表示两个需要进行对比学习的张量,s(a,b)表示a与b的相似度,计算方式使用的是点乘,τ表示温度系数,
Figure SMS_98
表示的一个batch(训练批量)内中除了正样本以外的所有其他样本,例如x1和x2表示一对正样本,batch大小为b,一共有2/>
Figure SMS_99
b个样本,现在去掉两个正对(x1和x2)和(x2和x1),将剩下的2/>
Figure SMS_100
(b-1)个样本作为负样本。
第三部分,因为transformer在CV和NLP都取得了成功,在推荐领域也是一样,因此我们也使用transformer作为我们框架的base encoder(编码器),假设我们一共有N个物品,我们会对其进行embedding(向量化)操作,得到一个矩阵M,其中矩阵大小为n
Figure SMS_101
d,n表示物品的数目,d表示embedding(向量化)的维数,为了方便我们将整个encoder(编码器)看作一个整体使用fθ()表示,其中θ表示模型(编码器)的参数。
我们使用模型学到的意图表示来计算用户在下一个时刻可能感兴趣的物品,并使用交叉熵损失函数来最小化预测错误的概率。我们使用模型的输出与原始的itemembdding使用矩阵乘法得到一个矩阵,然后将这个矩阵通过softmax得到最后的概率矩阵。最后使用交叉熵计算推荐损失,其计算方法如下:
Figure SMS_102
Figure SMS_103
hu=fθ(S1);
其中g表示原本的目标物品的id,其中g取值与[1,n]表示对应的item id,M表示原始的item embedding(物品向量化)矩阵,M大小为[n
Figure SMS_104
h],其中n表示不同物品的数目,h表示物品的隐藏特征的数目,hu表示模型输出的意图表示,通过计算模型输出与物品向量化矩阵乘积,再将其通过softmax得到概率值,这里的目标函数是最小化其他位置的概率,最大化目标item(物品) 对应的位置的概率,示例性的,当目标物品为1,也即g=1,这里需要最大化/>
Figure SMS_105
的概率,最小化/>
Figure SMS_106
以及/>
Figure SMS_107
之间的概率。
第四部分,多任务学习,使用联合学习的框架来训练模型,最后的训练损失函数如下所示:
L1=LRec+λLcl1+βLcl2
其中λ和β都是需要进行调节的超参数。
实施例3
本实施例中,还提供一种电子设备,包括处理器和存储器。存储器用于存储非暂时性计算机可读指令。处理器用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器运行时可以执行上文所述的基于对比学习的物品推荐方法的一个或多个步骤。存储器和处理器可以通过总线系统和/或其它形式的连接机构互连。
例如,处理器可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。
例如,存储器可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器可以运行一个或多个计算机程序模块,以实现电子设备的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本申请的实施例中,电子设备的具体功能和技术效果可以参考上文中关于基于对比学习的物品推荐方法的描述,此处不再赘述。
实施例4
本实施例中,还提供一种计算机可读存储介质,存储介质用于存储非暂时性计算机可读指令。例如,当非暂时性计算机可读指令由计算机执行时可以执行根据上文所述的基于对比学习的物品推荐方法中的一个或多个步骤。
例如,该存储介质可以应用于上述电子设备中。例如,存储介质可以为实施例3的电子设备中的存储器。例如,关于存储介质的相关说明可以参考实施例3的电子设备中的存储器的相应描述,此处不再赘述。
需要说明的是,本申请上述的存储介质(计算机可读介质)可以是计算机可读信号介质或者非暂时性计算机可读存储介质或者是上述两者的任意组合。非暂时性计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非暂时性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本申请中,非暂时性计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是非暂时性计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。
以上描述仅为本申请的部分实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (10)

1.一种基于对比学习的物品推荐方法,其特征在于,包括:
将各用户的原始交互序列切分为多个子序列,使所述原始交互序列中的每一个交互物品都作为一个子序列的目标物品,所述目标物品为子序列中的最后一个物品;
对于每一子序列,从具有与所述子序列相同的目标物品的所有子序列中取样一个作为所述子序列的对比序列;
对所述子序列和所述子序列的对比序列进行编码,捕捉获得所述子序列和所述子序列的对比序列对应的粗粒度的意图表示,并进行粗粒度对比学习,确定粗粒度对比学习的损失函数;
使用K-means对所有的子序列的粗粒度的意图表示进行聚类,将聚类中心作为子序列的细粒度的意图表示,获得所有子序列的细粒度的意图表示,再使用query确定每个子序列对应的细粒度的意图表示;
将所述子序列、所述子序列的对比序列的粗粒度的意图表示和对应的细粒度的意图表示进行细粒度对比学习,确定细粒度对比学习的损失函数;
对所述粗粒度的意图表示与物品的向量矩阵做乘法运算并进行归一化,确定物品推荐概率和推荐损失函数;
基于所述粗粒度对比学习的损失函数、所述细粒度对比学习的损失函数和所述推荐损失函数,确定总损失函数,基于所述总损失函数,进行迭代训练生成物品推荐模型。
2.根据权利要求1所述的基于对比学习的物品推荐方法,其特征在于,所述将各用户的原始交互序列切分为多个子序列的步骤,包括:
使用滑动窗口从后往前按照预设步长移动切分所述原始交互序列得到子序列,直至得到长度为2且目标物品为原始交互序列中第2个位置的物品的子序列。
3.根据权利要求1所述的基于对比学习的物品推荐方法,其特征在于,所述方法,还包括:
将所有具有相同目标物品的子序列放入同一个集合。
4.根据权利要求1所述的基于对比学习的物品推荐方法,其特征在于,所述使用K-means对所有的子序列的粗粒度的意图表示进行聚类,将聚类中心作为子序列的细粒度的意图表示,获得所有子序列的细粒度的意图表示的步骤,采用如下公式:
Figure QLYQS_1
其中,f为编码器,
Figure QLYQS_2
为编码器参数,/>
Figure QLYQS_3
为第m个子序列,/>
Figure QLYQS_4
为第m个子序列的粗粒度的意图表示,C为聚类结果,c为意图,K为意图的种类。
5.根据权利要求4所述的基于对比学习的物品推荐方法,其特征在于,所述对所述子序列和所述子序列的对比序列进行编码,捕捉获得所述子序列和所述子序列的对比序列对应的粗粒度的意图表示,并进行粗粒度对比学习,确定粗粒度对比学习的损失函数的步骤,采用如下公式:
Figure QLYQS_5
其中,
Figure QLYQS_6
为粗粒度对比学习的损失函数,S()为相似度,/>
Figure QLYQS_7
分别为子序列和所述子序列的对比序列的粗粒度的意图表示,/>
Figure QLYQS_8
为温度系数,/>
Figure QLYQS_9
为一个训练批量内除了/>
Figure QLYQS_10
外的所有其他样本。
6.根据权利要求5所述的基于对比学习的物品推荐方法,其特征在于,所述将所述子序列、所述子序列的对比序列的粗粒度的意图表示和对应的细粒度的意图表示进行细粒度对比学习,确定细粒度对比学习的损失函数的步骤,采用如下公式:
Figure QLYQS_11
其中,
Figure QLYQS_12
为细粒度对比学习的损失函数,/>
Figure QLYQS_13
,/>
Figure QLYQS_14
Figure QLYQS_15
、/>
Figure QLYQS_16
分别为粗粒度的意图表示/>
Figure QLYQS_17
、/>
Figure QLYQS_18
聚类后对应的细粒度意图表示。
7.根据权利要求6所述的基于对比学习的物品推荐方法,其特征在于,所述对所述粗粒度的意图表示与物品的向量矩阵做乘法运算并进行归一化,确定物品推荐概率和推荐损失函数的步骤,采用如下公式:
Figure QLYQS_19
Figure QLYQS_20
其中,
Figure QLYQS_22
为物品推荐概率,/>
Figure QLYQS_25
为推荐损失函数,/>
Figure QLYQS_27
为目标物品的标签,/>
Figure QLYQS_23
为预测到目标物品的概率,/>
Figure QLYQS_24
为预测到第/>
Figure QLYQS_26
个物品的概率,/>
Figure QLYQS_28
为所有物品的数量,/>
Figure QLYQS_21
为用户u的交互序列的意图表示,M为物品的向量矩阵。
8.根据权利要求7所述的基于对比学习的物品推荐方法,其特征在于,所述基于所述粗粒度对比学习的损失函数、细粒度对比学习的损失函数和推荐损失函数,确定总损失函数的步骤,采用如下公式:
Figure QLYQS_29
;其中,/>
Figure QLYQS_30
为总损失函数,/>
Figure QLYQS_31
和/>
Figure QLYQS_32
为权重超参数,/>
Figure QLYQS_33
为粗粒度对比学习的损失函数,/>
Figure QLYQS_34
为细粒度对比学习的损失函数,/>
Figure QLYQS_35
为推荐损失函数。
9.一种电子设备,其特征在于,包括:
处理器;
存储器,其上存储有一个或多个在所述处理器上运行的计算机指令;
所述处理器运行所述计算机指令时,执行权利要求1-8任一项所述的基于对比学习的物品推荐方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令被处理器运行时,执行权利要求1-8任一项所述的基于对比学习的物品推荐方法的步骤。
CN202310438525.2A 2023-04-23 2023-04-23 一种基于对比学习的物品推荐方法、电子设备及存储介质 Active CN116150508B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310438525.2A CN116150508B (zh) 2023-04-23 2023-04-23 一种基于对比学习的物品推荐方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310438525.2A CN116150508B (zh) 2023-04-23 2023-04-23 一种基于对比学习的物品推荐方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116150508A true CN116150508A (zh) 2023-05-23
CN116150508B CN116150508B (zh) 2023-06-30

Family

ID=86374030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310438525.2A Active CN116150508B (zh) 2023-04-23 2023-04-23 一种基于对比学习的物品推荐方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116150508B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090401A (zh) * 2021-11-01 2022-02-25 支付宝(杭州)信息技术有限公司 处理用户行为序列的方法及装置
CN114238773A (zh) * 2021-12-24 2022-03-25 江苏亿友慧云软件股份有限公司 基于对比学习和双边协同的下一个兴趣点推荐方法和装置
CN114281976A (zh) * 2021-08-27 2022-04-05 腾讯科技(深圳)有限公司 一种模型训练方法、装置、电子设备及存储介质
CN114840747A (zh) * 2022-04-18 2022-08-02 清华大学深圳国际研究生院 一种基于对比学习的新闻推荐方法
CN115221960A (zh) * 2022-07-18 2022-10-21 江苏亿友慧云软件股份有限公司 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法
CN115408988A (zh) * 2022-05-10 2022-11-29 中国人民大学 一种推荐系统中的通用商品序列表征学习方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281976A (zh) * 2021-08-27 2022-04-05 腾讯科技(深圳)有限公司 一种模型训练方法、装置、电子设备及存储介质
CN114090401A (zh) * 2021-11-01 2022-02-25 支付宝(杭州)信息技术有限公司 处理用户行为序列的方法及装置
CN114238773A (zh) * 2021-12-24 2022-03-25 江苏亿友慧云软件股份有限公司 基于对比学习和双边协同的下一个兴趣点推荐方法和装置
CN114840747A (zh) * 2022-04-18 2022-08-02 清华大学深圳国际研究生院 一种基于对比学习的新闻推荐方法
CN115408988A (zh) * 2022-05-10 2022-11-29 中国人民大学 一种推荐系统中的通用商品序列表征学习方法
CN115221960A (zh) * 2022-07-18 2022-10-21 江苏亿友慧云软件股份有限公司 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法

Also Published As

Publication number Publication date
CN116150508B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
JP7360497B2 (ja) クロスモーダルな特徴の抽出方法、抽出装置、ならびに、プログラム
CN106777318B (zh) 基于协同训练的矩阵分解跨模态哈希检索方法
Scrucca GA: A package for genetic algorithms in R
CN112994701B (zh) 数据压缩方法、装置、电子设备及计算机可读介质
CN108549692B (zh) Spark框架下的稀疏多元逻辑回归模型对文本情感分类的方法
CN113434683B (zh) 文本分类方法、装置、介质及电子设备
Huai et al. Zerobn: Learning compact neural networks for latency-critical edge systems
Li et al. Efficient bitwidth search for practical mixed precision neural network
CN115795065A (zh) 基于带权哈希码的多媒体数据跨模态检索方法及系统
Xie et al. Towards a smaller student: Capacity dynamic distillation for efficient image retrieval
US8548225B2 (en) Point selection in bundle adjustment
Luo et al. Adaptive lightweight regularization tool for complex analytics
CN116150508B (zh) 一种基于对比学习的物品推荐方法、电子设备及存储介质
Tarzanagh et al. Regularized and smooth double core tensor factorization for heterogeneous data
Li et al. Supervised dictionary learning via non-negative matrix factorization for classification
CN110659375A (zh) 哈希模型训练方法、相似对象检索方法及装置
CN115221960A (zh) 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法
CN114819140A (zh) 模型剪枝方法、装置和计算机设备
CN114595787A (zh) 推荐模型的训练方法、推荐方法、装置、介质及设备
WO2016110125A1 (zh) 高维向量的哈希方法、向量量化方法及装置
Tierney et al. Efficient sparse subspace clustering by nearest neighbour filtering
CN116071636B (zh) 商品图像检索方法
CN116522999B (zh) 模型搜索与时延预测器训练方法、装置、设备及存储介质
Liu Compression of Molecular Dynamics Simulation Data
Zeng et al. Compressing deep neural network for facial landmarks detection

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