垂直搜索引擎构建:一个例子(下)食品里的干燥剂别扔,特别值钱!这几个用途真厉害,赶紧回家找找
文章目录[隐藏]
搜索引擎可以分为三类,元搜索引擎、综合搜索引擎、垂直搜索引擎。元搜索引擎使用场景较少,综合搜索引擎逐渐成熟,而许多垂直搜索引擎发展却参差不齐。一方面,身处垂直行业的企业更关注业务发展,较少关注产品算法和策略。另一方面,网络上关于搜索引擎的功能设计的文章汗牛充栋,而对搜索引擎的策略设计阐述却是不常见。针对这种现象,本文将以互联网房产为例,分享垂直搜索引擎的构建策略和基本框架,希望可以为后来者带来一些启发。
前文简要介绍了房产垂直搜索引擎的含义、特点和作用,随后叙述了房产搜索引擎的框架搭建,包括query分析、召回策略等。有兴趣的读者可以通过点击下方链接查看。
在本文,我们将介绍垂直搜索引擎的排序策略、效果评估等内容,通过本文你将了解垂直引擎的排序和评估方法大致框架。
一、排序
在进行搜索引擎优化项目时,读者可能会遇到各种关于排序的文章,内容纷繁复杂,让人眼花缭乱,不知所措。因此,作者对工作中的经验和相关论文进行回顾,梳理了排序的大致框架。希望通过下面的阐述,能够揭开排序领域的一角,为读者在工作和学习上带来帮助。
1.1 排序简介
排序是对召回数据按照一定规则重新排列的过程。排序对搜索、推荐和广告的效果有着直接影响,好的排序可以提高用户体验和广告收入。
排序的发展历程经历了多次迭代,可以概括为三个阶段:
统计阶段:该主要采用一些静态得分或统计指标作为规则进行排序。在此阶段,我们通常会使用一些基础的统计指标或者规则,如TF-IDF、PageRank等,对数据进行初步排序。这些算法或规则还会使用一些统计指标,如关键词匹配、item评分等作为排序依据。机器学习阶段:我们也可称之为机器学习早期阶段。该阶段模型较为简单,参数较少,有一定个性化推荐能力。在早期的机器学习阶段,主要将LR(Logistic Regression)、GBDT(Gradient Boosting Decision Tree)、FM(Factorization Machines)、RF(Random Forest)、XGBoost(eXtreme Gradient Boosting)等机器学习算法应用到排序策略中。该方法主要思路是利用业务数据和业务指标(如CTR)训练高表现的排序模型,可以简单理解为:求解CTR和Item关系的(局部)最优拟合函数,从而使更有可能被点击的Item排在前列。深度学习阶段:深度学习属于机器学习的一个新领域,深度主要体现在使用多层神经网络训练,它也是机器学习的一个领域 。因为其与传统机器学习有着不同的特点,在此单独作为一个阶段进行叙述。该阶段主要使用深度学习(部分企业也使用了强化学习)进行排序,代表模型有:DNN(Deep Neural Network)、DSSM(Deep Structured Semantic Models)、FNN(Feedforward Neural Network)、PNN(Probabilistic Neural Network)、NFM(Neural Factorization Machines)、AFM(Attentional Factorization Machines)。
深度学习思路本质上与机器学习类似,但其不同之处在于参考了人脑神经元结构,引入了多层神经网络,从而提高了函数的拟合和泛化效果。此外,深度学习还可以降低特征维度,淡化物品的表征能力。
从上述三个发展阶段可以看出,排序的发展路径为:单一数据特征表示 → 多元数据特征表示 → 低维密集向量表示。这些阶段都是将用户、物品、查询等数据转换为向量表示,并通过学习来实现排序的业务目标。
1.2 排序流程
排序可以按照流程分为粗排、精排和重排三个阶段。
1.2.1 粗排
粗排是使用一定策略,对召回数据进行大致排序,对候选集进行初步筛选,以减少计算量。通过粗排,我们可以减轻精排的压力,并提高排序效率。由于粗排是对召回数据的预处理过程,因此也被称为预排序。
粗排需要快速从海量数据筛选出较高质量的数据,因此不能使用过于复杂的模型。在此我们主要介绍几种经典的方法。
(1)基于统计规则的静态商品质量评分
该方法主要采用一些静态指标,使用一定函数给item打分,从而进行排序。评分依据之一是query和item关联度,如使用TF-IDF、BM25等方法计算item重要程度;其次是item特征得分,包括:
item属性评分:如房源户型评分、交通评分、生活配套评分、房源发布时间等;用户行为评分:包括房源的CTR、点赞率、收藏率等作者评分:在一些行业,例如短视频领域,作者账号的权重也会被考虑在内。这些权重包括关注量、认证情况、平均完播量、平均点赞量、平均收藏量、平均转发量等等。通过进行加权计算,高得分的账号将会排名靠前。
通过评分,可以将高质量的item排在前列。不足的是,该方法通常使用离线计算,无法及时更新。同时,它也未能反映用户个性化特征,使得排序结果加重了马态效应,降低了长尾item的曝光量。
(2)LR(逻辑回归)
逻辑回归虽然名称中包含“回归”二字,但实际上它要解决的是分类问题。逻辑回归包含线性回归和非线性转换两个部分,通过将线性回归的输出通过一个非线性函数(通常为 Sigmoid 函数)进行转换,将其限制在 0 到 1 之间,以表示概率,将概率较大的item排在前列。
以房产搜索引擎为例,假设我们需要预测房源广告是否会被用户点击。每条房源广告只有两种可能的结果:被点击或未被点击,这是一个典型二分类问题。
我们可以考虑将两方面的特征作为输入:①与房源相关特征,如房源类型、面积、户型、建造年份、价格等。②此外,我们还可以考虑用户行为特征,如用户搜索历史、浏览历史、点击历史等。然后将CTR做为输出。
通过模型训练,我们可以将房源得分控制在0~1之间。同时,以0.5为阈值,将0.5分以下数据进行剔除,并按得分进行排序。从而提高房源的点击率
可以看到该模型引入了用户特征,既提高了房源点击率,也使搜索结果更加个性化。
(3)DSSM
DSSM(Deep Structured Semantic Models)又称为双塔模型,该方法是一种深度学习方法,可以用于学习query和Item之间的语义相似性。它通过神经网络模型将它们表示为连续的低维向量,使得具有相似语义的query和ietm在向量空间中靠得更近。DSSM 最初是为了解决 Web 搜索中的query-doc匹配问题而提出的,但它在其他自然语言处理任务,如推荐系统、文本匹配等方面也有广泛的应用。
在房产搜索引擎中,我们可以使用 DSSM 模型来匹配query和房源,以找到与用户query最为相似的房源。
我们可以通过以下步骤来实现训练:
①通过对用户query的分析(参考本文前文),将用户查询做query分析预处理后,可以使用CBOW(词袋模型)、 word2vec 等方法将query和房源结构化表示为向量。
②构建神经网络模型(如MLP),分别对query和房源信息进行编码。该神经网络将二者表示为连续的低维向量。通过训练,模型可以使query与相似的房源在向量空间中更为接近。
③训练好后,我们可以通过训练好的 DSSM 模型,对给定用户的查询和房源描述进行编码,计算它们在向量空间中的相似度。然后,根据相似度对房源进行排序,将最相关的房源推荐给用户。
使用DSSM可以匹配query与之关联最高的房源,可以保证粗排数据的质量。DSSM需要高质量的训练数据和大量计算资源。在工作场景中,可按需要进行处理。
例如,当用户的query=“chaoyang两居二手房”,若分析器处理结果为实体属性,如{Region:’朝阳’;House Type:’二居’; House Status:’二手房’}。此时我们可将其处理为业务向量,与结构化房源进行相似计算,按相似度进行排序,也可以取得不错的效果。因此,在实际应用中,根据具体场景和需求选择合适的方法是十分重要。
(4)个性化模型
个性化排序模型,又被称作“千人千面”。它基于用户特征和行为数据,对搜索结果实施个性化排序,以更好地满足用户需求。具体而言,该模型可根据用户的个人属性、行为属性、偏好属性等特征,对搜索结果进行个性化排序。
例如,对于一个搜索“北京市二居室”的用户来说,如果该用户历史多次搜索过三环内的房源,那么搜索结果中三环内的三居室房源将会被优先展示。这种排序策略可以满足用户个性化需求,提升用户体验。
(5)多目标模型
在房产搜索引擎中,排序不仅要考虑相关性,还要考虑多个业务目标,例如展示尽可能多的优质房源、提高用户点击率、收藏率、咨询率和呼叫率等。
利用深度学习,我们可以训练用户特征、物品特征、统计特征、场景特征作为输入,将点击率、收藏率、咨询率和呼叫率作为输出,最后计算四个值的加权平均数。我们可以将该平均数作为房源的目标评分,进行排序。该方法考虑了多个业务指标,会业务解释能力更强。
(6)实时特征排序
实时特征是指用户在搜索过程中产生的实时行为特征,例如搜索词、搜索时间、搜索历史等。这些实时特征可以用来调整排序策略,更好地满足用户需求。例如,如果用户在搜索“北京租房”后又搜索了“朝阳区”,那么在后续的搜索结果中,应该优先展示朝阳区的租房信息。
选取哪种方法需要考虑业务的特性和用户的需求,同时也需要平衡商业成本与ROI,从而选择最合适的排序方法。
1.2.2 精排
精排是指通过各种模型对数据做出精细化排序,提高搜索结果的质量。精排也可以提供个性化的结果,使搜索结果更加满足用户的个性化需求。
精排需要从粗排数据筛选出较高质量的数据。常规的排序模型LR、GBDT、FM等存在一些问题,如调整参数困难、过拟合(Overfitting)等问题。而使用深度学习或强化学习构建的模型,可以自动学习特征和调整参数,能够避免上述问题,提高排序模型的准确性。
(1)LTR
精排可以视为LTR(学习排序)问题。在搜索引擎中,学习排序通常分为三类:Pointwise、Pairwise 和 Listwise,下面将简单介绍这三种方法。
Pointwise:
Pointwise 将排序问题视为一个回归或分类问题。在这种方法中,我们对每个item单独处理,不考虑其他item的相关性。CTR方法就是一个典型的Pointwise方法,例如,在房产搜索中,为每个房源分配一个点击可能性得分,并根据上述得分对搜索结果进行排序。
Pairwise:
Pairwise将排序问题视为一个二分类问题,强调两个item之间的相对顺序。在这种方法中,我们会对每对item进行比较,判断哪个item与用户需求更相关。然后,利用二分类模型(如SVM、GBDT等)学习这些特征对之间的关系,从而预测item之间的局部优先顺序。
以房产搜索引擎为例,对于每对房源,我们可以计算它们的特征差(如价格差、面积差、户型差等),并根据这些特征差训练一个二分类模型,预测输出房源相对顺序。最后,根据预测结果对房源进行排序。
Listwise:
Listwise将整个搜索结果列表作为一个整体进行排序。在该方法中,更关注整个排序列表的质量,而不是单个item或item对之间的关系。通过训练模型,可以对所有item打分,根据item得分进行列表排序。Listwise方法通常使用NDCG作为评价函数,并基于此迭代排序模型。在房产搜索引擎中,通过输入无序房源列表,然后输出有序的房源列表。
该方法为代表的模型有Lamda 、Ada等。由于关注的是整个列表,该方法也通常更符合用户需求。但也存在数据标注困难、训练成本高等问题。
(2)其他方法
近年来,随着精细排序进入深度学习时代,排序深度学习模型逐渐出现多个细分方向。
通过组合和交叉原始特征,提取更高级别的特征表示,帮助模型更好地捕捉特征之间的非线性关系,如FM、FFM、DeepFM、DCN等;基于用户数据信息,捕捉用户兴趣和行为动态变化。代如DIN、DIEN、SIM等;同时优化多个目标,如点击率和转化率等。这可以帮助模型在多个指标上取得平衡。如ESSM、MMOE、SNR和PLE等。
限于行文空间,上述模型的细节不作展开讲解,我们将在后续专栏其他文章进行阐述。
1.2.3 重排
重排是利用各种方式对精排数据进行重新排序,以实现搜索结果多样化、运营内容混排、流量调控等目标。
多样性:通过展示多样化数据,可以降低内容、品类单一等问题,提供内容异质性;内容混排:如在房源列表中插入广告、视频/图文/直播内容、主题聚合等。流量调控:流量调控可以看作是对部分特殊item流量进行控制,避免缺乏曝光和过度曝光。如常见的新发布房源冷启动、曝光保量等问题。流量调控实际上有许多问题需要注意,有兴趣的读者可以查阅相关内容进行阅读。
共有 0 条评论