一种搜索推荐方法及系统与流程

文档序号:18465012发布日期:2019-08-17 02:22阅读:231来源:国知局
一种搜索推荐方法及系统与流程

本发明涉及一种搜索推荐方法及系统,属于互联网技术领域。



背景技术:

基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,所谓的基于内容的推荐方法就是根据用户过去的浏览记录来向用户推荐用户没有接触过的推荐项。主要是从两个方法来描述基于内容的推荐方法:启发式的方法和基于模型的方法。启发式的方法就是用户凭借经验来定义相关的计算公式,然后再根据公式的计算结果和实际的结果进行验证,然后再不断修改公式以达到最终目的。而对于模型的方法就是根据以往的数据作为数据集,然后根据这个数据集来学习出一个模型。一般的推荐系统中运用到的启发式的方法就是使用tf-idf的方法来计算,跟还有tf-idf的方法计算出这个文档中出现权重比较高的关键字作为描述用户特征,并使用这些关键字作为描述用户特征的向量;然后再根据被推荐项中的权重高的关键字来作为推荐项的属性特征,然后再将这个两个向量最相近的(与用户特征的向量计算得分最高)的项推荐给用户。在计算用户特征向量和被推荐项的特征向量的相似性时,一般使用的是cosine方法,计算两个向量之间夹角的cosine值

传统的方法是直接从数据库模糊搜索关键字得到列表,推送句子并不符合用户需求,不能满足用户的个性化需求,影响用户体验。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种搜索推荐方法及系统,包括获取用户输入的搜索内容,提取搜索文本并调用数据库;根据搜索文本进行词句匹配,从数据库中挑选出包含搜索文本的句子;将挑选出的句子根据评分模型进行逐一评分排序,并放入推送池;、根据评分排序进行用户个性化处理,得到一定数量的句子并推送给用户,其中一定数量可自定义。

本发明解决其问题所采用的技术方案一方面是:一种搜索推荐方法,其特征在于,包括以下步骤:s100、获取用户输入的搜索内容,提取搜索文本并调用数据库;s200、根据搜索文本进行词句匹配,从数据库中挑选出包含搜索文本的句子;s300、将挑选出的句子根据评分模型进行逐一评分排序,并放入推送池;s400、根据评分排序进行用户个性化处理,得到一定数量的句子并推送给用户,其中一定数量可自定义。

进一步的,所述s200还包括:s201、根据搜索文本,调用数据库中各个句子在一定时间内的被调用率,计算转化率分数;s202、根据转化率分数大小生成候选待推送句子,划入推送池中,其中推送池还包括长尾的新词和趋势词。

进一步的,所述s300还包括:s301、根据搜索文本的前缀特征以及索引特征获取对应的句子的统计特征;s302、根据索引和句子的编辑距离以及dbow向量计算句子排序;s303、使用模型计算各个句子在对应文本的相关性分数,其中模型包括但不限于hred模型、lambda模型、mart模型、随机森林模型以及网格查找模型。

进一步的,所述s400还包括:s401、将挑选出的句子根据搜索次数、网站成交额变化率以及点击率进行加权融合;s402、对处理后的句子进行贝叶斯平滑处理,同时计算句子静态分,其中静态分包括但不限于pv、ctr、成交转化率、成交笔数、成交金额以及召回商品数。

进一步的,所述s400还包括:s401、将挑选出的句子根据时间序列模型进行预测概率大小,其中预测模型包括加法指数平滑模型;s402、根据用户在一定时间内的自主搜索记录来计算句子相对熵和新词的数据,并推送给用户。

进一步的,所述s400还包括:s401、获取用户信息,其中用户信息包括但不限于年龄、性别、购买力、短期和长期查询偏好;s402、根据用户信息计算数据库中句子的对应个性化特征;s403、使用lr模型和auc评价指标计算各个个性化特征权重,根据权重大小将对应句子推送给用户。

进一步的,所述s400还包括:s401、根据搜索文本的上下文调用推送池中的句子,映射到对应空间中;s402、计算每个句子与上下文的相似度,根据相似的大小向用户推送句子,其中计算方法包括使用余弦相似度计算。

本发明解决其问题所采用的技术方案另一方面是:一种搜索推荐系统,其特征在于,包括:文本提取模块,用于获取用户输入的搜索内容,提取搜索文本;数据库,用于存储候选句子并建立用于存储筛选后句子的推送池;匹配模块,用于根据搜索文本进行词句匹配,从数据库中挑选出包含搜索文本的句子排序模块,用于将挑选出的句子根据评分模型进行逐一评分排序,并放入推送池;个性化模块,用于根据评分排序进行用户个性化处理,得到一定数量的句子并推送给用户。

进一步的,所述匹配模块还包括:计算单元,用于据搜索文本,调用数据库中各个句子在一定时间内的被调用率,计算转化率分数;管理单元,用于根据转化率分数大小生成候选待推送句子,划入推送池中,其中推送池还包括长尾的新词和趋势词。

进一步的,所述排序模块还包括:统计单元,用于根据搜索文本的前缀特征以及索引特征获取对应的句子的统计特征;排序单元,用于根据索引和句子的编辑距离以及dbow向量计算句子排序;模型计算单元,用于使用模型计算各个句子在对应文本的相关性分数,其中模型包括但不限于hred模型、lambda模型、mart模型、随机森林模型以及网格查找模型。

本发明的有益效果是:方便用户输入、缩短用户搜索时间、提高搜索准确度以及改善用户的搜索体验。

附图说明

图1是根据本发明优选实施例的方法流程示意图;

图2是根据本发明优选实施例的系统结构示意图;

图3是根据本发明优选实施例的模型预测流程示意图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

术语解释:

query:推荐句子,即句子;

querylog:存储句子的数据库,即全量日志;

querysession:查询语句,用户输入的搜索文本;

gmv:网站成交金额。

参照图1,是根据本发明优选实施例的方法流程示意图,

s100、获取用户输入的搜索内容,提取搜索文本并调用数据库;

s200、根据搜索文本进行词句匹配,从数据库中挑选出包含搜索文本的句子;

s300、将挑选出的句子根据评分模型进行逐一评分排序,并放入推送池;

s400、根据评分排序进行用户个性化处理,得到一定数量的句子并推送给用户,其中一定数量可自定义。

所述s200还包括:s201、根据搜索文本,调用数据库中各个句子在一定时间内的被调用率,计算转化率分数;s202、根据转化率分数大小生成候选待推送句子,划入推送池中,其中推送池还包括长尾的新词和趋势词。

所述s300还包括:s301、根据搜索文本的前缀特征以及索引特征获取对应的句子的统计特征;s302、根据索引和句子的编辑距离以及dbow向量计算句子排序;s303、使用模型计算各个句子在对应文本的相关性分数,其中模型包括但不限于hred模型、lambda模型、mart模型、随机森林模型以及网格查找模型。

所述s400还包括:s401、将挑选出的句子根据搜索次数、网站成交额变化率以及点击率进行加权融合;s402、对处理后的句子进行贝叶斯平滑处理,同时计算句子静态分,其中静态分包括但不限于pv、ctr、成交转化率、成交笔数、成交金额以及召回商品数。

所述s400还包括:s401、将挑选出的句子根据时间序列模型进行预测概率大小,其中预测模型包括加法指数平滑模型;s402、根据用户在一定时间内的自主搜索记录来计算句子相对熵和新词的数据,并推送给用户。

所述s400还包括:s401、获取用户信息,其中用户信息包括但不限于年龄、性别、购买力、短期和长期查询偏好;s402、根据用户信息计算数据库中句子的对应个性化特征;s403、使用lr模型和auc评价指标计算各个个性化特征权重,根据权重大小将对应句子推送给用户。

所述s400还包括:s401、根据搜索文本的上下文调用推送池中的句子,映射到对应空间中;s402、计算每个句子与上下文的相似度,根据相似的大小向用户推送句子,其中计算方法包括使用余弦相似度计算。

参照图2,是根据本发明优选实施例的系统结构示意图,

包括:文本提取模块,用于获取用户输入的搜索内容,提取搜索文本;数据库,用于存储候选句子并建立用于存储筛选后句子的推送池;匹配模块,用于根据搜索文本进行词句匹配,从数据库中挑选出包含搜索文本的句子排序模块,用于将挑选出的句子根据评分模型进行逐一评分排序,并放入推送池;个性化模块,用于根据评分排序进行用户个性化处理,得到一定数量的句子并推送给用户。

所述匹配模块还包括:计算单元,用于据搜索文本,调用数据库中各个句子在一定时间内的被调用率,计算转化率分数;管理单元,用于根据转化率分数大小生成候选待推送句子,划入推送池中,其中推送池还包括长尾的新词和趋势词。

所述排序模块还包括:统计单元,用于根据搜索文本的前缀特征以及索引特征获取对应的句子的统计特征;排序单元,用于根据索引和句子的编辑距离以及dbow向量计算句子排序;模型计算单元,用于使用模型计算各个句子在对应文本的相关性分数,其中模型包括但不限于hred模型、lambda模型、mart模型、随机森林模型以及网格查找模型。

用户输入关键字后,搜索引擎系统自动提供一个query候选列表供用户选择,这些推荐query一般从从querylog中挖掘出大量的候选query,并且保持前缀相同,然后依据定义的法则给候选query计算一个分数,最后选择出topn个作为最终结果。

自动补全模型(基于全量日志)

mpc的算法流程如图3所示,

将数据产生过程分成3个阶段,召回、模型排序和个性化层面。3个层解决的问题是不同的,召回层主要解决query丰富性问题,排序层解决的是模型匹配和相关性问题,个性化解决语义重复和个性化偏好的问题。

召回中首先会按照query的最近一周表现计算query的一个转化率分数,形成候选candidate-set。同时引入了一些长尾的新词和趋势词加入到池子中。这些词大概覆盖几十万的query结果,95%以上的叶子类目覆盖率,流量占比85%+。因为下拉框的功能是提供搜索提示,那么常用的规则就是前缀匹配,在用户的搜索意图下进行query补全,由于不同的用户搜索词下结果是不同的,这涉及到一个匹配的问题,构建了索引结构的平面存储结构,覆盖用户拼音、汉字、拼音+汉字+简写的搜索习惯至少几百万的搜索结果,这些结果中明显是稀疏集,推荐query词大于2个结果的大约百万万。至于为什么用这些的结构,其中一个好处是查询方便。

模型排序是根据去挖掘相应的特征,query特征以及索引特征,搜索prefix然后去点击query的相关统计特征都可以获得,还有一些是文本特征,例如索引和query的编辑距离,dbow向量等,这些都可转为libsvm格式去调用ranklib去计算排序。试过lambda-mart-随机深林-网格查找等多模型优化,现在用的比较多的是根据hred模型计算不同query下的文本相关性分数,按照pop_score和hred_score加权融合排序。

个性化层做过两方面的尝试,query语义过滤是解决推荐结果中意图重复的问题,按照query召回结果重复以及同义词、子串过滤。个性化精排按照用户的query偏好、文本相关性、重新排序。

按照query的搜索次数进行排序,计算公式如下

1.根据搜索次数、gmv变化率、点击率等指标做一个加权融合,并对多条数据进行贝叶斯平滑。

2.考虑query的静态分。query静态分是query质量的综合指标,该指标拟合了query各维度的知识:如query的pv、ctr、成交转化率、成交笔数、成交金额、召回商品数等。从而建立以query转化率为目标,用户session内行为为特征的lr模型。这种方法不仅考虑了query的历史点击信息,而且考虑了query的交易信息,使得交易行为良好的query获得更多的展现机会,大大降低了低质量和作弊query的展现概率。

自动补全模型(基于时间敏感)

为什么考虑时间敏感的query推荐呢,是因为用户的检索行为随时间发生变化,不同用户在搜索中关注的焦点也不尽相同。即在不同时间,用户的查询倾向不同(其实在相同时间,不同用户的查询倾向也不同)。分析时间因素对用户搜索行为的影响,为用户提供符合时间趋势、季节性、周期性的查询词,将大大提升用户搜索效率和用户搜索满意度。主要的方法是应用时间序列进行预测。如holt-winters加法指数平滑模型:

在时间序列中,需要基于该时间序列当前已有的数据来预测其在之后的走势,三次指数平滑(triple/threeorderexponentialsmoothing,holt-winters)算法可以很好的进行时间序列的预测。

时间序列数据一般有以下几种特点:1.趋势(trend)2.季节性(seasonality)。趋势描述的是时间序列的整体走势,比如总体上升或者总体下降,季节性描述的是数据的周期性波动,比如以年或者周为周期,

三次指数平滑算法可以对同时含有趋势和季节性的时间序列进行预测,该算法是基于一次指数平滑和二次指数平滑算法的。

一次指数平滑算法基于以下的递推关系:

si=αxi+(1-α)si-1

其中α是平滑参数,si是之前i个数据的平滑值,取值为[0,1],α越接近1,平滑后的值越接近当前时间的数据值,数据越不平滑,α越接近0,平滑后的值越接近前i个数据的平滑值,数据越平滑,α的值通常可以多尝试几次以达到最佳效果。

一次指数平滑算法进行预测的公式为:xi+h=si,其中i为当前最后的一个数据记录的坐标,亦即预测的时间序列为一条直线,不能反映时间序列的趋势和季节性。

二次指数平滑保留了趋势的信息,使得预测的时间序列可以包含之前数据的趋势。二次指数平滑通过添加一个新的变量t来表示平滑后的趋势:

si=αxi+(1-α)(si-1+ti-1)

ti=β(si-si-1)+(1-β)ti-1

二次指数平滑的预测公式为xi+h=si+hti二次指数平滑的预测结果是一条斜的直线。

三次指数平滑在二次指数平滑的基础上保留了季节性的信息,使得其可以预测带有季节性的时间序列。三次指数平滑添加了一个新的参数p来表示平滑后的趋势。

三次指数平滑有累加和累乘两种方法,下面是累加的三次指数平滑

si=α(xi-pi-k)+(1-α)(si-1+ti-1)

ti=β(si-si-1)+(1-β)ti-1

pi=γ(xi-si)+(1-γ)pi-k其中k为周期

累加三次指数平滑的预测公式为:xi+h=si+hti+pi-k+(hmodk)注意:数据之魅p88此处有错误,根据wikipedia修正。

下式为累乘的三次指数平滑:

si=αxi/pi-k+(1-α)(si-1+ti-1)

ti=β(si-si-1)+(1-β)ti-1

pi=γxi/si+(1-γ)pi-k其中k为周期

累乘三次指数平滑的预测公式为:xi+h=(si+hti)pi-k+(hmodk)注意:数据之魅p88此处有错误,根据wikipedia修正。

α,β,γ的值都位于[0,1]之间,可以多试验几次以达到最佳效果。

s,t,p初始值的选取对于算法整体的影响不是特别大,通常的取值为s0=x0,t0=x1-x0,累加时p=0,累乘时p=1。

这里考虑了水平、趋势、季节的影响,为t时刻的值,表示预测的频率值。

需要注意是因为电商的大多数query词对时间敏感性并不是很强,一般在换季阶段诉求比较强烈。主要是针对用户的自主搜索query进行分析,根据一周内的用户自主搜索记录来计算query相对熵和新词等数据,以此作为对时间敏感型的query补充。

自动补全模型(基于用户信息)

根据用户的行为,识别用户的意图,对用户进行分析建模。例如识别用户的年龄、性别、购买力、短期和长期query偏好。结合之前的初排结果进行再次个性化建模推荐。

(1)计算用户和query的相关个性化特征。

(2)建立合理的评价机制对这些特征学习计算权重。这里用的模型是lr,评价指标采用auc。需要注意的是用户的行为往往是稀疏的,还需要挖掘更多其他场景的用户行为进行计算。

自动补全模型(基于上下文)

上下文通常是与用户的querysession,session内的query相关的,将用户的上下文和候选query映射到某个空间,然后计算每个初始选择的query和上下文的相似度,越相似的query,越能表征当前用户的搜索意图,分数越高,排名越靠前。将context当作query,把候选query当作document,那么这个问题其实就是一个匹配问题。因此可以把query和context表示成词的向量,那么相似度的计算沿用最简单的cosinesimilarity计算即可。

主要采用wordembedding的方法来获得向量:

不仅考虑了query的历史点击信息,而且考虑了query的交易信息,使得交易行为良好的query获得更多的展现机会,大大降低了低质量和作弊query的展现概率。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1