CN111242748B - 用于向用户推荐项目的方法、装置和存储介质 - Google Patents
用于向用户推荐项目的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN111242748B CN111242748B CN202010107608.XA CN202010107608A CN111242748B CN 111242748 B CN111242748 B CN 111242748B CN 202010107608 A CN202010107608 A CN 202010107608A CN 111242748 B CN111242748 B CN 111242748B
- Authority
- CN
- China
- Prior art keywords
- user
- item
- items
- vector
- embedding
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及用于向用户推荐项目的方法、装置和存储介质。本发明提出了一种用于向用户推荐项目的推荐模型训练方法。该方法包括:获取多个样本,多个样本中的每一个包括用户特征、项目组和与项目组相对应的标签,项目组包括二个或更多个项目,标签指示用户是否选中项目组;为项目组中的每个项目生成各自的项目嵌入向量;对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量;基于用户特征生成用户的用户嵌入向量;以及使用得到的综合嵌入向量、用户的用户嵌入向量和与项目组相对应的标签来训练用以向用户推荐项目的推荐模型。该推荐模型能够实现项目的精准推荐。
Description
技术领域
本发明涉及人工智能和机器学习的技术领域,特别是涉及向用户推荐项目的方法、装置和存储介质。
背景技术
动态商品广告(Dynamic Product Ads)DPA是可以根据用户的喜好和兴趣采用推荐算法向用户展示感兴趣商品的广告,其本质上是一种项目与用户的匹配过程。现有的商品推荐算法是基于神经网络的算法,其将用户特征和商品特征输入神经网络中,并输出0~1之间的数字以表示该商品被该用户点击的概率。对于一条广告仅展示一个商品的情况,可以直接确定该商品被点击的概率。然而,在多商品广告,即一条广告展示多个商品的情况下,现有技术中随机选择多个商品中的一个作为训练样本,这传递了错误信息给推荐模型,使推荐模型的效果变差;或将多个商品拆分成多条样本,这样不仅使得数据量变多,推荐模型训练速度变慢,还可能产生假阳性样本。因此,现有方法不能在不丢失输入信息的前提下保证输入推荐模型的训练数据的准确性。
发明内容
本发明的实施例至少部分地解决上面提及的问题。
根据本发明的第一方面,提出了一种用于向用户推荐项目的推荐模型训练方法。该方法包括:获取多个样本,多个样本中的每一个包括用户特征、项目组和与项目组相对应的标签,项目组包括二个或更多个项目,标签指示用户是否选中项目组;为项目组中的每个项目生成各自的项目嵌入向量;对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量;基于用户特征生成用户的用户嵌入向量;以及使用得到的综合嵌入向量、用户的用户嵌入向量和与项目组相对应的标签来训练用以向用户推荐项目的推荐模型。
在一些实施例中,为项目组中的每个项目生成各自的项目嵌入向量包括:针对每个项目的特征进行编码得到每个项目的项目特征嵌入向量,和基于项目特征嵌入向量生成每个项目各自的项目嵌入向量。
在一些实施例中,针对每个项目的特征进行编码得到每个项目的项目特征嵌入向量包括:针对各个项目基于相同的编码词表来针对每个项目的特征进行编码得到每个项目的项目特征嵌入向量。
在一些实施例中,推荐模型包括针对用户的第一神经网络结构,第一神经网络结构包括一个或多个激活函数层。
在一些实施例中,推荐模型包括针对项目组中的每个项目的相应第二神经网络结构,每个第二神经网络结构包括一个或多个激活函数层。
在一些实施例中,对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量包括:对生成的多个项目嵌入向量进行算数平均以得到项目组的综合嵌入向量。
在一些实施例中,对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量包括:以经训练得到的权重作为各个项目嵌入向量的权重,对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量。
在一些实施例中,使用得到的综合嵌入向量、用户的用户嵌入向量和与项目组相对应的标签来训练推荐模型包括:对综合嵌入向量和用户的用户嵌入向量进行点积运算得到点积结果;基于点积结果与项目组相对应的标签计算损失函数;以及对推荐模型中的参数进行调整以使损失函数收敛。
在一些实施例中,基于点积结果与项目组相对应的标签计算损失函数包括:对点积结果进行归一化,和基于经归一化的点积结果与项目组相对应的标签计算损失函数。
在一些实施例中,项目包括商品、电影和文章。
根据本发明的第二方面,提出了一种用于向用户推荐项目的方法。该方法包括:获取目标用户的目标用户特征和待推荐项目的项目特征;和使用推荐模型基于目标用户特征和项目特征确定向目标用户推荐该项目的概率,其中,在使用推荐模型之前,方法还包括:获取多个样本,多个样本中的每一个包括样本用户特征、项目组和与项目组相对应的标签,项目组包括二个或更多个项目,标签指示样本用户是否选中项目组;为项目组中的每个样本项目生成各自的项目嵌入向量;对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量;基于样本用户特征生成样本用户的用户嵌入向量;使用得到的综合嵌入向量、样本用户的用户嵌入向量和与项目组相对应的标签来训练推荐模型。
根据本发明的第三方面,提出了一种用于向用户推荐项目的推荐模型训练装置。该装置包括:获取模块,被配置成获取多个样本,多个样本中的每一个包括用户特征、项目组和与项目组相对应的标签,项目组包括二个或更多个项目,标签指示用户是否选中项目组;项目嵌入向量生成模块,被配置成为项目组中的每个项目生成各自的项目嵌入向量;综合嵌入向量生成模块,被配置成对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量;用户嵌入向量生成模块,被配置成基于用户特征生成用户的用户嵌入向量;以及训练模块,被配置成使用得到的综合嵌入向量、用户的用户嵌入向量和与项目组相对应的标签来训练用以向用户推荐项目的推荐模型。
根据本发明的第四方面,提出了一种用于向用户推荐项目的装置。该装置包括:获取模块,被配置成获取目标用户的目标用户特征和待推荐项目的项目特征;和推荐概率计算模块,被配置成使用推荐模型基于目标用户特征和项目特征确定向目标用户推荐该项目的概率;训练模块,被配置成在使用推荐模型之前,执行下述步骤:获取多个样本,多个样本中的每一个包括样本用户特征、项目组和与项目组相对应的标签,项目组包括二个或更多个项目,标签指示样本用户是否选中项目组;为项目组中的每个样本项目生成各自的项目嵌入向量;对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量;基于样本用户特征生成样本用户的用户嵌入向量;使用得到的综合嵌入向量、样本用户的用户嵌入向量和与项目组相对应的标签来训练推荐模型。
根据本发明的一些实施例,提供了一种计算机设备,包括:处理器;以及存储器,其上存储有指令,指令当在处理器上执行时促使处理器执行如上的方法中的任一个。
根据本发明的一些实施例,提供了一种计算机可读存储介质,其上存储有指令,指令当在处理器上执行时促使处理器执行如上的方法中的任一个。
本发明提出的向用户推荐项目的方法、装置和计算机介质通过在用户-项目双塔结构中将包含多项目的项目组作为一条训练样本输入,针对每个项目维护各自的隐层网络,以及引入项目组的综合嵌入向量,可以在保证算法时效性的前提下,不丢失项目信息且不引入假阳性样本,实现了项目的精准推荐。本发明中向用户推荐项目的方法通过计算项目组的综合嵌入向量考虑多个项目对点击的共同贡献。训练模型效果在模型评估指标曲线下面积AUC(area under the curve)等方面均有1~3%点的提升,同时保证了推荐模型的时效性,增强了用户体验。
附图说明
现将参考附图以非限制性示例的方式更加详细地描述本发明的实施例,附图仅仅是示意性的,并且其中相同的附图标记始终指代相同部分,在附图中:
图1示出了一条多商品广告的示意图;
图2示出了根据本发明一个实施例的广告投放的用户界面示意图;
图3示出了根据一个实施例的用户-项目双塔模型的示意图;
图4示出了根据另一个实施例的用户-项目双塔模型的示意图;
图5示出了根据一个实施例的用于向用户推荐项目的推荐模型训练方法的流程图;
图6示出了根据一个实施例的用于向用户推荐项目的方法的流程图;
图7示出了根据另一个实施例的用于向用户推荐项目的推荐模型训练装置示意图;
图8示出了根据一个实施例的用于向用户推荐项目的装置示意图;以及
图9示出了用于向用户推荐项目的示例计算机设备的示意图。
具体实施方式
项目推荐广告是基于神经网络算法的,其将用户特征和项目特征输入神经网络中,输出一个0~1之间的值表示该项目被点击的概率。本文中提出了一种向用户推荐项目的方法,该方法基于用户-项目的双塔结构,原因在于用户-项目双塔结构能够满足在线实时推荐的时效性要求,即从百万甚至千万级项目库中推荐出前100级别的相关项目。评价是否相关是通过用户对项目的点击率来衡量,点击率越高说明推荐项目效果越好,反之则说明推荐项目效果越差。
下面的说明提供用于充分理解和实施本公开的各种实施例的特定细节。本领域的技术人员应当理解,本公开的技术方案可以在没有这些细节中的一些的情况下被实施。在某些情况下,并没有示出或详细描述一些熟知的结构和功能,以避免不必要地使对本公开的实施例的描述模糊不清。在本公开中使用的术语以其最宽泛的合理方式来理解,即使其是结合本公开的特定实施例被使用的。
首先,对本公开的实施例中涉及的部分用语进行说明,以便于本领域技术人员理解:
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
DPA(Dynamic Product Ads):动态商品广告,其能够根据用户的喜好和特点,采用推荐算法选择最合适的项目,并与广告模板组合成广告,实现千人千面的广告效果。
再营销推荐:基于用户历史行为(在广告主网站上浏览/加入购物车/购买)进行项目推荐。
拉新推荐:在没有用户行为数据的情况下,基于广告平台自有数据(点击率、曝光率等)进行商品推荐。
多商品广告:投放多个商品的广告的广告主通常允许多个不同商品同时投放,即后端推荐指定个数的商品,该个数是广告主投放广告时候所指定的,然后将多个商品与投放模板结合在一张广告图片中以进行展示。多商品广告因为展示的商品更多,因此有更大的机会投放出用户感兴趣的商品从而提高投放效果。
本发明所提出的用于向用户推荐项目的推荐模型训练方法以及用于向用户推荐项目的方法可以通过云计算的模式实现。云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
在本文中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
图1示出了一条多商品广告的示意图。在图1中,该多商品广告在一张广告图片中包含了2个商品,左边商品为男士高领衫,右边商品为女士衬衫。当用户点击该广告图片时,将向用户呈现与这两个商品有关的商品信息,比如商品详情、商品评价等。
图2示出了根据本发明一个实施例的广告投放的用户界面200的示意图。在投放广告平台中,广告主可以在广告投放阶段选择广告投放形式和推荐方式。广告投放形式包括单项目广告和多项目广告。在广告主选择单项目广告时,每条广告中展示一个项目。在广告主选择多项目广告的情况下,每条广告中同时展示多个项目。在选择多项目广告的情况下,广告主还可以进一步选择每条广告中展示项目的数量,例如广告商可以选择每条广告中展示两个项目、每条广告中展示三个项目等。广告主可以进一步选择项目推荐方式,项目推荐方式包括基于用户历史行为的再营销推荐和没有用户行为数据的拉新推荐。广告主选择拉新推荐的标签时,就开启了后台的项目推荐模型,以向该广告主推荐经训练模型输出的被点击概率最高的前N个项目,N是广告商设定的每条广告中展示的项目数。推荐模型可以用预定的时间间隔(例如,一天、一周)在后台进行维护和训练。
图3示出了根据一个实施例的用户-项目双塔模型300的示意图。用户-项目双塔模型300是在输入用户的用户特征和单个项目的项目特征时的推荐模型。在训练阶段,推荐模型获取训练样本,每条训练样本中包括用户特征、项目、以及该项目所对应的标签,该标签指示该用户是否选中、点击或浏览该项目。该推荐模型包括用户域301和项目域302。用户域301包括神经网络结构,该神经网络结构中包括一个或多个激活函数层。推荐模型的用户域301获取用户特征,用户特征可以包括应用程序安装特征、兴趣特征、位置特征、年龄特征、手机型号特征等。如本领域技术人员所理解的,用户特征还可以包括任何其他合适的特征。对于比如应用程序安装特征、兴趣特征之类的包含多特征值的用户特征。首先,基于用户特征的编码词表来查找该用户特征中每个特征的嵌入值,并对查找到的每个嵌入值进行求和或平均运算3015,得到相应的用户特征嵌入向量(例如,app嵌入向量、兴趣嵌入向量等)。对于比如位置、年龄之类的包含单特征值的用户特征,则直接基于用户特征的编码词表查找相应用户特征的嵌入值,并基于查找到的嵌入值得到该用户特征的嵌入向量。用户特征的编码词表中基于映射关系存储了每个用户特征及该用户特征相对应的嵌入值。值得注意的是,用户特征的词表在针对该神经网络的训练过程中是不断更新的。将针对该用户的各个用户特征的嵌入向量拼接起来,即形成了用户特征嵌入向量3014。如图3中所示,用户特征嵌入向量3014包括app嵌入向量、兴趣嵌入向量、位置嵌入向量、年龄嵌入向量等。将用户特征嵌入向量3014依次输入激活函数层3013和激活函数层3012,得到用户嵌入向量3011。在图3中仅示出了激活函数层3013和激活函数层3012两层隐层,如本领域技术人员所理解的,还可以存在任何其他数量的隐层。在图3中所示的激活函数为Relu函数,如本领域技术人员所理解的,也可以选择其他激活函数。
项目域302中包括另一神经网络结构,该神经网络结构中包括一个或多个激活函数层。项目域302获取项目特征,项目特征可以包括项目名称、项目类目、项目价格等。如本领域技术人员所理解的,还可以包括项目的任何其他特征。针对该项目的每个特征(如名称、类目、价格)进行编码得到该各个特征嵌入向量(如名称嵌入向量、类目嵌入向量、价格嵌入向量),并对该项目的各个特征嵌入向量进行拼接得到该项目的项目特征向量3024。编码可以包括FastText编码(FastText是一种自然语言学习中的编码)、独热(one-hot)编码等。如本领域技术人员所理解的,也可以包括其他编码。将项目特征向量3024依次输入激活函数层3023和激活函数层3022,得到项目嵌入向量3021。在图3中针对项目域302仅示出了激活函数层3023和激活函数层3022两层隐层。如本领域技术人员所理解的,还可以存在任何其他数量的隐层。
对用户嵌入向量3011和项目嵌入向量3021进行点积运算303,得到点积运算结果。利用sigmoid(或softmax)函数对点积结果进行归一化运算,得到经归一化的点积结果。基于该经归一化的点积结果(即训练得到的预测值)和训练样本中该项目所对应的标签(即真实值)计算该推荐模型的逻辑损失函数,使损失函数收敛以更新该推荐模型神经网络中各个节点和激活函数的参数值。
在上线推荐阶段,针对该用户和项目库中的项目,每次将该用户的用户特征和项目库中一个项目的特征输入推荐网络中,分别基于用户特征和项目特征计算出用户嵌入向量和项目嵌入向量。对该用户嵌入向量和该项目嵌入向量做点积运算,得到点积结果。利用sigmoid(或softmax)函数对点积结果进行归一化运算,计算其sigmoid分数。在计算出项目库中的各个项目的sigmoid分数后,对各个项目的sigmoid分数进行排序,并将sigmoid分数排在前N的项目推荐给用户,N是广告商设定的每条广告中展示的项目数。这里,sigmoid分数是一个[0, 1]之间的数值,用以指示用户点击、选择或浏览该项目的概率。
图4示出了根据另一个实施例的用户-项目双塔模型400的示意图。图4中的用户域401与图3中的用户域301类似。用户域401包括神经网络结构,该神经网络结构中包括一个或多个激活函数层。在训练阶段,推荐模型获取训练样本,获取多个样本,多个样本中的每一个包括用户特征、项目组和与该项目组相对应的标签。项目组包括二个或更多个项目。在一个实施例中,该项目组包含的项目数量还小于等于项目数量阈值n,n为大于等于2的正整数。如本领域技术人员所理解的,项目数量阈值n可以根据推荐需要进行合适的设定。该标签指示该用户是否选中、点击或浏览该项目。推荐模型的用户域401获取用户特征,用户特征可以包括应用程序安装特征、兴趣特征、位置特征、年龄特征、手机型号特征等。如本领域技术人员所理解的,用户特征还可以包括任何其他合适的特征。对于比如应用程序安装特征、兴趣特征之类的包含多特征值的用户特征,首先基于用户特征的编码词表来查找用户特征中每个特征的嵌入值,并对查找到的每个嵌入值进行求和或平均运算4015,得到相应的用户特征嵌入向量(例如,app嵌入向量、兴趣嵌入向量等)。用户特征的编码词表中基于映射关系存储了每个用户特征及该用户特征相对应的嵌入值。值得注意的是,用户特征的词表在针对该神经网络的训练过程中是不断更新的。对于比如位置、年龄之类的包含单特征值的用户特征,则直接基于用户特征的特征词表查找相应用户特征的嵌入值,并基于查找到的嵌入值得到该用户特征的嵌入向量。将针对该用户的各个用户特征的嵌入向量拼接起来,即形成了用户特征嵌入向量4014。如图4中所示,用户特征嵌入向量4014包括app嵌入向量、兴趣嵌入向量、位置嵌入向量、年龄嵌入向量等。将用户特征嵌入向量4014依次输入激活函数层4013和激活函数层4012,得到用户嵌入向量4011。在图4中仅示出了激活函数层4013和激活函数层4012两层隐层,如本领域技术人员所理解的,还可以存在任何其他数量的隐层。在图4中所示的激活函数为Relu函数。如本领域技术人员所理解的,也可以选择其他激活函数。
项目域402中包括针对项目组中的每个项目的相应第二神经网络结构4022,每个第二神经网络结构4022包括一个或多个激活函数层。推荐模型的项目域402获取项目组。项目组包括二个或更多个项目。在一个实施例中,该项目组包含的项目数量还小于等于项目数量阈值n,n为大于等于2的正整数。如本领域技术人员所理解的,项目数量阈值n可以根据推荐需要进行合适的设定。项目数量阈值n表示项目组最多包含的项目数。项目组最多可以包括项目数量等于项目数量阈值的项目。典型地,项目数量阈值可以为3、4、5,如本领域技术人员所理解的,项目数量阈值n也可以设置为其他正整数。例如,在项目数量阈值n等于4的情况下,一个项目组可以包括4个项目(A品牌手机、手机充电线、手机壳、手机膜),另一个项目组可以包括2个(小于项目数量阈值4)项目。每个项目可以包括项目名称、项目类目、项目价格等项目特征。如本领域技术人员所理解的,还可以包括项目的任何其他特征。针对每个项目的每个特征(如名称4024、类目、价格)进行编码得到该各个特征嵌入向量(如名称嵌入向量、类目嵌入向量、价格嵌入向量),并对各个特征嵌入向量进行拼接得到该项目的项目特征向量4023。类似地,项目组中的每个项目均编码得到了其相应的项目特征向量。编码可以包括FastText编码、独热(one-hot)编码等。如本领域技术人员所理解的,也可以包括其他编码。在一个实施例中,编码是通过基于每个项目特征的特征值在与项目特征的编码词表中查找嵌入值实现的。项目特征的编码词表中基于映射关系存储了每个项目特征及该项目特征相对应的嵌入值。这里,项目组中存在多个项目,针对不同项目的相同项目特征使用相同的编码词表。例如,在项目特征的词库中,项目特征“品牌A”对应的嵌入值为“1, 2”,项目特征“品牌B”对应的嵌入值为“3, 4”,项目特征“手机”对应的嵌入值为“5, 6”,项目特征“电脑”对应的嵌入值为“7, 8”。由此,针对A品牌手机,在编码词库中查找到的嵌入值为“1, 2;5, 6”。针对B品牌手机,在编码词库中查找到的嵌入值为“3, 4;5, 6”。针对B品牌电脑,在编码词库中查找到的嵌入值为“3, 4;7, 8”。可见,A品牌手机、B品牌手机和B品牌电脑共用相同的编码词库。换言之,不同的项目共享特征向量。值得注意的是,项目特征的词表在针对该神经网络的训练过程中是不断更新的。将项目特征向量4023输入项目相应的第二神经网络4022,经过第二神经网络4022中的各隐层学习得到项目嵌入向量(如图4中所示的项目1嵌入向量、项目2嵌入向量…项目n嵌入向量等)。如图4中所示,每个第二神经网络4022中包括若干个激活函数层(例如1~5层)。针对每个项目单独维护一个第二神经网络4022,这可以有效地提升模型的性能。针对各个项目嵌入向量(如图4中所示的项目1嵌入向量、项目2嵌入向量…项目n嵌入向量等)进行加权平均运算4021,得到项目组综合嵌入向量4021。这里,加权平均可以是算数平均。多个样本中的每一个所包括的项目组包括二个或更多个项目。在一个实施例中,该项目组包含的项目数量小于等于项目数量阈值n,n为大于等于2的正整数。如本领域技术人员所理解的,项目数量阈值n可以根据推荐需要进行合适的设定。在算数平均时,推荐模型中在一条样本的项目组中包含n个的项目的情况下,以1/n作为各个项目嵌入向量的权重,并且在一条样本的项目组中包含m个项目(m≤n,m为正整数)的情况下,则以1/m作为各个项目嵌入向量的权重。在一个实施例中,权重可以根据各个项目的重要程度设定。在另一实施例中,权重可以是经训练得到的。
对用户嵌入向量4011和项目组综合嵌入向量4021进行点积运算403,得到点积运算结果。利用sigmoid或softmax函数对点积结果进行归一化运算,得到经归一化的点积结果。基于该经归一化的点积结果(即训练得到的预测值)和训练样本中该项目组所对应的标签(即真实值)来计算该推荐模型的逻辑损失函数。使该逻辑损失函数收敛来更新该推荐模型中神经网络各个节点以及激活函数的参数值。由此,推荐模型的训练阶段结束。
在上线推荐阶段中,针对用户和项目库中的项目,每一次将该用户的用户特征和项目库中一个项目的特征输入推荐网络中,分别基于用户特征和项目特征计算用户特征向量和项目特征向量。然后,通过用户侧经训练的神经网络结构基于用户特征向量生成用户嵌入向量;通过项目侧经过训练的神经网络基于项目特征嵌入向量生成项目嵌入向量。类似地,对项目嵌入向量进行加权平均,得到综合嵌入向量。在上线推荐使用阶段,每次仅输入一个项目,因此仅需要使用项目侧402中多个经预先训练的神经网络结构中的一个即可(例如,可以选择首个项目所对应的神经网络)。相应地,在对项目嵌入向量进行加权时,因仅输入了一个项目,仅存在一个项目嵌入向量,其他项目嵌入向量为空。于是,在使用首个项目所对应的神经网络的情况下,仅需要使得首个项目嵌入向量所对应的权重为1即可。这样使得在离线训练和上线推荐过程中网络结构保持稳定。对用户嵌入向量4011和综合嵌入向量4021进行点积运算,得到点积运算结果。使用sigmoid(或softmax)函数对点积结果进行归一化,得到sigmoid分数。该分数即为该项目的类别概率,也就是被点击、选中或浏览的概率。
从上面的推荐模型来看,主要是改进了项目侧的结构,即在最底层不同项目共享特征向量,每个项目维护各自的隐层网络结构,以及计算综合项目向量。在线服务时,由于是需要选出点击概率较高的项目作为候选项目推荐给用户,因此需要根据用户向量和项目向量计算得分(即sigmoid分数),得分越高代表用户点击可能性越大从而推荐给用户。在线服务时候,项目侧就是单个候选项目,而不是训练时候的多项目模式。该方法基于共享项目特征向量以及各自维护隐层网络的方法联合训练多项目的双塔模型,既保留了所有输入信息,也消除了假阳性样本给模型带来训练误差。由于业务的限制,在多项目投放场景下无法实际得知用户是具体点击的哪个项目,或者可能是由于项目组合的效果才使得用户点击该广告,因此这种推荐模型通过自动学习不同项目的权重来表示用户对多项目的实际感兴趣情况。实际在线推荐效果性能和时效性也是比较令人满意的。
图5示出了根据另一个实施例的用于向用户推荐项目的推荐模型训练方法500的流程图。在步骤501中,获取多个样本,多个样本中的每一个样本包括用户特征、项目组和与项目组相对应的标签。项目组包括二个或更多个项目。在一个实施例中,项目组包含的项目数量还小于等于项目数量阈值n,n为大于等于2的正整数。如本领域技术人员所理解的,项目数量阈值n可以根据推荐需要进行合适的设定。项目数量阈值n表示项目组最多包含的项目数。项目组最多可以包括项目数量等于项目数量阈值的项目。典型地,项目数量阈值可以为3、4、5,如本领域技术人员所理解的,项目数量阈值n也可以设置为其他正整数。例如,在项目数量阈值n等于4的情况下,一个项目组可以包括4个项目(A品牌手机、手机充电线、手机壳、手机膜),另一个项目组可以包括2(小于项目数量阈值4)个项目。标签指示用户是否选中、点击或浏览该项目组。
在步骤502中,为项目组中的每个项目生成各自的项目嵌入向量。在一个实施例中,为项目组中的每个项目生成各自的项目嵌入向量包括:针对每个项目的特征进行编码得到每个项目的项目特征嵌入向量,和基于项目特征嵌入向量生成每个项目各自的项目嵌入向量。每个项目的特征可以包括名称、类目和价格等,并且每个项目的项目特征嵌入向量包括名称嵌入向量、类目嵌入向量和价格嵌入向量等。如本领域技术人员所理解的,还可以包括项目的其他特征。在一个实施例中,针对各个项目基于相同的编码词表来针对每个项目的特征进行编码得到每个项目的项目特征嵌入向量。例如,在项目特征的词库中,项目特征“品牌A”对应的嵌入值为“1, 2”,项目特征“品牌B”对应的嵌入值为“3, 4”,项目特征“手机”对应的嵌入值为“5, 6”,项目特征“电脑”对应的嵌入值为“7, 8”。由此,针对A品牌手机,在编码词库中查找到的嵌入值为“1, 2;5, 6”。针对B品牌手机,在编码词库中查找到的嵌入值为“3, 4;5, 6”。针对B品牌电脑,在编码词库中查找到的嵌入值为“3, 4;7, 8”。可见,A品牌手机、B品牌手机和B品牌电脑共用相同的编码词库。换言之,即在推荐模型的最底层不同项目共享特征向量。
在步骤503中,对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量。在一个实施例中,对生成的多个项目嵌入向量进行算数平均以得到项目组的综合嵌入向量。在另一实施例中,以经训练得到的权重作为各个项目嵌入向量的权重,对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量。在又一实施例中,以基于各个项目的重要程度预先设定的权重作为各个项目嵌入向量的权重。
在步骤504中,基于用户特征生成用户的用户嵌入向量。用户特征可以包括应用程序安装特征、兴趣特征、位置特征、年龄特征、手机型号特征等。如本领域技术人员所理解的,用户特征还可以包括任何其他合适的特征。对于比如应用程序安装特征、兴趣特征之类的包含多特征值的用户特征,首先基于用户特征的词表来查找用户特征中每个特征的嵌入值,并对查找到的每个嵌入值进行求和或平均运算,得到相应的用户特征嵌入向量(例如,app嵌入向量、兴趣嵌入向量等)。用户特征的编码词表中基于映射关系存储了每个用户特征及该用户特征相对应的编码值。对于比如位置、年龄之类的包含单特征值的用户特征,则直接基于该用户特征的相应词表查找相应用户特征的嵌入值,并基于查找到的嵌入值得到该用户特征的嵌入向量。将针对该用户的各个用户特征的嵌入向量拼接起来,即形成了用户特征嵌入向量。将用户特征嵌入向量输入用户侧的神经网络中的各个激活函,得到用户嵌入向量。该神经网络结构中包括一个或多个激活函数层。
在步骤505中,使用得到的综合嵌入向量、用户的用户嵌入向量和与项目组相对应的标签来训练用以向用户推荐项目的推荐模型。对用户嵌入向量和综合嵌入向量进行点积运算,得到点积运算结果。利用sigmoid或softmax函数对点积结果进行归一化运算,得到经归一化的点积结果。基于该经归一化的点积结果(即训练得到的预测值)和训练样本中该项目组所对应的标签(即真实值)来计算该推荐模型的逻辑损失函数。使该逻辑损失函数收敛来更新该推荐模型中神经网络各个节点以及激活函数的参数值。
图6示出了根据一个实施例的用于向用户推荐项目的方法600的流程图。在使用推荐模型上线推荐时,在步骤606中,获取目标用户的目标用户特征和待推荐项目的项目特征。在步骤607中,使用推荐模型基于目标用户特征和项目特征确定向目标用户推荐该项目的概率。在使用该推荐模型之前,该向用户推荐项目的方法还包括下述步骤:在步骤601中,获取多个样本,多个样本中的每一个包括样本用户特征、项目组和与项目组相对应的标签。项目组包括二个或更多个项目。在一个实施例中,项目组包含的项目数量还小于等于项目数量阈值n,n为大于等于2的正整数。如本领域技术人员所理解的,项目数量阈值n可以根据推荐需要进行合适的设定。项目数量阈值n表示项目组最多包含的项目数。项目组最多可以包括项目数量等于项目数量阈值的项目。典型地,项目数量阈值可以为3、4、5,如本领域技术人员所理解的,项目数量阈值n也可以设置为其他正整数。例如,在项目数量阈值n等于4的情况下,一个项目组可以包括4个项目(A品牌手机、手机充电线、手机壳、手机膜),另一个项目组可以包括2(小于项目数量阈值4)个项目。标签指示样本用户是否选中项目组。在步骤602中,为项目组中的每个样本项目生成各自的项目嵌入向量。在一个实施例中,为项目组中的每个项目生成各自的项目嵌入向量包括:针对每个项目的特征进行编码得到每个项目的项目特征嵌入向量,和基于项目特征嵌入向量生成每个项目各自的项目嵌入向量。每个项目的特征可以包括名称、类目和价格等,并且每个项目的项目特征嵌入向量包括名称嵌入向量、类目嵌入向量和价格嵌入向量等。如本领域技术人员所理解的,还可以包括项目的其他特征。在一个实施例中,针对各个项目基于相同的编码词表来针对每个项目的特征进行编码得到每个项目的项目特征嵌入向量。例如,在项目特征的词库中,项目特征“品牌A”对应的嵌入值为“1, 2”,项目特征“品牌B”对应的嵌入值为“3, 4”,项目特征“手机”对应的嵌入值为“5, 6”,项目特征“电脑”对应的嵌入值为“7, 8”。由此,针对A品牌手机,在编码词库中查找到的嵌入值为“1, 2;5, 6”。针对B品牌手机,在编码词库中查找到的嵌入值为“3, 4;5, 6”。针对B品牌电脑,在编码词库中查找到的嵌入值为“3, 4;7, 8”。可见,A品牌手机、B品牌手机和B品牌电脑共用相同的编码词库。换言之,即在推荐模型的最底层不同项目共享特征向量。在步骤603中,对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量。在一个实施例中,对生成的多个项目嵌入向量进行算数平均以得到项目组的综合嵌入向量。在另一实施例中,以经训练得到的权重作为各个项目嵌入向量的权重,对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量。在又一实施例中,以基于各个项目的重要程度预先设定的权重作为各个项目嵌入向量的权重。在步骤604中,基于样本用户特征生成样本用户的用户嵌入向量。样本用户特征可以包括应用程序安装特征、兴趣特征、位置特征、年龄特征、手机型号特征等。如本领域技术人员所理解的,样本用户特征还可以包括任何其他合适的特征。对于比如应用程序安装特征、兴趣特征之类的包含多特征值的样本用户特征,首先基于样本用户特征的词表来查找样本用户特征中每个特征的嵌入值,并对查找到的每个嵌入值进行求和或平均运算,得到相应的样本用户特征嵌入向量(例如,app嵌入向量、兴趣嵌入向量等)。对于比如位置、年龄之类的包含单特征值的样本用户特征,则直接基于该样本用户特征的相应词表查找相应样本用户特征的嵌入值,并基于查找到的嵌入值得到该样本用户特征的嵌入向量。将针对该样本用户的各个样本用户特征的嵌入向量拼接起来,即形成了样本用户特征嵌入向量。用户特征的编码词表中基于映射关系存储了每个用户特征及该用户特征相对应的编码值。将样本用户的用户特征嵌入向量输入用户侧的神经网络中的各个激活函,得到样本用户的用户嵌入向量。该神经网络结构中包括一个或多个激活函数层。在步骤605中,使用得到的综合嵌入向量、样本用户的用户嵌入向量和与项目组相对应的标签来训练推荐模型。对用户嵌入向量和综合嵌入向量进行点积运算,得到点积运算结果。利用sigmoid或softmax函数对点积结果进行归一化运算,得到经归一化的点积结果。基于该经归一化的点积结果(即训练得到的预测值)和训练样本中该项目组所对应的标签(即真实值)来计算该推荐模型的逻辑损失函数。使该逻辑损失函数收敛来更新该推荐模型中神经网络各个节点以及激活函数的参数值。
图7示出了根据另一个实施例的用于向用户推荐项目的推荐模型训练装置700的示意图。该装置700包括获取模块701、项目嵌入向量生成模块702、综合嵌入向量生成模块703、用户嵌入向量生成模块704和训练模块705。获取模块701被配置成获取多个样本,多个样本中的每一个包括用户特征、项目组和与项目组相对应的标签,项目组包括二个或更多个项目,标签指示用户是否选中项目组。项目嵌入向量生成模块702被配置成为项目组中的每个项目生成各自的项目嵌入向量。综合嵌入向量生成模块703被配置成对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量。用户嵌入向量生成模块704被配置成基于用户特征生成用户的用户嵌入向量。训练模块705被配置成使用得到的综合嵌入向量、用户的用户嵌入向量和与项目组相对应的标签来训练用以向用户推荐项目的推荐模型。
图8示出了根据一个实施例的用于向用户推荐项目的装置800的示意图。装置800包括:获取模块801、推荐概率计算模块802和训练模块803。获取模块801被配置成获取目标用户的目标用户特征和待推荐项目的项目特征。推荐概率计算模块802被配置成使用推荐模型基于目标用户特征和项目特征确定向目标用户推荐该商品的概率。训练模块803被配置成在使用推荐模型之前,执行下述步骤:获取多个样本,多个样本中的每一个包括样本用户特征、项目组和与项目组相对应的标签,项目组包括二个或更多个项目,标签指示样本用户是否选中项目组;为项目组中的每个样本项目生成各自的项目嵌入向量;对生成的多个项目嵌入向量进行加权平均以得到项目组的综合嵌入向量;基于样本用户特征生成样本用户的用户嵌入向量;使用得到的综合嵌入向量、样本用户的用户嵌入向量和与项目组相对应的标签来训练推荐模型。通过基于特征共享的联合训练算法得到的效果如下,由于并不是所有的项目广告都是多项目广告,实际业务中多项目和单项目模式同时存在,因此划分了各种场景进行离线评估。
评估数据 | 单项目模型 | 拆样本模型 | 联合训练模型 | 相对于单项目模型提升 | 相对于拆样本模型提升 |
单项目数据 | 0.7523 | 0.7466 | 0.7522 | -0.01% | 0.75% |
多项目数据 | 0.7414 | 0.7569 | 0.766 | 3.32% | 1.20% |
所有数据 | 0.7511 | 0.7483 | 0.7546 | 0.47% | 0.84% |
表1 不同场景下的推荐模型性能。
通过细致的离线评估可以看出,当多项目场景占比越来越重后,模型提升效果会随之增大,因为本身单项目场景下单项目模型可以训练的比较不错,但是由于直接丢掉了多项目信息,因此单项目模型在多项目数据上表现的效果会较差。虽然所有数据集上看起来联合训练提升并不是特别多,这是由于多项目数据的占比问题,随着后续多项目场景的推广,该算法的优势会得到更好的发挥。
综上,基于多项目联合训练的算法既保证了算法的时效性,又能够提升模型效果,另外通过项目特征向量的共享也解决了模型过大以及训练变慢的问题。
图9示出了用于向用户推荐项目的示例计算机设备900的示意图。计算设备900可以是各种不同类型的设备,例如服务器计算机、与客户端(例如,客户端设备)相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。
计算设备900可以包括能够诸如通过系统总线914或其他适当的连接彼此通信的至少一个处理器902、存储器904、(多个)通信接口906、显示设备908、其他输入/输出(I/O)设备910以及一个或多个大容量存储装置912。
处理器902可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器902可以被实施成一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器902可以被配置成获取并且执行存储在存储器904、大容量存储装置912或者其他计算机可读介质中的计算机可读指令,诸如操作系统916的程序代码、应用程序918的程序代码、其他程序920的程序代码等,以实现本发明实施例提供的用于向用户推荐项目的方法。
存储器904和大容量存储设备912是用于存储指令的计算机存储介质的示例,指令由处理器902执行来实施前面所描述的各种功能。举例来说,存储器904一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备912一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器904和大容量存储设备912在本文中都可以被统称为存储器或计算机存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非瞬时性介质,计算机程序代码可以由处理器902作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
多个程序模块可以存储在大容量存储设备912上。这些程序包括操作系统916、一个或多个应用程序918、其他程序920和程序数据922,并且它们可以被加载到存储器904以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):获取模块701、项目嵌入向量生成模块702、综合嵌入向量生成模块703、用户嵌入向量生成模块704、训练模块705和推荐模块706以及获取模块801、项目嵌入向量生成模块802、综合嵌入向量生成模块803、用户嵌入向量生成模块804和训练模块805和/或本文描述的另外的实施例。
虽然在图9中被展示成存储在计算设备900的存储器904中,但是模块916、918、920和922或者其部分可以使用可由计算设备900访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机存储介质和通信介质。
计算机存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算设备访问的任何其他非传送介质。
与此相对,通信介质可以在诸如载波或其他传送机制之类的已调数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。本文所定义的计算机存储介质不包括通信介质。
计算设备900还可以包括一个或更多通信接口906,以用于诸如通过网络、直接连接等等与其他设备交换数据,正如前面所讨论的那样。一个或更多通信接口906可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口906还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备908,以用于显示信息和图像。其他I/O设备910可以是获取来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除其他元件或步骤,不定冠词“一”或“一个”不排除多个,并且“多个”意指两个或更多。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获利。
Claims (15)
1.一种用于向用户推荐项目的推荐模型训练方法,包括:
获取多个样本,所述多个样本中的每一个包括用户特征、项目组和与所述项目组相对应的标签,所述项目组包括二个或更多个项目,所述标签指示所述用户是否选中所述项目组;
为所述项目组中的每个项目生成各自的项目嵌入向量;
对生成的多个所述项目嵌入向量进行加权平均以得到所述项目组的综合嵌入向量;
基于所述用户特征生成所述用户的用户嵌入向量;以及
使用得到的所述综合嵌入向量、所述用户的用户嵌入向量和所述与所述项目组相对应的标签来训练用以向所述用户推荐项目的推荐模型。
2.根据权利要求1所述的方法,其中所述为所述项目组中的每个项目生成各自的项目嵌入向量包括:针对所述每个项目的特征进行编码得到每个项目的项目特征嵌入向量,和基于所述项目特征嵌入向量生成每个项目各自的项目嵌入向量。
3.根据权利要求2所述的方法,其中所述针对所述每个项目的特征进行编码得到每个项目的项目特征嵌入向量包括:针对各个项目基于相同的编码词表来针对所述每个项目的特征进行编码得到每个项目的项目特征嵌入向量。
4.根据权利要求1所述的方法,其中所述推荐模型包括针对所述用户的第一神经网络结构,所述第一神经网络结构包括一个或多个激活函数层。
5.根据权利要求1所述的方法,其中所述推荐模型包括针对所述项目组中的每个项目的相应第二神经网络结构,每个第二神经网络结构包括一个或多个激活函数层。
6.根据权利要求1所述的方法,其中所述对生成的多个所述项目嵌入向量进行加权平均以得到所述项目组的综合嵌入向量包括:对生成的多个所述项目嵌入向量进行算数平均以得到所述项目组的综合嵌入向量。
7.根据权利要求1所述的方法,其中所述对生成的多个所述项目嵌入向量进行加权平均以得到所述项目组的综合嵌入向量包括:以经训练得到的权重作为各个项目嵌入向量的权重,对生成的多个所述项目嵌入向量进行加权平均以得到所述项目组的综合嵌入向量。
8.根据权利要求1所述的方法,其中使用得到的所述综合嵌入向量、所述用户的用户嵌入向量和所述与所述项目组相对应的标签来训练所述推荐模型包括:
对所述综合嵌入向量和所述用户的用户嵌入向量进行点积运算得到点积结果;
基于所述点积结果与所述项目组相对应的标签计算损失函数;以及
对所述推荐模型中的参数进行调整以使所述损失函数收敛。
9.根据权利要求8所述的方法,其中基于所述点积结果与所述项目组相对应的标签计算损失函数包括:
对所述点积结果进行归一化,和基于经归一化的点积结果与所述项目组相对应的标签计算损失函数。
10.根据权利要求1-9中任一项所述的方法,其中所述项目包括商品、电影和文章。
11.一种用于向用户推荐项目的方法,包括:
获取目标用户的目标用户特征和待推荐项目的项目特征;和
使用推荐模型基于所述目标用户特征和所述项目特征确定向目标用户推荐该项目的概率;
其中,在使用所述推荐模型之前,所述方法还包括:
获取多个样本,所述多个样本中的每一个包括样本用户特征、项目组和与所述项目组相对应的标签,所述项目组包括二个或更多个项目,所述标签指示所述样本用户是否选中所述项目组;
为所述项目组中的每个样本项目生成各自的项目嵌入向量;
对生成的多个所述项目嵌入向量进行加权平均以得到所述项目组的综合嵌入向量;
基于所述样本用户特征生成所述样本用户的用户嵌入向量;
使用得到的所述综合嵌入向量、所述样本用户的用户嵌入向量和所述与所述项目组相对应的标签来训练所述推荐模型。
12.一种用于向用户推荐项目的推荐模型训练装置,包括:
获取模块,被配置成获取多个样本,所述多个样本中的每一个包括用户特征、项目组和与所述项目组相对应的标签,所述项目组包括二个或更多个项目,所述标签指示所述用户是否选中所述项目组;
项目嵌入向量生成模块,被配置成为所述项目组中的每个项目生成各自的项目嵌入向量;
综合嵌入向量生成模块,被配置成对生成的多个所述项目嵌入向量进行加权平均以得到所述项目组的综合嵌入向量;
用户嵌入向量生成模块,被配置成基于所述用户特征生成所述用户的用户嵌入向量;以及
训练模块,被配置成使用得到的所述综合嵌入向量、所述用户的用户嵌入向量和所述与所述项目组相对应的标签来训练用以向所述用户推荐项目的推荐模型。
13.一种用于向用户推荐项目的装置,包括:
获取模块,被配置成获取目标用户的目标用户特征和待推荐项目的项目特征;和
推荐概率计算模块,被配置成使用推荐模型基于所述目标用户特征和所述项目特征确定向目标用户推荐该项目的概率,
训练模块,被配置成在使用所述推荐模型之前,执行下述步骤:
获取多个样本,所述多个样本中的每一个包括样本用户特征、项目组和与所述项目组相对应的标签,所述项目组包括二个或更多个项目,所述标签指示所述样本用户是否选中所述项目组;
为所述项目组中的每个样本项目生成各自的项目嵌入向量;
对生成的多个所述项目嵌入向量进行加权平均以得到所述项目组的综合嵌入向量;
基于所述样本用户特征生成所述样本用户的用户嵌入向量;
使用得到的所述综合嵌入向量、所述样本用户的用户嵌入向量和所述与所述项目组相对应的标签来训练所述推荐模型。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-11中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1-11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010107608.XA CN111242748B (zh) | 2020-02-21 | 2020-02-21 | 用于向用户推荐项目的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010107608.XA CN111242748B (zh) | 2020-02-21 | 2020-02-21 | 用于向用户推荐项目的方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111242748A CN111242748A (zh) | 2020-06-05 |
CN111242748B true CN111242748B (zh) | 2023-04-07 |
Family
ID=70866382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010107608.XA Active CN111242748B (zh) | 2020-02-21 | 2020-02-21 | 用于向用户推荐项目的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111242748B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7392271B2 (ja) * | 2019-03-20 | 2023-12-06 | 富士通株式会社 | アイテム提示方法、アイテム提示プログラムおよびアイテム提示装置 |
CN112015439B (zh) * | 2020-09-21 | 2024-01-12 | 北京百度网讯科技有限公司 | 用户app兴趣的嵌入方法、装置、设备以及存储介质 |
CN113033090B (zh) * | 2021-03-24 | 2023-03-03 | 平安科技(深圳)有限公司 | 推送模型训练方法、数据推送方法、装置及存储介质 |
CN113205369B (zh) * | 2021-05-27 | 2024-03-22 | 咪咕文化科技有限公司 | 用户消费时长预测方法、装置、电子设备与存储介质 |
CN113656685A (zh) * | 2021-07-15 | 2021-11-16 | 北京达佳互联信息技术有限公司 | 一种搜索信息推荐方法、装置、电子设备及存储介质 |
CN113449198B (zh) * | 2021-08-31 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 特征提取模型的训练方法、装置、设备及存储介质 |
CN114443967B (zh) * | 2022-04-08 | 2022-07-08 | 北京并行科技股份有限公司 | 一种相似应用推荐方法、计算设备及存储介质 |
CN116911955B (zh) * | 2023-09-12 | 2024-01-05 | 深圳须弥云图空间科技有限公司 | 目标推荐模型的训练方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017038947A1 (ja) * | 2015-09-04 | 2017-03-09 | 株式会社東芝 | アイテム推薦システム、アイテム推薦方法およびプログラム |
CN109389168A (zh) * | 2018-09-29 | 2019-02-26 | 国信优易数据有限公司 | 项目推荐模型训练方法、项目推荐方法以及装置 |
CN109670121A (zh) * | 2018-12-18 | 2019-04-23 | 辽宁工程技术大学 | 基于注意力机制的项目级和特征级深度协同过滤推荐算法 |
CN110119467A (zh) * | 2019-05-14 | 2019-08-13 | 苏州大学 | 一种基于会话的项目推荐方法、装置、设备及存储介质 |
CN110297848A (zh) * | 2019-07-09 | 2019-10-01 | 深圳前海微众银行股份有限公司 | 基于联邦学习的推荐模型训练方法、终端及存储介质 |
CN110489639A (zh) * | 2019-07-15 | 2019-11-22 | 北京奇艺世纪科技有限公司 | 一种内容推荐方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190251476A1 (en) * | 2018-02-09 | 2019-08-15 | Daniel Shiebler | Reducing redundancy and model decay with embeddings |
-
2020
- 2020-02-21 CN CN202010107608.XA patent/CN111242748B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017038947A1 (ja) * | 2015-09-04 | 2017-03-09 | 株式会社東芝 | アイテム推薦システム、アイテム推薦方法およびプログラム |
JP2017049910A (ja) * | 2015-09-04 | 2017-03-09 | 株式会社東芝 | アイテム推薦システム、アイテム推薦方法およびプログラム |
CN109389168A (zh) * | 2018-09-29 | 2019-02-26 | 国信优易数据有限公司 | 项目推荐模型训练方法、项目推荐方法以及装置 |
CN109670121A (zh) * | 2018-12-18 | 2019-04-23 | 辽宁工程技术大学 | 基于注意力机制的项目级和特征级深度协同过滤推荐算法 |
CN110119467A (zh) * | 2019-05-14 | 2019-08-13 | 苏州大学 | 一种基于会话的项目推荐方法、装置、设备及存储介质 |
CN110297848A (zh) * | 2019-07-09 | 2019-10-01 | 深圳前海微众银行股份有限公司 | 基于联邦学习的推荐模型训练方法、终端及存储介质 |
CN110489639A (zh) * | 2019-07-15 | 2019-11-22 | 北京奇艺世纪科技有限公司 | 一种内容推荐方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111242748A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242748B (zh) | 用于向用户推荐项目的方法、装置和存储介质 | |
US11042898B2 (en) | Clickstream purchase prediction using Hidden Markov Models | |
US11580447B1 (en) | Shared per content provider prediction models | |
US8732015B1 (en) | Social media pricing engine | |
US11430018B2 (en) | Line item-based audience extension | |
CN103503012A (zh) | 在社交网络上提供广告 | |
CN111008335B (zh) | 一种信息处理方法、装置、设备及存储介质 | |
CN109471978B (zh) | 一种电子资源推荐方法及装置 | |
US20180012251A1 (en) | Systems and methods for an attention-based framework for click through rate (ctr) estimation between query and bidwords | |
US11188579B2 (en) | Personalized dynamic content via content tagging and transfer learning | |
US10832167B2 (en) | Interest prediction for unresolved users in an online system | |
KR20200019997A (ko) | 온라인 경험들에서의 이모지 이해 | |
US11694018B2 (en) | Machine-learning based generation of text style variations for digital content items | |
CN111967924A (zh) | 商品推荐方法、商品推荐装置、计算机设备和介质 | |
CN113379449A (zh) | 多媒体资源召回方法、装置、电子设备以及存储介质 | |
CN111340522A (zh) | 资源推荐方法、装置、服务器及存储介质 | |
CN113011911B (zh) | 基于人工智能的数据预测方法、装置、介质及电子设备 | |
US20230316106A1 (en) | Method and apparatus for training content recommendation model, device, and storage medium | |
CN111787042B (zh) | 用于推送信息的方法和装置 | |
US20180204230A1 (en) | Demographic prediction for unresolved users | |
US20220358347A1 (en) | Computerized system and method for distilled deep prediction for personalized stream ranking | |
CN112446738A (zh) | 广告数据处理方法、装置、介质以及电子设备 | |
JP7512500B1 (ja) | 情報処理装置、情報処理方法、および情報処理プログラム | |
US11847670B1 (en) | Simulation augmented reinforcement learning for real-time content selection | |
CN112949852B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024900 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |