冷启动接口设计方法、系统、电子设备及存储介质
文献发布时间:2023-06-19 10:27:30
技术领域
本发明属于冷启动技术领域,尤其涉及一种冷启动接口设计方法、系统、电子设备及存储介质。
背景技术
当一个系统初次使用时,是没有任何用户行为数据打底的,在这种情况下,如何在一个初始的情况(无数据积累或数据积累特别少)提供一个较为合理的体验是一个难点。现有技术对于初始系统一般需要用户填写很全面的数据,这显然是不合理的,用户不可能花费这么长的时间填写数据,即便填写也可能是假数据。如果允许填入的是空,那么将收到一大批空数据,如果不允许,将收到一大批脏数据或者流失用户;或者在初始版本不设置推荐,等待数据积累再接入推荐,但该方法与现在的实际需求相违背。
对于一个新研发的系统,是没有任何用户行为数据的,这种情况在推荐系统里被称为冷启动问题。在冷启动问题中,如何实现更精准的初始推荐效果、如何实现接口的实时性是当前所面临的问题。
发明内容
本申请实施例提供了一种冷启动接口设计方法、系统、电子设备及存储介质,以至少解决现有冷启动接口在推荐效果和实时性问题上存在的不足。
第一方面,本申请实施例提供了一种冷启动接口设计方法,包括:用户标签设计步骤,获取用户数据,在冷启动接口中根据所述用户数据设计用户标签;语料标签设计步骤,在所述冷启动接口中针对所述用户标签对推荐语料设计语料标签;标签融合步骤,在所述冷启动接口中以标签内顺序、标签间乱序的方式将所述用户标签和所述语料标签进行标签融合;接口转发步骤,使用一代理服务器对所述冷启动接口进行转发调用。
优选的,还包括一语料配置步骤,在所述冷启动接口中为所述用户标签设置权重,并根据所述用户标签的权重设置所述标签对应的所述推荐语料的数量。
优选的,还包括一相似度计算步骤,在所述冷启动接口中通过embedding向量方式计算所述推荐语料之间的相似度,并输出所述相似度计算结果。
优选的,所述相似度计算步骤还包括:每日只获取当日的所述推荐语料的embedding向量,并将当日的所述embedding向量与往日的所述推荐语料的embedding向量合并,使用gensim进行加载并计算所述推荐语料之间的相似度。
第二方面,本申请实施例提供了一种冷启动接口设计系统,适用于上述一种冷启动接口设计方法,包括:用户标签设计单元,获取用户数据,在冷启动接口中根据所述用户数据设计用户标签;语料标签设计单元,在所述冷启动接口中针对所述用户标签对推荐语料设计语料标签;标签融合单元,在所述冷启动接口中以标签内顺序、标签间乱序的方式将所述用户标签和所述语料标签进行标签融合;接口转发单元,使用一代理服务器对所述冷启动接口进行转发调用。
在其中一些实施例中,还包括一语料配置单元,在所述冷启动接口中为所述用户标签设置权重,并根据所述用户标签的权重设置所述标签对应的所述推荐语料的数量。
在其中一些实施例中,还包括一相似度计算单元,在所述冷启动接口中通过embedding向量方式计算所述推荐语料之间的相似度,并输出所述相似度计算结果。
在其中一些实施例中,所述相似度计算单元还包括:每日只获取当日的所述推荐语料的embedding向量,并将当日的所述embedding向量与往日的所述推荐语料的embedding向量合并,使用gensim进行加载并计算所述推荐语料之间的相似度。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的一种冷启动接口设计方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的一种冷启动接口设计方法。
相比于相关技术,本申请实施例提供的一种冷启动接口设计方法实现了更精准的冷启动效果,解决了实时计算问题的障碍,并通过改进相似度计算流程加快了冷启动计算速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明的冷启动接口设计方法流程图;
图2为本发明的冷启动接口设计系统的框架图;
图3为本发明的电子设备的框架图;
以上图中:
1、用户标签设计单元;2、语料标签设计单元;3、标签融合单元;4、语料配置单元;5、相似度计算单元;6、接口转发单元;60、总线;61、处理器;62、存储器;63、通信接口。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下,结合附图详细介绍本发明的实施例:
图1为本发明的冷启动接口设计方法流程图,请参见图1,本发明冷启动接口设计方法包括如下步骤:
S1:获取用户数据,在冷启动接口中根据所述用户数据设计用户标签。
在具体实施中,当一个推荐系统需要进行冷启动推荐、需开发一冷启动接口时,首先通过各种渠道获取用户的画像数据,开发接口时设计一用户标签。
可选的,用户标签包括离线标签和行为标签;离线标签指用户的静态数据,如用户的性别、年龄等基础资料数据;行为标签指用户所进行的操作行为,在具体实施中,对其进行实时计算。
在具体实施中,用户标签包括用户、标签、权重等要素。
S2:在所述冷启动接口中针对所述用户标签对推荐语料设计语料标签。
在具体实施中,针对对用户所设计的用户标签,相应的对推荐系统中的语料设计语料标签。
可选的,语料标签存储在关系型数据库中,方便接口拿取,在具体实施中,其key值为{prefix}:{userid}:{labelid},value为该用户下的按序存储的语料;在具体实施中,此为离线存储。
S3:在所述冷启动接口中以标签内顺序、标签间乱序的方式将所述用户标签和所述语料标签进行标签融合。
在具体实施中,对于每个用户而言,均存储了其对应标签的语料结果,获取推荐结果时,只需要做标签的融合即可。
可选的,采用push和pop的方式,对于某一个标签而言,可直接将所要推荐的文章取出,而不需担心历史重复数据。在具体实施中,有一定概率出现当日重复数据,可选的,可进行一筛选操作,但会造成数据量的骤减。
可选的,对标签进行融合时,采用标签内顺序,标签间乱序的方式,保证其具有一定的随机性。
可选的,标签融合部分为实时计算。
S4:在所述冷启动接口中为所述用户标签设置权重,并根据所述用户标签的权重设置所述标签对应的所述推荐语料的数量。
在具体实施中,通过用户标签权重设置不同标签文章的数量,达到一定的千人千面的效果。
可选的,对于步骤S3中的当日重复数据筛选,相同的语料可能会属于不同的标签,只需记录当天POP出去的结果做过滤即可,而不需要对所有的结果做过滤(当时间增长会不断增加数目)。这样的设计能够有效减少内存的使用。
S5:在所述冷启动接口中通过embedding向量方式计算所述推荐语料之间的相似度,并输出所述相似度计算结果。
可选的,每日只获取当日的所述推荐语料的embedding向量,并将当日的所述embedding向量与往日的所述推荐语料的embedding向量合并,使用gensim进行加载并计算所述推荐语料之间的相似度。
在具体实施中,在离线计算中计算了文章相似度结果,其计算方式为:
使用已有的语料库得到推荐语料中词的embedding,以便我们天然的得到词之间的关系;
根据推荐语料中的关键词或主题词,在语料库中找到最近的top词,与分词后的语料内容匹配,最终每个语料得到能够映射的结果;
求mean得到推荐语料的embedding向量结果;可选的,将其存储于特定位置,保证每日只计算当天语料;
将近N日的embedding结果以merge操作合并成一个文件,使用gensim加载,从而迅速得到每个语料的最近语料和其相似度;
结果存放于数据库,接口读取数据库结果,可以方便的得到最终的效果。每次请求,只需要读取一次数据库。
S6:使用一代理服务器对所述冷启动接口进行转发调用。
可选的,代理服务器可为nginx。
在具体实施中,设置nginx转发,启用多个不同的端口,对于16核的服务器,同时启动16个端口,在千人甚至万人体量的公司,其并发都可以支持。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了一种冷启动接口设计系统,适用于上述的一种冷启动接口设计方法。如以下所使用的,术语“单元”、“模块”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件、或者软件和硬件的组合的实现也是可能并被构想的。
图2为根据本发明的冷启动接口设计系统的框架图,请参见图2,包括:
用户标签设计单元1:获取用户数据,在冷启动接口中根据所述用户数据设计用户标签。
在具体实施中,当一个推荐系统需要进行冷启动推荐、需开发一冷启动接口时,首先通过各种渠道获取用户的画像数据,开发接口时设计一用户标签。
可选的,用户标签包括离线标签和行为标签;离线标签指用户的静态数据,如用户的性别、年龄等基础资料数据;行为标签指用户所进行的操作行为,在具体实施中,对其进行实时计算。
在具体实施中,用户标签包括用户、标签、权重等要素。
语料标签设计单元2:在所述冷启动接口中针对所述用户标签对推荐语料设计语料标签。
在具体实施中,针对对用户所设计的用户标签,相应的对推荐系统中的语料设计语料标签。
可选的,语料标签存储在关系型数据库中,方便接口拿取,在具体实施中,其key值为{prefix}:{userid}:{labelid},value为该用户下的按序存储的语料;在具体实施中,此为离线存储。
标签融合单元3:在所述冷启动接口中以标签内顺序、标签间乱序的方式将所述用户标签和所述语料标签进行标签融合。
在具体实施中,对于每个用户而言,均存储了其对应标签的语料结果,获取推荐结果时,只需要做标签的融合即可。
可选的,采用push和pop的方式,对于某一个标签而言,可直接将所要推荐的文章取出,而不需担心历史重复数据。在具体实施中,有一定概率出现当日重复数据,可选的,可进行一筛选操作,但会造成数据量的骤减。
可选的,对标签进行融合时,采用标签内顺序,标签间乱序的方式,保证其具有一定的随机性。
可选的,标签融合部分为实时计算。
语料配置单元4:在所述冷启动接口中为所述用户标签设置权重,并根据所述用户标签的权重设置所述标签对应的所述推荐语料的数量。
在具体实施中,通过用户标签权重设置不同标签文章的数量,达到一定的千人千面的效果。
可选的,对于标签融合单元3中的当日重复数据筛选,相同的语料可能会属于不同的标签,只需记录当天POP出去的结果做过滤即可,而不需要对所有的结果做过滤(当时间增长会不断增加数目)。这样的设计能够有效减少内存的使用。
相似度计算单元5:在所述冷启动接口中通过embedding向量方式计算所述推荐语料之间的相似度,并输出所述相似度计算结果。
可选的,每日只获取当日的所述推荐语料的embedding向量,并将当日的所述embedding向量与往日的所述推荐语料的embedding向量合并,使用gensim进行加载并计算所述推荐语料之间的相似度。
在具体实施中,在离线计算中计算了文章相似度结果,其计算方式为:
使用已有的语料库得到推荐语料中词的embedding,以便我们天然的得到词之间的关系;
根据推荐语料中的关键词或主题词,在语料库中找到最近的top词,与分词后的语料内容匹配,最终每个语料得到能够映射的结果;
求mean得到推荐语料的embedding向量结果;可选的,将其存储于特定位置,保证每日只计算当天语料;
将近N日的embedding结果以merge操作合并成一个文件,使用gensim加载,从而迅速得到每个语料的最近语料和其相似度;
结果存放于数据库,接口读取数据库结果,可以方便的得到最终的效果。每次请求,只需要读取一次数据库。
接口转发单元6:使用一代理服务器对所述冷启动接口进行转发调用。
可选的,代理服务器可为nginx。
在具体实施中,设置nginx转发,启用多个不同的端口,对于16核的服务器,同时启动16个端口,在千人甚至万人体量的公司,其并发都可以支持。
另外,结合图1描述的一种冷启动接口设计方法可以由电子设备来实现。图3为本发明的电子设备的框架图。
电子设备可以包括处理器61以及存储有计算机程序指令的存储器62。
具体地,上述处理器61可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器62可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器62可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器62可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器62可在数据处理装置的内部或外部。在特定实施例中,存储器62是非易失性(Non-Volatile)存储器。在特定实施例中,存储器62包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器62可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器61所执行的可能的计算机程序指令。
处理器61通过读取并执行存储器62中存储的计算机程序指令,以实现上述实施例中的任意一种冷启动接口设计方法。
在其中一些实施例中,电子设备还可包括通信接口63和总线60。其中,如图3所示,处理器61、存储器62、通信接口63通过总线60连接并完成相互间的通信。
通信端口63可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线60包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线60包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线60可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线60可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该电子设备可以执行本申请实施例中的一种冷启动接口设计方法。
另外,结合上述实施例中的一种冷启动接口设计方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种冷启动接口设计方法。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(ReadOnly Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 冷启动接口设计方法、系统、电子设备及存储介质
- 一种冷启动方法、系统、电子设备及存储介质