查看: 6766|回复: 1

淘宝类目及标题相关性分档计算方法(概率检索、BIM二元...

[复制链接]

82

主题

82

帖子

608

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
608
QQ
发表于 2015-5-18 10:48:59 | 显示全部楼层 |阅读模式
  男士 牛仔裤"来看看如何实际利用BM25公式计算相关性,首先我们假定BM25的第一个计算因子中,我们不知道哪些是相关文档,所以讲相关文档个数R和包含查询词的相关文档个数r设定为0,此时第一个计算因子退化成:
  

  因为查询中,分词后的查询词都只出现了一次,所以其对应的值都为1,其他数值假定如下:
  文档集合总数:N=100000
  文档集合中包含词语"男士"的文档个数n男士=1000
  文档集合中包含词语"牛仔裤"的文档个数n牛仔裤=100
  调节因子=1.2  200   b=0.75
  假定文档长度是平均文档长度的1.5倍,即1.2*(0.25+0.75*1.5)=1.65,将这些数值带入BM25计算公式,可以得出文档D和查询的如下相关性得分:
  

  这样,可对集合中所有的文档都按照上述方法进行计算,将最终的计算分值进行归纳总结,即可准确的预测出与"男士 牛仔裤"这个查询词最相关的宝贝,这些宝贝进行集合分类,最终即可得出该查询词的最优先展示类目!对于在不同区间的分值,淘宝一般会进行分档处理,比如[10,8]区间为第一优先类目,(8,7]区间为第二优先类目,依次进行分档,因此就有可能会出现在同一查询词的结果列表中会出现多个类目的情况。
  2、系统在已召回的宝贝中进行该关键词与宝贝标题的相关性进行计算
  向量空间模型(Vector Space Models)
  向量空间模型提出了将查询词和宝贝标题按照关键词的维度分别向量化,然后通过计算这两个向量间夹角的余弦值的方法得到标题与查询词的相关性得分。从而优先检索那些和查询词相关性大的标题,并能够对检索出的标题按照与查询词的相关性进行初步评估和排序,向量空间模型的计算方法如下图所示:
  

  在向量空间模型中,通过下面3个步骤进行检索:
  1、把原始查询和标题都看做文本,使用同样的向量化过程分别得到查询向量和文档向量。
  2、通过计算向量相似度的方法计算原始查询和文档相似度。
  3、按照与查询词的相似度从大到小给予评估。并返回给淘宝搜索系统。
  向量包含了两层含义,即长度和方向。长度用向量的模表示,向量的模(长度)的计算公式为向量的每个分量的平方和开根号。由于向量具有方向,所以方向上的差异(角度)被用来量化向量的相似程度。
  将各种不同的关键词看做是不同的维度,那么每个文档按照关键词进行向量化,得到向量中每一个分量可以理解为向量在各个关键词维度上的投影,这一点并不难理解,三维坐标上描述一个点采用的方式为(a,b,c)表示向量在X轴上的投影为a,在Y轴上的投影为b,在Z轴上的投影为c。这里只是把代表三位空间中3个轴转换为n个关键词的n维空间,这样每一个查询词和每一个文档都可以用这个n维空间来表示。
  通过一个例子来理解向量化过程,假定淘宝的汉语词库中只有"安卓"、"双系统"、"手机"这3个词(实际上,淘宝的词库中的汉语词汇数以万计),那么这3个词组成的向量空间模型就是我们熟悉的三维空间,如下图所示:
  

  对于"HTC G21 双系统 双卡双待移动电话安卓智能手机 包邮送豪礼"这个标题,将3个词的维度理解为三维空间的XYZ轴,通过计算每个词语的自信息和熵值,这样,"HTC G21 双系统 双卡双待移动电话安卓智能手机 包邮送豪礼"这个标题在词典中构成的向量空间内表示为向量(2,1,1)。这个向量的3个分量的意义可以理解为对3个轴的投影分别是2,1,1,同时注意这里的向量的方向性用箭头表示。
  我们还可以扩展到思维空间上理解,假定淘宝字典中还包括了"诺基亚"一词,这样,对于"HTC G21 双系统 双卡双待移动电话安卓智能手机 包邮送豪礼"这个标题进行向量化的结果就可能是(2,1,1,0),因为"诺基亚"在关键词维度上的投影为0。
  据统计,淘宝词库中常用的汉语词汇大约5000条,如果用这5000维的词向量空间表示这个标题,就是这样的形式(0,0…0,2,0…1,0,0…0,1,0)。其中标"0"的分量表示标题在这个词语上的投影为零(即自信息和熵值为0),该标题在向量中只有3个分量为有效非零值,课件再实际的计算中,向量通常都是十分稀疏的。
  事实上,向量中的每个分量同除以相同的数不会改变向量的方向,但是会改变向量的距离。因此在只考虑向量方向,而不考虑向量长度的情况下,没有必要使用词频作为向量的分量,这样反而引入了浮点运算的麻烦。
  向量间夹角余弦值的计算公式如下:
  

  其中a,b表示向量, 圆点表示向量的点乘,|a|表示向量的模,或者说是向量的长度。
  通过一个例子来理解这个计算过程。
  假定在一个7个关键词的向量空间下,一个查询词的向量化为a(0,0,2,0,1,0,1),一个标题的向量化为b(0,1,3,5,2,4,0),夹角余弦计算方法如下:
  

  这样查询词a和文档b的相似性就转化为0.44这个具体的数值上,使相关性成为可以量化的概念。
  淘宝搜索系统即可通过相关性的判断,对标题进行分档排序,对于相关性分值高的标题予以加分。
  在实际计算中,如果向量a表示查询向量,向量b表示文档向量,在计算查询向量和一组文档向量的相似度时,查询向量总是不变的,或者说对于每个文档向量来说,查询向量都是相同的。因此相似度计算中是否除以|a|,对将来进行的相似度排序没有影响,可以作为公共因子消去。方法如下:
  

  其中每个文档向量的模都可以预先计算并保存,而不需要每次查询都执行一次文档向量的模运算。这样,每次求相似度只需要一次向量点乘和除法计算即可。
  对于丙个高维稀疏向量(由于汉词汇众多,实际向量化后的向量维数高,非0值少),向量的表示和向量点乘的计算也是需要一定技巧。可以采用哈希表的方法快速找到两个向量相同分量的非0值进行计算,这里不再详细展开。
  郑重声明:本站"淘宝搜索技术文档"版块所有内容均来自淘宝搜索技术内参,并由薄言亲自归纳整理,旨在将复杂的技术文档转化成直白容易理解的文字,以此来帮助淘宝卖家更好的了解淘宝搜索系统,为此耗费了巨大的时间和精力,请大家尊重薄言的劳动,不要转载和盗用,即使需要转载,请务必取得授权,并注明出处!谢谢!
回复

使用道具 举报

0

主题

31

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2016-1-1 15:55:40 | 显示全部楼层
推荐一个好东东哦,农速通收集并整合了农产品批发市场物流需求信息和车辆信息,为商户和车主提供便捷的信息查询

服务,从而快速实现车货匹配。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表