CN111339240B - 对象的推荐方法、装置、计算设备和存储介质 - Google Patents
对象的推荐方法、装置、计算设备和存储介质 Download PDFInfo
- Publication number
- CN111339240B CN111339240B CN202010085208.3A CN202010085208A CN111339240B CN 111339240 B CN111339240 B CN 111339240B CN 202010085208 A CN202010085208 A CN 202010085208A CN 111339240 B CN111339240 B CN 111339240B
- Authority
- CN
- China
- Prior art keywords
- vector
- index
- user
- search
- function
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 239000013598 vector Substances 0.000 claims abstract description 441
- 230000006399 behavior Effects 0.000 claims abstract description 59
- 238000005259 measurement Methods 0.000 claims abstract description 44
- 238000012549 training Methods 0.000 claims abstract description 28
- 230000003993 interaction Effects 0.000 claims abstract description 17
- 230000001419 dependent effect Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 139
- 230000000875 corresponding effect Effects 0.000 claims description 98
- 238000010845 search algorithm Methods 0.000 claims description 17
- 230000004913 activation Effects 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000002596 correlated effect Effects 0.000 claims description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 10
- 238000004364 calculation method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 230000003213 activating effect Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/0277—Online advertisement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Game Theory and Decision Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种对象的推荐方法、装置、计算设备和存储介质。该方法包括:获取用户信息;从用户特征库中,获取与所述用户信息对应的多个用户特征向量;将所述多个用户特征向量组成检索向量;从索引文件中查找与所述检索向量匹配的至少一个索引向量;将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端;其中,在训练各双塔模型时,采用的度量函数的自变量为训练样本的索引向量和检索向量,因变量为用于表示用户针对推送的推荐对象产生交互行为的概率。由此,通过使用合理设计的度量函数训练双塔模型,使得基于该双塔模型得到的多个向量能够拼接并进行一次检索,以避免多次检索召回存在的损失。
Description
技术领域
本申请涉及推荐技术领域,特别涉及一种对象的推荐方法、装置、计算设备和存储介质。
背景技术
深度学习技术的发展,正推动各个行业发生深刻的变革,深度学习应用到数字广告检索系统中的主要方式在于对用户行为的预估。在大规模数字广告系统中,每一个流量下可以选择投放的广告的数量巨大,不可能一次计算选出最合适的广告,因此一般采用多级漏斗的方式选择出最适合的广告,比如经过召回、粗选和精选三个主要阶段,最终使得用户、广告商和平台的利益最大化,实现互利共赢。
然而,在召回阶段,候选的广告数量巨大,通过多级漏斗的方式预估召回时,由于预测目标的偏差,每一次的预估召回都会存在一定的损失,在粗选和精选阶段后,损失更大,难以保障检索系统的精度。
因此,如何获得更高的检索精度并减少甚至避免召回损失,成为亟需解决的技术问题之一。
发明内容
本申请的目的是提供一种对象的推荐方法、装置、计算设备和存储介质,通过使用合理设计的度量函数训练双塔模型,以使得基于该双塔模型得到的用户向量和对象向量能够进行一次检索召回,避免多次检索召回存在的损失。
第一方面,本申请实施例提供了一种对象的推荐方法,包括:
获取用户信息;
从用户特征库中,获取与所述用户信息对应的多个用户特征向量,各用户特征向量是基于相应的双塔模型对所述用户信息进行编码后存储到所述用户特征库中的,且各双塔模型还用于对推荐对象进行编码得到各推荐对象的对象特征向量;
将所述多个用户特征向量组成检索向量;
从索引文件中查找与所述检索向量匹配的至少一个索引向量,每个索引向量由同一推荐对象的多个对象特征向量组成,所述索引文件是基于各推荐对象的索引向量的向量距离得到的;
将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端;
其中,在训练各双塔模型时,采用的度量函数的自变量为训练样本的索引向量和检索向量,因变量为用于表示用户针对推送的推荐对象产生交互行为的概率。
在一个实施例中,将所述多个用户特征向量组成检索向量,包括:
将所述多个用户特征向量首尾依序拼接,得到的一维向量作为所述检索向量。
在一个实施例中,所述索引文件是基于各推荐对象的索引向量的向量距离以及分层可导航小世界图算法得到的。
在一个实施例中,所述索引文件是各推荐对象的索引向量所构建的索引结构得到的存储文件,构建索引结构,包括:
以各推荐对象对应的索引向量作为构建所述索引结构的元素,构建向量集合;
选取所述向量集合的第一个元素插入所述索引结构,作为初始节点;
遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构;并,
以所述近邻节点作为初始节点,返回执行所述遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构,直至所述向量集合中的元素均插入所述索引结构。
在一个实施例中,所述度量函数的输入参数与用户特征向量和对象特征向量的点积正相关。
在一个实施例中,从索引文件中查找与所述检索向量匹配的至少一个索引向量,包括:
将所述检索向量作为目标节点输入检索算法,从索引文件中查找所述目标节点的最近邻节点,所述最近邻节点对应于与所述检索向量的向量距离最小的索引向量,其中,在所述检索算法中,检索向量与索引向量的向量距离,与检索向量与索引向量的点积负相关;
以所述最近邻节点作为下一个输入,从索引文件中查找所述最近邻节点的多个近邻节点,与所述检索向量匹配的至少一个索引向量包括所述最近邻节点对应的索引向量以及所述多个近邻节点对应的索引向量。
在一个实施例中,所述度量函数为指数函数,其值域为[0,n];或者,
所述度量函数为分段函数,所述度量函数的第一分段函数为指数函数,所述第一分段函数的值域为[0,c],c为0至n之间的常数,所述度量函数的第二分段函数为基于所述常数c和sigmoid激活函数构成的多项式,所述第二分段函数的值域为[c,n];或者,
针对任一输入参数,所述度量函数的取值为所述第一分段函数和所述第二分段函数的输出值中的最小值;
其中,n为指定值。
第二方面,本申请实施例还提供了一种对象的推荐装置,包括:
用户信息获取单元,用于获取用户信息;
用户特征向量获取单元,用于从用户特征库中,获取与所述用户信息对应的多个用户特征向量,各用户特征向量是基于相应的双塔模型对所述用户信息进行编码后存储到所述用户特征库中的,且各双塔模型还用于对推荐对象进行编码得到各推荐对象的对象特征向量;
向量组合单元,用于将所述多个用户特征向量组成检索向量;
索引单元,用于从索引文件中查找与所述检索向量匹配的至少一个索引向量,每个索引向量由同一推荐对象的多个对象特征向量组成,所述索引文件是基于各推荐对象的索引向量的向量距离得到的;
信息推送单元,用于将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端;
其中,在训练各双塔模型时,采用的度量函数的自变量为训练样本的索引向量和检索向量,因变量为用于表示用户针对推送的推荐对象产生交互行为的概率。
在一个实施例中,向量组合单元用于:
将所述多个用户特征向量首尾依序拼接,得到的一维向量作为所述检索向量。
在一个实施例中,所述索引文件是基于各推荐对象的索引向量的向量距离以及分层可导航小世界图算法得到的。
在一个实施例中,所述索引文件是各推荐对象的索引向量所构建的索引结构得到的存储文件,构建索引结构,包括:
以各推荐对象对应的索引向量作为构建所述索引结构的元素,构建向量集合;
选取所述向量集合的第一个元素插入所述索引结构,作为初始节点;
遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构;并,
以所述近邻节点作为初始节点,返回执行所述遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构,直至所述向量集合中的元素均插入所述索引结构。
在一个实施例中,所述度量函数的输入参数与用户特征向量和对象特征向量的点积正相关。
在一个实施例中,索引单元用于:
将所述检索向量作为目标节点输入检索算法,从索引文件中查找所述目标节点的最近邻节点,所述最近邻节点对应于与所述检索向量的向量距离最小的索引向量,其中,在所述检索算法中,检索向量与索引向量的向量距离,与检索向量与索引向量的点积负相关;
以所述最近邻节点作为下一个输入,从索引文件中查找所述最近邻节点的多个近邻节点,与所述检索向量匹配的至少一个索引向量包括所述最近邻节点对应的索引向量以及所述多个近邻节点对应的索引向量。
在一个实施例中,所述度量函数为指数函数,其值域为[0,n];或者,
所述度量函数为分段函数,所述度量函数的第一分段函数为指数函数,所述第一分段函数的值域为[0,c],c为0至n之间的常数,所述度量函数的第二分段函数为基于所述常数c和sigmoid激活函数构成的多项式,所述第二分段函数的值域为[c,n];或者,
针对任一输入参数,所述度量函数的取值为所述第一分段函数和所述第二分段函数的输出值中的最小值;
其中,n为指定值。
第三方面,本申请另一实施例还提供了一种计算设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任一推荐方法。
第四方面,本申请另一实施例还提供了一种计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请实施例中的任一推荐方法。
本申请实施例,通过使用合理设计的度量函数训练双塔模型,以使得基于该双塔模型得到的用户向量和对象向量能够进行一次检索召回,避免多次检索召回存在的损失。并且,训练双塔模型、将用户信息和对象信息通过双塔模型量化为同一向量空间中的向量、以及构建索引文件的过程均可以在线下完成,而在线预估上,则可以只需根据用户向量查找索引文件来查找最相近的对象向量,从而确定要向用户推送的至少一个推荐对象。由此,在保障检索精度的情况下,还能够极大地减少线上运算量,从而缩短计算时间,能够实现检索精度和计算时间之间的平衡,从而提升推荐系统的性能。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请一个实施例的应用环境的示意图;
图2为根据本申请一个实施例的推荐系统的示意图;
图3为根据本申请一个实施例的推荐方法的流程示意图;
图4为根据本申请一个实施例的推荐装置的示意图;
图5为根据本申请一个实施例的计算设备的示意图。
具体实施方式
如前所述,深度学习技术的发展,正推动各个行业发生深刻的变革。
以应用到数字广告检索系统为例,主要是通过深度学习模型预测用户执行点击、激活等用户行为的概率来预估用户行为。在大规模数字广告系统中,每一个流量(即在线用户)下可以选择投放的广告的数量巨大,不可能一次计算选出最合适的广告,因此业内一般采用多级漏斗的方式选择出最适合的广告,比如经过召回、粗选和精选三个主要阶段,最终使得用户、广告户和平台的利益最大化,实现互利共赢。在召回阶段,候选的广告数量巨大,使用深度学习模型预估用户行为需要大量的计算资源,如何在有限时间内获得更高的计算精度是检索系统的重要指标。
一种平衡精度和计算时间的方案是采用双塔模型,将用户和广告通过神经网络,量化成同一个向量空间中的低维连续向量,这种量化过程可以在线下完成,在线只需通过在同一向量空间度量用户向量与广告向量的相似度(例如可以通过不同方法,如向量的夹角、向量的点击或者向量的欧式距离等),来查找到离用户向量最近的广告向量。
随着数字广告系统的发展,对用户行为的预估向深度行为方向发展,用户的行为在时间上的分布会呈现出稀疏性,也就是广告系统要经过一定的时间才能得知广告的效果,判定预估的准确性。由于用户行为的延迟性不同,对不同行为需要不同的模型进行预估,以达到系统的准确性和及时性之间的平衡。例如一般对广告的点击行为能秒级预估判定是否准确,对应用程序(App)的激活、付费等行为则需要小时级别的时间才能判定预估是否准确。
由于针对不同的行为,需要多个双塔模型预估,而用户对广告的最终的行为预估概率,往往是对多个行为的预估概率的融合,例如对于多个递进行为(如点击行为之后才会产生激活或付费等行为)的预估概率的乘积。
以点击行为和激活行为为例,当分别预估用户对广告的点击行为的概率、用户对广告的激活行为的概率时,使用相应的双塔模型,能够分别得到用户和广告的向量表示,如:U_imp2clk、V_imp2clk和U_clk2conv、V_clk2conv,其中,U表示用户向量,V表示广告的向量,imp2clk对应于点击行为,clk2conv对应于激活行为。
通过度量函数f,可以得到相应的预估概率,如:
点击行为预估概率:p_imp2clk=f(U_imp2clk,V_imp2clk);
激活行为预估概率:p_clk2conv=f(U_clk2conv,V_clk2conv);
用户对广告的最终行为的预估概率为:
p_imp2conv=p_imp2clk*p_clk2conv
=f(U_imp2clk,V_imp2clk)*f(U_clk2conv,V_clk2conv)
其中,U表示用户向量,V表示广告的向量,imp2clk对应于点击行为,p_imp2clk表示用户从看到广告到点击广告的预估概率;clk2conv对应于激活行为,p_clk2conv表示用户从点击广告到激活行为的预估概率;p_imp2conv表示从用户从看到广告到激活行为的预估概率,即展现-激活预估概率。
实施时,根据基于相应的双塔模型得到的广告向量,预先构建向量空间内所有广告的索引数据。当用户在线,并使用用户向量检索召回时,会分别基于对应于点击行为的双塔模型和对应于激活行为的双塔模型,分别得到用户的向量表示,即U_imp2clk和U_clk2conv,并通过向量空间内的索引数据,分别得到点击行为预估概率和激活行为预估概率较高的广告集合S1和S2,然后对集合S1和S2取交集,得到展现-激活预估概率较高的广告集合S,即获取即属于集合S1又属于集合S2的广告得到集合S。所获得的广告集合S即为要向用户进行推送的候选广告。
然而由于预测目标的偏差,集合S1和集合S2一般不是相同的集合,在对集合S1和集合S2取交集后得到的集合S,相比直接按照展现-激活预估概率p_imp2conv执行的预估召回,存在一定的损失,导致向用户推送的广告不一定是用户感兴趣的,从而降低广告转化率,难以实现用户、广告商和推荐平台的利益最大化。
有鉴于此,本申请实施例提供了一种对象的推荐方法和装置,通过合理设计度量函数并训练双塔模型,以为在线预估时能够根据用户向量直接进行预估召回提供支持,避免多次检索存在的召回损失。进一步地,还能够减小在线预估的运算量,为提升系统推荐性能提供支持。其中,本文述及的双塔模型是通过对主体的属性特征编码为向量,然后通过两个向量间进行计算相似度来计算主体之间的关系的模型,例如DSSM模型、C-DSSM模型、LSTM-DSSM、BERT模型、或是相关改进模型等中的任一种,本申请对此不做限制。其中提及的主体,既可以包括对应于用户的用户信息又可以包括对应于待进行推荐的对象(例如广告)的对象信息,编码为向量后,即可通过计算相应的用户向量与对象向量的相似度来确定来着之间的关系,从而为实现高效、精准地向用户推荐对象提供支持,主体的属性特征的具体形式结合其实际应用场景可以有所不同,本申请对此不做限制,下文中将结合数字广告检索系统这一具体的应用场景进行详细说明。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。应当理解的是,下文描述中,以“广告”作为被推荐的“对象”来对本申请的推荐方案进行详细说明,并非对
图1为根据本申请一个实施例的应用环境的示意图。
如图1所示,该应用环境中例如可以包括至少一个服务器20和多个终端设备30。其中,终端设备30可以是可用来进行网络访问的任何合适的电子设备,包括但不限于计算机、笔记本电脑、智能电话、平板电脑或是其它类型的终端。服务器20则是能够通过网络访问的提供交互服务所需信息的任何服务器。终端设备30可以经由网络40实现与服务器20的信息收发。服务器20可以通过访问数据库50来获取终端设备30所需的内容,例如模型参数、广告内容、索引文件等。终端设备之间(例如,30_1与30_2或30_N之间)也可以经由网络40彼此通信。网络40可以是广义上的用于信息传递的网络,可以包括一个或多个通信网络,诸如无线通信网络、因特网、私域网、局域网、城域网、广域网或是蜂窝数据网络等。
在随后的描述中仅就单个服务器或终端设备加以详述,但是本领域技术人员应当理解的是,示出的单个服务器20、终端设备30和数据库50旨在表示本申请的技术方案涉及终端设备、服务器及数据库的操作。对单个终端设备以及单个服务器和数据库加以详述至少为了说明方便,而非暗示对终端设备和服务器的类型或是位置等具有限制。应当注意,如果向图示环境中添加附加模块或从其中去除个别模块,不会改变本发明的示例实施例的底层概念。另外,虽然为了方便说明而在图中示出了从数据库50到服务器20的双向箭头,但本领域技术人员可以理解的是,上述数据的收发也是可以通过网络40实现的。
图2为根据本申请一个实施例的推荐系统的原理示意图。其中,该推荐系统及其功能模块能够实现本申请的推荐方案。
如图2所示,该推荐系统例如可以包括信息获取模块210、特征库220以及对应于不同交互行为的多个双塔模型。
双塔模型的交叉层可以设置有本申请所设计的度量函数,通过准备好的训练样本以及该度量函数可以训练相应的双塔模型,得到各个模型的模型参数。其中,该度量函数的设计,可以与所使用到的索引文件的构建算法及检索算法相关联,下文详述。
训练得到的各双塔模型可以用于对主体的属性信息进行编码得到对应的特征向量,例如将用户的用户信息经由对应于用户特征的塔1得到对应的用户特征向量,将待推荐对象的对象信息经由对应于推荐对象的塔2得到对应的对象特征向量。通过维护特征库220,将用户特征向量存储在用户特征库221中,将对象特征向量存储在对象特征库222中。其中,用户特征库221中的用户特征向量可以用于在在线预估阶段提供关于用户信息的向量表示。对象特征库222中,对应于各推荐对象的多个对象特征向量组合得到的向量可以作为索引向量,并用于构建关于各推荐对象的索引文件,该索引文件可以用于在在线预估阶段为用户进行对象推荐。
在在线预估阶段,可由推荐系统的其它功能模块实现本申请的推荐方案。例如,信息获取模块,用于获取用户信息;特征向量获取单元,用于从用户特征库中,获取与所述用户信息对应的多个用户特征向量,各用户特征向量是基于相应的双塔模型对所述用户信息进行编码后存储到所述用户特征库中的,且各双塔模型还用于对推荐对象进行编码得到各推荐对象的对象特征向量;向量组合单元,用于将所述多个用户特征向量组成检索向量;索引单元,用于从索引文件中查找与所述检索向量匹配的至少一个索引向量,每个索引向量由同一推荐对象的多个对象特征向量组成,所述索引文件是基于各推荐对象的索引向量的向量距离得到的;信息推送单元,用于将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端;其中,在训练各双塔模型时,采用的度量函数的自变量为训练样本的索引向量和检索向量,因变量为用于表示用户针对推送的推荐对象产生交互行为的概率。
由此,通过使用合理设计的度量函数训练双塔模型,以使得基于该双塔模型得到的用户特征向量和对象特征向量能够进行一次检索召回,避免多次检索召回存在的损失。并且,训练双塔模型、将用户信息和对象信息通过双塔模型量化为同一向量空间中的向量、以及构建索引文件的过程均可以在线下完成,而在线预估上,则可以只需根据相应的用户特征向量或其组合得到的向量进行检索,以查找索引文件来查找最相近的对象向量,从而确定要向用户推送的至少一个推荐对象。由此,在保障检索精度的情况下,还能够极大地减少线上运算量,从而缩短计算时间,能够实现检索精度和计算时间之间的平衡,从而提升整个推荐系统的性能。
在一个实施例中,图2所示的推荐系统200例如可以被配置在图1所示的服务器20侧。用户例如可以通过终端设备30侧安装的应用程序客户端(或者网页,本申请对此不做限制)来进行网络访问,并可以通过在客户端界面侧执行诸如账户登录操作、页面刷新操作、控件点击操作、页面滑动操作、搜索操作等,触发流量在线,启动在线预估及对象推荐流程。
流量在线时,服务器20侧的推荐系统可以通过获取用户信息,并获得用户信息对应的多个用户特征向量组合得到对应于用户的向量表示,来作为检索向量,并基于此检索向量在预设的索引文件中查找最接近的至少一个索引向量,即对应于推荐对象(例如广告)的向量表示。进而,将查找到的至少一个索引向量对应的对象作为要推荐给用户的候选对象,并例如从数据库50获取推荐对象并推送至终端设备30侧的用户客户端。
本申请实施例中,训练双塔模型、将用户信息和对象信息通过双塔模型量化为同一向量空间中的向量、以及构建索引文件的过程均可以在线下完成,而在线预估上,则可以只需根据用户向量查找索引文件来查找最相近的对象向量,从而确定要向用户推送的至少一个推荐对象。由此,在保障检索精度的情况下,还能够极大地减少线上运算量,从而缩短计算时间,能够实现检索精度和计算时间之间的平衡,从而提升推荐系统的性能。
图3为根据本申请一个实施例的推荐方法的流程示意图。其中,该方法流程可以是在线预估阶段执行的。
如图3所示,在步骤S310,获取用户信息。
这里,例如可以是从来自于用户客户端的请求中获取用户信息。该请求例如可以是用户客户端在监测到用户在客户端界面侧执行账户登录操作、页面刷新操作、控件点击操作、页面滑动操作、搜索操作等时发出的。用户信息可以包括但不限于是用户账号ID、操作标识、IP地址、地理位置等信息。应当理解的是,从来自用户客户端的请求中获取用户信息仅是对信息获取方式的举例说明而非任何限定,在其它实施例中还可以通过其它方式获取用户信息,例如向用户客户端请求获取用户信息,本申请对此不做限制。
在步骤S320,从用户特征库中,获取与所述用户信息对应的多个用户特征向量。
在步骤S330,将所述多个用户特征向量组成检索向量。
这里,各用户特征向量是预先基于相应的双塔模型对用户信息进行编码后存储到所述用户特征库中的,而编码所使用到的用户信息例如可以是通过对海量用户信息进行信息采集得到的,并且在用户特征库中,用户信息与其相应的向量表示可以是关联存储的,以便于在线预估阶段能够快速地获取到用户信息相应的用户特征向量。之后,即可将所述多个用户特征向量组成检索向量,例如可以是将所述多个用户特征向量首尾依序拼接,得到的一维向量作为所述检索向量。
本申请实施例中,可以通过设计合理的度量函数,并预先基于度量函数对不同的用户行为训练相应的双塔模型。各双塔模型可以预先将用户信息进行编码,以量化得到对应的用户特征向量并关联存储。
在此,度量函数的设计可以与在线检索时的相关算法相关,将在下文详述。
被预先进行编码的用户信息可以是适用于用户的任何信息,包括但不限于用户自身的属性信息,或者,也可以包括适用于众多用户的信息,如时间信息、地理位置信息;或者,还可以是基于业务的信息,例如,操作标识信息、业务标识信息、频道信息等,或者,还可以是基于场景的信息,例如成年模式信息、青少年模式信息等,本申请对此不做限制。
在线预估时,对于获取到的至少一项用户信息,可以将其对应于不同双塔模型得到的用户特征向量进行组合以得到检索向量。例如,对于用户信息例如用户账户ID(User)、用户地理位置信息等,经过对应于点击行为的双塔模型进行编码后的用户特征向量为U_imp2clk,经过对应于激活行为的双塔模型进行编码后的得到的用户特征向量为U_clk2conv。多个用户特征向量组合得到的检索向量,例如可以为:U_imp2conv=concat(U_imp2clk,U_clk2conv)。
应当理解的是,在此仅是对向量组合方式的举例说明而非任何限定,在其它实施例中,还可以通过其它方式对向量进行组合,本申请对此不做限制。
在一个实施例中,所训练的各双塔模型还可以预先对推荐对象(例如广告)进行编码得到各推荐对象的对象特征向量。每个推荐对象的经过相应双塔模型得到的多个对象特征向量能够组合得到的向量,作为该推荐对象的索引向量。将多个对象特征向量组成索引向量,例如也可以是将多个对象特征向量首尾依序拼接,得到的向量作为索引向量。例如,对于对象信息,经过对应于点击行为的双塔模型进行编码后的对象特征向量为V_imp2clk,经过对应于激活行为的双塔模型进行编码后的得到的对象特征向量为V_clk2conv。多个对象特征向量组合得到的索引向量,例如可以为:V_imp2conv=concat(V_imp2clk,V_clk2conv)。
各索引向量能够作为其对应的推荐对象的向量化表示,并用于构建关于推荐对象的索引文件,以便基于所构建的索引文件进行在线检索召回,以实现在线向用户推荐对象。
例如,在步骤S340,从索引文件中查找与所述检索向量匹配的至少一个索引向量。在步骤S350,将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端。
由此,通过在训练得到的多个双塔模型,能够在线下将用户和推荐对象(例如广告)量化成同一向量空间的低纬连续向量,并构建关于推荐对象的索引文件,流量在线时,只需根据用户的检索向量查找索引文件来执行一次检索召回,以确定要向用户推荐的至少一个候选对象,不仅能够提高检索精度,还能够减少在线运算量以及在线计算时间,从而极大提升推荐系统的性能。
如前所述,用于训练双塔模型的度量函数的设计,可以与所使用到的索引文件的构建算法及检索算法相关联,下文将结合度量函数的设计、双塔模型的训练以及索引文件的构建进行详细说明。
本申请实施例中,为了避免多次检索召回的损失,发明人提出,索引文件可以是基于各推荐对象的索引向量的向量距离得到的。组成各推荐对象的索引向量的多个对象特征向量可以是基于相应的双塔模型训练得到的,所设计的度量函数用于训练各双塔模型。该双塔模型可以用于对用户信息以及推荐对象信息进行编码得到同一向量空间内的相应特征向量,同一用户(或同一推荐对象)的经由各双塔模型得到的多个特征向量能够被组合,以为实现一次检索召回提供支持。
最近邻搜索是使用最为广泛的一种数据搜索技术,广泛应用于计机器学习、模式识别、文本和多媒体搜索等领域。但是实际应用由于搜索集通常非常大,不能满足对于大规模数据检索的时间性能要求。因此,近似最近邻搜索得到越来越多的研究和关注。
近似最近邻搜索目前有多种方法实现,比如树方法、哈希方法、矢量量化方法、近邻图方法等。其中近邻图方法是近期提出的查询速度和召回率表现较为优秀的一种方法。分层可导航小世界图(HNSW)是Yury A.Malkov提出的一种图索引方法,并且使用类似于跳表结构的思想构建分层索引图,使用贪婪算法的变体进行朴素查找最近邻。HNSW在大多数情况下召回率和搜索速度都高于其他ANN方法,并且支持增量更新索引,在推荐系统的应用上具有优势。
因此,发明人发现,考虑可以在在线预估时,使用HNSW算法进行检索召回,索引文件是各推荐对象的索引向量所构建的索引结构得到的存储文件,索引文件可以是基于各推荐对象的索引向量的向量距离以及分层可导航小世界图(HNSW)算法得到的。与此相对应地,可以根据HNSW算法的性质设计度量函数并训练双塔模型,由此,使得从信息向量化至检索召回所使用到的各种算法能够在一定程度上保持相关性,从而为实现在线一次检索召回提供支持。同时,还能够避免多次检索召回存在的损失,从而为保障推荐的精准度提供支持。
在一个实施例中,在检索算法中,检索向量与索引向量的向量距离,可以与检索向量与索引向量的点积负相关,所述度量函数的输入参数可以与用户特征向量和对象特征向量的点积正相关。
例如,可以基于d=1-U·V,确定对应于用户的检索向量U与对应于推荐对象的索引向量V的向量距离,来进行检索召回。并可以基于用户特征向量和对象特征向量的点积U·V设计度量函数,以U·V作为度量函数的输入,以用户针对推送的推荐对象产生交互行为的预估概率作为度量函数的输出。
由此,通过上述设计,可以使得在检索召回时用户向量与对象向量的向量距离d,可以正比于用户针对推送的推荐对象产生交互行为的预估概率,由此,将在线针对用户行为的概率预估,转化为基于向量距离的最近邻搜索,既能够保障推荐系统的检索精度,又能够减少在线预估时间,保障推荐系统的性能。
应当理解的是,上述检索算法仅是对本申请所能够实现的检索算法的示例性说明而非任何限定,本申请实施例还可以采用其它形式的检索算法,在此不再赘述。相应地,所设计的度量函数也可以有多种表达形式,本申请实施例对此不做限制。
作为示例,所述度量函数可以为指数函数,其值域可以为[0,n],n为0至1之间的指定值。例如:
f(U,V)=eU·V (1)
或者,所述度量函数可以为分段函数,所述度量函数的第一分段函数为指数函数,所述第一分段函数的值域为,c为0至n之间的常数,所述度量函数的第二分段函数为基于所述常数c和sigmoid激活函数构成的多项式,所述第二分段函数的值域为[c,n],n为指定值。例如:
或者,针对任一输入参数,所述度量函数的取值为所述第一分段函数和所述第二分段函数的输出值中的最小值,例如:
f(U,V)=min(eU·V,(1-c2)·sigmoid(U·V)+c2),c∈[0,1] (3);
其中,c是常数,例如可以为0.9。
或者:
f(U,V)=min(eU·V,1) (4)
应当理解的是,上述仅是对本申请的度量函数的举例而非任何限定。上述度量函数f的输出直接作为用户针对推荐对象的交互行为的预估概率,取值范围为(0,1)。
以上述公式(3)的度量函数为例,用户针对广告的点击率或者转化率大部分都在[0,c]区间,U·V的正常值在[-∞,log(c)]内,通过该度量函数,能够将输出的乘法转化为即输入的加法,也即将用户的多个行为的预估概率的乘积转化为向量的加法,即:
p_imp2conv=p_imp2clk*p_clk2conv
=f(U_imp2clk,V_imp2clk)*f(U_clk2conv,V_clk2conv)
=f(U_imp2conv,V_imp2conv)
由此,通过上述合理设计的度量函数,使得能够对经由多个双塔模型得到的向量进行拼接,并实现一次检索召回,从而避免多次检索召回存在的损失。
在训练各双塔模型时,可以基于用户历史行为获取训练样本。训练样本可以包括用户信息、推荐对象信息、对应于用户的检索向量、对应于推荐对象的索引向量以及用户是否针对推荐对象进行了相关交互行为的标注。所设计的度量函数可以配置在交叉层,度量函数的输入(也即自变量)可以包括检索向量和索引向量,输出(即因变量)为用于表示用户针对推荐对象产生交互行为的预估概率。通过训练样本以及交叉层输出的预估概率,可以训练并调整模型参数,得到针对不同交互行为的各双塔模型。各双塔模型能够用于实现对信息的向量化表示以及预估用户产生交互行为的概率值。
基于训练得到的双塔模型,可以预先对海量用户以及海量推荐对象(例如广告)的相关信息进行编码以得到相应的特征向量并存储至相应的用户特征库或是对象特征库中。用户特征库中的用户特征向量可以用于在在线预估时提供与用户信息对应的特征向量。对象特征库中的对象特征向量则可以用于构建关于推荐对象的索引文件,以为在线预估时向用户推荐对象提供支持。
作为示例,同一推荐对象的至少一项对象信息(例如对象ID、版本信息、产品性能、用途、产地等任何用于表示或推广的信息)可以经由各双塔模型得到相应的对象特征向量。同一推荐对象的多个特征向量组合得到的向量可以作为索引向量,用于构建索引文件并用于在在线预估阶段进行检索召回。
仍然以点击行为和激活行为为例,以对象ID、版本信息等作为待推荐对象的对象信息。例如,对于对象信息,经过对应于点击行为的双塔模型进行编码后的对象特征向量为V_imp2clk,经过对应于激活行为的双塔模型进行编码后的得到的对象特征向量为V_clk2conv。多个对象特征向量组合得到的向量,为:V_imp2conv=concat(V_imp2clk,V_clk2conv)。该V_imp2conv可以作为推荐对象对应的索引向量,可以用于构建索引文件或是进行在线检索召回。
本申请实施例中,索引文件是各推荐对象的索引向量所构建的索引结构得到的存储文件。仍然以HNSW算法为例,构建索引结构,可以包括:以各推荐对象对应的索引向量作为构建所述索引结构的元素,构建向量集合;选取所述向量集合的第一个元素插入所述索引结构,作为初始节点;遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构;并,以所述近邻节点作为初始节点,返回执行所述遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构,直至所述向量集合中的元素均插入所述索引结构。在所构建的索引结构中,以各推荐对象的索引向量作为节点,节点间距离越近则对应的索引向量的向量距离越小。
相应地,在步骤S340从索引文件中查找与所述检索向量匹配的至少一个索引向量时,则可以:将所述检索向量作为目标节点输入检索算法,从索引文件中查找所述目标节点的最近邻节点,所述最近邻节点对应于与所述检索向量的向量距离最小的索引向量;以所述最近邻节点作为下一个输入,从索引文件中查找所述最近邻节点的多个近邻节点,与所述检索向量匹配的至少一个索引向量包括所述最近邻节点对应的索引向量以及所述多个近邻节点对应的索引向量。
由此,通过结合分层可导航小世界图(HNSW)算法,即可快速地查找到与用户的检索向量最近邻的索引向量,从而确定要向用户推荐的候选广告,从而为实现高效且精确的广告投放提供支持。
至此,已经结合图3详细说明了本申请的推荐方案。
通过该推荐方案,通过使用合理设计的度量函数训练双塔模型,以使得基于该双塔模型得到的用户向量和对象向量能够进行一次检索召回,减少甚至避免多次检索召回存在的损失。并且,训练双塔模型、将用户信息和对象信息通过双塔模型量化为同一向量空间中的向量、以及构建索引文件的过程均可以在线下完成,而在线预估上,则可以只需根据用户向量查找索引文件来查找最相近的对象向量,从而确定要向用户推送的至少一个推荐对象。由此,在保障检索精度的情况下,还能够极大地减少线上运算量,从而缩短计算时间,能够实现检索精度和计算时间之间的平衡,从而提升推荐系统的性能。
基于相同的构思,本申请实施例还提出了一种对象的推荐装置。
图4为根据本申请一个实施例的推荐装置的示意图。
如图4所示,该推荐装置400可以包括:
信息获取单元410,用于获取用户信息;
特征向量获取单元420,用于从用户特征库中,获取与所述用户信息对应的多个用户特征向量,各用户特征向量是基于相应的双塔模型对所述用户信息进行编码后存储到所述用户特征库中的,且各双塔模型还用于对推荐对象进行编码得到各推荐对象的对象特征向量;
向量组合单元430,用于将所述多个用户特征向量组成检索向量;
索引单元440,用于从索引文件中查找与所述检索向量匹配的至少一个索引向量,每个索引向量由同一推荐对象的多个对象特征向量组成,所述索引文件是基于各推荐对象的索引向量的向量距离得到的;
信息推送单元450,用于将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端;
其中,在训练各双塔模型时,采用的度量函数的自变量为训练样本的索引向量和检索向量,因变量为用于表示用户针对推送的推荐对象产生交互行为的概率。
在一个实施例中,向量组合单元430用于:
将所述多个用户特征向量首尾依序拼接,得到的一维向量作为所述检索向量。
在一个实施例中,所述索引文件是基于各推荐对象的索引向量的向量距离以及分层可导航小世界图算法得到的。
在一个实施例中,所述索引文件是各推荐对象的索引向量所构建的索引结构得到的存储文件,构建索引结构,包括:
以各推荐对象对应的索引向量作为构建所述索引结构的元素,构建向量集合;
选取所述向量集合的第一个元素插入所述索引结构,作为初始节点;
遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构;并,
以所述近邻节点作为初始节点,返回执行所述遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构,直至所述向量集合中的元素均插入所述索引结构。
在一个实施例中,所述度量函数的输入参数与用户特征向量和对象特征向量的点积正相关。
在一个实施例中,索引单元440用于:
将所述检索向量作为目标节点输入检索算法,从索引文件中查找所述目标节点的最近邻节点,所述最近邻节点对应于与所述检索向量的向量距离最小的索引向量,其中,在所述检索算法中,检索向量与索引向量的向量距离,与检索向量与索引向量的点积负相关;
以所述最近邻节点作为下一个输入,从索引文件中查找所述最近邻节点的多个近邻节点,与所述检索向量匹配的至少一个索引向量包括所述最近邻节点对应的索引向量以及所述多个近邻节点对应的索引向量。
在一个实施例中,所述度量函数为指数函数,其值域为[0,n];或者,
所述度量函数为分段函数,所述度量函数的第一分段函数为指数函数,所述第一分段函数的值域为[0,c],c为0至n之间的常数,所述度量函数的第二分段函数为基于所述常数c和sigmoid激活函数构成的多项式,所述第二分段函数的值域为[c,n];或者,
针对任一输入参数,所述度量函数的取值为所述第一分段函数和所述第二分段函数的输出值中的最小值;其中,n为指定值。
推荐装置及其功能模块的具体实现可参见上文结合图1-3的相关描述,在此不再赘述。
在介绍了本申请示例性实施方式的一种推荐方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的计算设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的计算设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的推荐方法中的步骤。例如,处理器可以执行如图3所示的步骤。
下面参照图5来描述根据本申请的这种实施方式的计算设备130。图5显示的计算设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算设备130以通用计算设备的形式表现。计算设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算设备130交互的设备通信,和/或与使得该计算设备130能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,计算设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于计算设备130的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种推荐方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种推荐方法中的步骤,例如,计算机设备可以执行如图3所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于推荐的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种对象的推荐方法,其特征在于,包括:
获取用户信息;
从用户特征库中,获取与所述用户信息对应的多个用户特征向量,各用户特征向量是基于相应的双塔模型对所述用户信息进行编码后存储到所述用户特征库中的,且各双塔模型还用于对推荐对象进行编码得到各推荐对象的对象特征向量;
将所述多个用户特征向量组成检索向量,其中,在所述用户特征库中,用户信息与所述用户信息相应的向量表示是关联存储的;
从索引文件中查找与所述检索向量匹配的至少一个索引向量,每个索引向量由同一推荐对象的多个对象特征向量组成,所述索引文件是基于各推荐对象的索引向量的向量距离得到的;
将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端;
其中,基于度量函数的最小值训练各双塔模型,所述度量函数的自变量为训练样本的索引向量和检索向量,因变量为用于表示用户针对推送的推荐对象产生交互行为的概率,基于用户历史行为获取训练样本,训练样本包括用户信息、推荐对象信息、对应于用户的检索向量、对应于推荐对象的索引向量以及用户是否针对推荐对象进行了相关交互行为的标注,所述度量函数配置在交叉层。
2.根据权利要求1所述的方法,其特征在于,将所述多个用户特征向量组成检索向量,包括:
将所述多个用户特征向量首尾依序拼接,得到的一维向量作为所述检索向量。
3.根据权利要求1所述的方法,其特征在于,所述索引文件是基于各推荐对象的索引向量的向量距离以及分层可导航小世界图算法得到的。
4.根据权利要求3所述的方法,其特征在于,所述索引文件是各推荐对象的索引向量所构建的索引结构得到的存储文件,构建索引结构,包括:
以各推荐对象对应的索引向量作为构建所述索引结构的元素,构建向量集合;
选取所述向量集合的第一个元素插入所述索引结构,作为初始节点;
遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构;并,
以所述近邻节点作为初始节点,返回执行所述遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构,直至所述向量集合中的元素均插入所述索引结构。
5.根据权利要求1所述的方法,其特征在于,所述度量函数的输入参数与用户特征向量和对象特征向量的点积正相关。
6.根据权利要求5所述的方法,其特征在于,从索引文件中查找与所述检索向量匹配的至少一个索引向量,包括:
将所述检索向量作为目标节点输入检索算法,从索引文件中查找所述目标节点的最近邻节点,所述最近邻节点对应于与所述检索向量的向量距离最小的索引向量,其中,在所述检索算法中,检索向量与索引向量的向量距离,与检索向量与索引向量的点积负相关;
以所述最近邻节点作为下一个输入,从索引文件中查找所述最近邻节点的多个近邻节点,与所述检索向量匹配的至少一个索引向量包括所述最近邻节点对应的索引向量以及所述多个近邻节点对应的索引向量。
7.根据权利要求6所述的方法,其特征在于,
所述度量函数为指数函数,其值域为[0,n];或者,
所述度量函数为分段函数,所述度量函数的第一分段函数为指数函数,所述第一分段函数的值域为[0,c],c为0至n之间的常数,所述度量函数的第二分段函数为基于所述常数c和sigmoid激活函数构成的多项式,所述第二分段函数的值域为[c,n];或者,
针对任一输入参数,所述度量函数的取值为所述第一分段函数和所述第二分段函数的输出值中的最小值;
其中,n为指定值。
8.一种对象的推荐装置,其特征在于,包括:
信息获取单元,用于获取用户信息;
特征向量获取单元,用于从用户特征库中,获取与所述用户信息对应的多个用户特征向量,各用户特征向量是基于相应的双塔模型对所述用户信息进行编码后存储到所述用户特征库中的,且各双塔模型还用于对推荐对象进行编码得到各推荐对象的对象特征向量;
向量组合单元,用于将所述多个用户特征向量组成检索向量,其中,在所述用户特征库中,用户信息与所述用户信息相应的向量表示是关联存储的;
索引单元,用于从索引文件中查找与所述检索向量匹配的至少一个索引向量,每个索引向量由同一推荐对象的多个对象特征向量组成,所述索引文件是基于各推荐对象的索引向量的向量距离得到的;
信息推送单元,用于将匹配到的索引向量对应的推荐对象推送至所述用户信息对应的客户端;
其中,基于度量函数的最小值训练各双塔模型,所述度量函数的自变量为训练样本的索引向量和检索向量,因变量为用于表示用户针对推送的推荐对象产生交互行为的概率,基于用户历史行为获取训练样本,训练样本包括用户信息、推荐对象信息、对应于用户的检索向量、对应于推荐对象的索引向量以及用户是否针对推荐对象进行了相关交互行为的标注,所述度量函数配置在交叉层。
9.根据权利要求8所述的装置,其特征在于,向量组合单元用于:
将所述多个用户特征向量首尾依序拼接,得到的一维向量作为所述检索向量。
10.根据权利要求8所述的装置,其特征在于,所述索引文件是基于各推荐对象的索引向量的向量距离以及分层可导航小世界图算法得到的。
11.根据权利要求10所述的装置,其特征在于,所述索引文件是各推荐对象的索引向量所构建的索引结构得到的存储文件,构建索引结构,包括:
以各推荐对象对应的索引向量作为构建所述索引结构的元素,构建向量集合;
选取所述向量集合的第一个元素插入所述索引结构,作为初始节点;
遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构;并,
以所述近邻节点作为初始节点,返回执行所述遍历所述向量集合,通过向量距离,查找所述初始节点的近邻节点,并将所述近邻节点插入所述索引结构,直至所述向量集合中的元素均插入所述索引结构。
12.根据权利要求8所述的装置,其特征在于,所述度量函数的输入参数与用户特征向量和对象特征向量的点积正相关。
13.根据权利要求12所述的装置,其特征在于,索引单元用于:
将所述检索向量作为目标节点输入检索算法,从索引文件中查找所述目标节点的最近邻节点,所述最近邻节点对应于与所述检索向量的向量距离最小的索引向量,其中,在所述检索算法中,检索向量与索引向量的向量距离,与检索向量与索引向量的点积负相关;
以所述最近邻节点作为下一个输入,从索引文件中查找所述最近邻节点的多个近邻节点,与所述检索向量匹配的至少一个索引向量包括所述最近邻节点对应的索引向量以及所述多个近邻节点对应的索引向量。
14.根据权利要求13所述的装置,其特征在于,
所述度量函数为指数函数,其值域为[0,n];或者,
所述度量函数为分段函数,所述度量函数的第一分段函数为指数函数,所述第一分段函数的值域为[0,c],c为0至n之间的常数,所述度量函数的第二分段函数为基于所述常数c和sigmoid激活函数构成的多项式,所述第二分段函数的值域为[c,n];或者,
针对任一输入参数,所述度量函数的取值为所述第一分段函数和所述第二分段函数的输出值中的最小值;
其中,n为指定值。
15.一种计算设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行根据权利要求1-7任何一项所述的方法。
16.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行根据权利要求1-7任何一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085208.3A CN111339240B (zh) | 2020-02-10 | 2020-02-10 | 对象的推荐方法、装置、计算设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085208.3A CN111339240B (zh) | 2020-02-10 | 2020-02-10 | 对象的推荐方法、装置、计算设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111339240A CN111339240A (zh) | 2020-06-26 |
CN111339240B true CN111339240B (zh) | 2024-04-26 |
Family
ID=71181508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010085208.3A Active CN111339240B (zh) | 2020-02-10 | 2020-02-10 | 对象的推荐方法、装置、计算设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339240B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868440B (zh) * | 2020-06-30 | 2023-06-27 | 华为技术有限公司 | 特征库的管理方法、装置、设备及介质 |
CN111667024B (zh) * | 2020-06-30 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 内容推送方法、装置、计算机设备和存储介质 |
CN111985971A (zh) * | 2020-08-25 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 广告筛选方法、装置、设备及存储介质 |
CN111949890B (zh) * | 2020-09-27 | 2021-02-05 | 平安科技(深圳)有限公司 | 基于医学领域的数据推荐方法、设备、服务器及存储介质 |
CN112418423B (zh) * | 2020-11-24 | 2023-08-15 | 百度在线网络技术(北京)有限公司 | 利用神经网络向用户推荐对象的方法、设备和介质 |
CN113065663A (zh) * | 2021-01-22 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 一种数据访问方法、装置、设备和存储介质 |
CN113761311A (zh) * | 2021-01-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 信息检索方法、装置、服务器和可读存储介质 |
CN113781087A (zh) * | 2021-01-29 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 推荐对象的召回方法及装置、存储介质、电子设备 |
CN113379449B (zh) * | 2021-05-31 | 2022-10-04 | 北京达佳互联信息技术有限公司 | 多媒体资源召回方法、装置、电子设备以及存储介质 |
CN113362139B (zh) * | 2021-06-17 | 2023-04-28 | 震坤行工业超市(上海)有限公司 | 基于双塔结构模型的数据处理方法和装置 |
CN113656685A (zh) * | 2021-07-15 | 2021-11-16 | 北京达佳互联信息技术有限公司 | 一种搜索信息推荐方法、装置、电子设备及存储介质 |
CN113360776B (zh) * | 2021-07-19 | 2023-07-21 | 西南大学 | 基于跨表数据挖掘的科技资源推荐方法 |
CN113836327B (zh) * | 2021-09-26 | 2024-08-20 | 杭州网易云音乐科技有限公司 | 推荐方法、介质、装置和计算设备 |
CN114691901A (zh) * | 2022-03-04 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 一种多媒体资源的播放方法、介质及电子设备 |
CN114996588B (zh) * | 2022-08-01 | 2022-10-21 | 平安科技(深圳)有限公司 | 基于双塔模型的产品推荐方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008256A (zh) * | 2019-04-09 | 2019-07-12 | 杭州电子科技大学 | 一种基于分层可导航小世界图的近似最近邻搜索方法 |
CN110232152A (zh) * | 2019-05-27 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 内容推荐方法、装置、服务器以及存储介质 |
CN110309267A (zh) * | 2019-07-08 | 2019-10-08 | 哈尔滨工业大学 | 基于预训练模型的语义检索方法和系统 |
CN110737839A (zh) * | 2019-10-22 | 2020-01-31 | 京东数字科技控股有限公司 | 短文本的推荐方法、装置、介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2731659C2 (ru) * | 2016-09-09 | 2020-09-07 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и устройство для обучения алгоритма машинного обучения (MLA) по созданию рекомендаций содержимого в системе рекомендаций и способ и устройство для создания рекомендуемого содержимого с помощью алгоритма машинного обучения |
-
2020
- 2020-02-10 CN CN202010085208.3A patent/CN111339240B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008256A (zh) * | 2019-04-09 | 2019-07-12 | 杭州电子科技大学 | 一种基于分层可导航小世界图的近似最近邻搜索方法 |
CN110232152A (zh) * | 2019-05-27 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 内容推荐方法、装置、服务器以及存储介质 |
CN110309267A (zh) * | 2019-07-08 | 2019-10-08 | 哈尔滨工业大学 | 基于预训练模型的语义检索方法和系统 |
CN110737839A (zh) * | 2019-10-22 | 2020-01-31 | 京东数字科技控股有限公司 | 短文本的推荐方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111339240A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111339240B (zh) | 对象的推荐方法、装置、计算设备和存储介质 | |
CN107463704B (zh) | 基于人工智能的搜索方法和装置 | |
US20210027160A1 (en) | End-to-end deep collaborative filtering | |
US20180365257A1 (en) | Method and apparatu for querying | |
US20190392258A1 (en) | Method and apparatus for generating information | |
CN110119445B (zh) | 生成特征向量和基于特征向量进行文本分类的方法和装置 | |
CN111104599B (zh) | 用于输出信息的方法和装置 | |
CN111625715B (zh) | 信息提取方法、装置、电子设备及存储介质 | |
CN111369313A (zh) | 订房失败订单的处理方法、装置、计算机设备及存储介质 | |
CN115062709B (zh) | 模型优化方法、装置、设备、存储介质及程序产品 | |
CN113591490B (zh) | 信息处理方法、装置和电子设备 | |
CN110390011B (zh) | 数据分类的方法和装置 | |
CN114090769A (zh) | 实体挖掘方法、装置、计算机设备和存储介质 | |
CN115700548A (zh) | 用户行为预测的方法、设备和计算机程序产品 | |
CN110992127B (zh) | 一种物品推荐方法及装置 | |
CN116680481A (zh) | 搜索排序方法、装置、设备、存储介质及计算机程序产品 | |
CN113743077B (zh) | 一种确定文本相似度的方法和装置 | |
CN115619142A (zh) | 匹配数据的方法、装置、设备和计算机可读介质 | |
CN113627161B (zh) | 数据处理方法及装置、存储介质、电子设备 | |
CN113779370B (zh) | 一种地址检索方法和装置 | |
CN112035740B (zh) | 项目使用时长预测方法、装置、设备及存储介质 | |
CN114706841A (zh) | 查询内容库构建方法、装置、电子设备及可读存储介质 | |
CN110442767B (zh) | 一种确定内容互动平台标签的方法、装置及可读存储介质 | |
CN115774817A (zh) | 信息处理模型的训练方法、信息处理方法及相关设备 | |
CN113761933A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |