System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于商品召回的算法优化制造技术_技高网

一种基于商品召回的算法优化制造技术

技术编号:40738321 阅读:2 留言:0更新日期:2024-03-25 19:59
本发明专利技术公开了一种基于商品召回的算法优化,包括包括基于堆排序算法、基于快速排序算法、Nth Element算法和Nth ElementV2算法,其特征在于:所述Nth ElementV2算法是基于Nth Element算法进一步优化后的算法,所述Nth Element算法是基于快速排序算法进一步优化后的算法,所述基于快速排序算法对n个元素进行排序,截取尾部k个元素,则为top k元素,时间复杂度为O(n*logn)。本发明专利技术通过改进已有算法流程,进一步降低在多路商品召回进行融合时所花的耗时,从而为整个个性化推荐系统减少耗时提供支持,进一步提升召回速度,最终为用户带来更好的网上购物体验,且该算法相对于现有快排算法和堆排序算法,在时间上有很大缩减。

【技术实现步骤摘要】

本专利技术涉及it与软件开发,特别是一种基于商品召回的算法优化


技术介绍

1、在电商个性化推荐领域中,经常会遇到推荐商品召回问题。例如在对多路商品召回之后进行融合,各个商品的权重是根据其他通道权重加权计算而来,而最终需要从n个商品中选取k个分值最高的商品返回,业界常见使用到的排序算法包括交换排序、选择排序、堆排序、归并排序、插入排序、快速排序等算法。

2、基于上述几种算法,商品召回融合中通常会选择使用堆排序和快速排序,但是当商品召回数量很大时,堆排序和快速排序还存在进一步的优化空间,现有算法流程难以进行改进,以至于多路商品召回进行融合时所花的耗时较长,从而整个个性化推荐系统减少耗时难以得到有效支持,召回速度提升进程缓慢,从而导致用户的网上购物体验相应受到了一定程度的影响。

3、基于此,本专利技术提出一种基于商品召回的算法优化来解决上述问题。


技术实现思路

1、本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本专利技术的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。

2、鉴于上述和/或现有的商品召回算法设计中存在的问题,提出了本专利技术。

3、因此,本专利技术其中的一个目的是提供一种基于商品召回的算法优化,其通过改进已有算法流程,进一步降低在多路商品召回进行融合时所花的耗时,从而为整个个性化推荐系统减少耗时提供支持,进一步提升召回速度,最终为用户带来更好的网上购物体验。

4、为达到上述效果,本专利技术提供如下技术方案:一种基于商品召回的算法优化,包括基于堆排序算法、基于快速排序算法、nth element算法和nth elementv2算法,其特征在于:所述nth elementv2算法是基于nth element算法进一步优化后的算法,所述nthelement算法是基于快速排序算法进一步优化后的算法,所述基于快速排序算法对n个元素进行排序,截取尾部k个元素,则为top k元素,时间复杂度为o(n*logn),所述基于堆排序算法为基于小根堆实现,堆的size为k,小于堆顶元素skip,大于堆顶元素触发堆调整,最后堆内元素则为top k元素,时间复杂度,主要在于堆初始化o(k),堆调整o(n*logk)。

5、作为本专利技术的一种优选方案,其中:所述nth element算法整体基于快速排序算法,但当pivot==len-k则停止递归提前返回,此时[pivot,high]元素为top k元素,时间复杂度为o(n)。

6、作为本专利技术的一种优选方案,其中:所述nth element v2算法在nth element基础上,针对distance=high-low+1的不同距离,内嵌不同的高效排序算法(例如交换、选择排序等),时间复杂度为o(n)。

7、作为本专利技术的一种优选方案,其中:所述基于快速排序算法的排序分类包括:插入排序、选择排序、交换排序和归并排序;

8、作为本专利技术的一种优选方案,其中:所述插入排序还包括:直接插入排序、二分法插入排序和希尔排序;

9、作为本专利技术的一种优选方案,其中:所述选择排序还包括:直接选择排序和堆排序,所述交换排序还包括:冒泡排序和快速排序;

10、上述多种排序的时间与空间复杂度对比为:

11、

12、

13、作为本专利技术的一种优选方案,其中:算法实现包括以下步骤:

14、s1:基于堆排序算法的实现,优先队列中的元素被赋予优先级,top k也可以体现在这优先级上,所以也可以用优先队列算法来实现,所述优先队列,是基于最小堆实现;

15、s2:基于快速排序算法的实现,取top k元素,其实就是要把两部分元素分开,本质是也是分治的思想,与同数量级o(n*logn)的排序算法中最快的快速排序算法不谋而合;

16、s3:基于快排的优化即nth element算法的实现,基于快速排序的算法作调整,当pivot==len-k,就提前结束,这样就能找到top k,由此得到优化后的nth element算法;

17、s4:基于nth element算法的进一步优化即nth elementv2算法的实现,一种混合式的排序算法,针对不同的情况,采用不同的算法,集各家之所长,且快排当递归层次加深时,会导致程序性能恶化,为避免过度分片递归,程序实现需要在算法设计及代码运行上取得平衡。

18、作为本专利技术的一种优选方案,其中:所述s1中算法的实现思路为基于最小堆的特性:根节点不会比子节点的值大,当堆按k个元素构建完成后,只有大于根节点的元素才触发调整堆,否则丢弃,这样就能保证堆中的元素是top k,且无须保证内部元素严格有序,时间主要消耗在堆顶元素比较及堆调整。

19、作为本专利技术的一种优选方案,其中:所述s2中算法的实现思路为整个列表使用快速排序算法重排完,列表变为有序的,在有序列表截取尾部元素,就是top k的元素。

20、作为本专利技术的一种优选方案,其中:所述s3中算法的实现思路为pivot==len-k,其中len-k为数组下标为数组长度减k,pivot左边元素均小于pivot,pivot右边元素均大于pivot,pivot右边的element即为nth element,也就是top k的元素,算法实现核心代码为:

21、int pivot=partition(items,low,high);

22、if(pivot==k){

23、return items;

24、}

25、。

26、作为本专利技术的一种优选方案,其中:所述s4中算法的实现思路为在快速排序基础上,针对每次切片后的段,计算段长也就是高低位的距离,叫distance,其中distance=high-low+1,distance小于某个阈值时,采用不同的算法,选取当前情况最优算法,算法实现的核心代码为:

27、//使用混合排序,不同数据规模采取不同排序策略,综合各种排序算法之所长

28、void nthelementv2(rankitem[]items,intlow,inthigh,intk){

29、intdistance=high-low+1;

30、switch(distance){

31、case 7:

32、case 6:

33、case 5:

34、case 4:

35、selectionsort(items,low,high);//距离小于7时,用选择排序,7为测试最优值break;

36、case 3:

37、//两两交换排序

38、intx=low,y=low+1,z=low+2;...

【技术保护点】

1.一种基于商品召回的算法优化,包括基于堆排序算法、基于快速排序算法、NthElement算法和Nth ElementV2算法,其特征在于:所述Nth ElementV2算法是基于NthElement算法进一步优化后的算法,所述Nth Element算法是基于快速排序算法进一步优化后的算法,所述基于快速排序算法对n个元素进行排序,截取尾部k个元素,则为top k元素,时间复杂度为O(n*logn),所述基于堆排序算法为基于小根堆实现,堆的size为k,小于堆顶元素skip,大于堆顶元素触发堆调整,最后堆内元素则为top k元素,时间复杂度,主要在于堆初始化O(k),堆调整O(n*logk)。

2.如权利要求1所述的基于商品召回的算法优化,其特征在于:所述Nth Element算法整体基于快速排序算法,但当pivot==len-k则停止递归提前返回,此时[pivot,high]元素为top k元素,时间复杂度为O(n)。

3.如权利要求2所述的基于商品召回的算法优化,其特征在于:所述Nth ElementV2算法在Nth Element基础上,针对distance=high-low+1的不同距离,内嵌不同的高效排序算法(例如交换、选择排序等),时间复杂度为O(n)。

4.如权利要求3所述的基于商品召回的算法优化,其特征在于:所述基于快速排序算法的排序分类包括:插入排序、选择排序、交换排序和归并排序。

5.如权利要求4所述的基于商品召回的算法优化,其特征在于:所述插入排序还包括:直接插入排序、二分法插入排序和希尔排序。

6.如权利要求5所述的基于商品召回的算法优化,其特征在于:所述选择排序还包括:直接选择排序和堆排序,所述交换排序还包括:冒泡排序和快速排序。

7.如权利要求6所述的基于商品召回的算法优化,其算法实现包括以下步骤:

8.如权利要求7所述的基于商品召回的算法优化,其特征在于:所述S1中算法的实现思路为基于最小堆的特性:根节点不会比子节点的值大,当堆按k个元素构建完成后,只有大于根节点的元素才触发调整堆,否则丢弃,这样就能保证堆中的元素是top k,且无须保证内部元素严格有序,时间主要消耗在堆顶元素比较及堆调整。

9.如权利要求8所述的基于商品召回的算法优化,其特征在于:所述S2中算法的实现思路为整个列表使用快速排序算法重排完,列表变为有序的,在有序列表截取尾部元素,就是top k的元素。

10.如权利要求9所述的基于商品召回的算法优化,其特征在于:所述S3中算法的实现思路为pivot==len-k,其中len-k为数组下标为数组长度减k,pivot左边元素均小于pivot,pivot右边元素均大于pivot,pivot右边的element即为nth element,也就是top k的元素,算法实现核心代码为:

11.如权利要求10所述的基于商品召回的算法优化,其特征在于:所述S4中算法的实现思路为在快速排序基础上,针对每次切片后的段,计算段长也就是高低位的距离,叫distance,其中distance=high-low+1,distance小于某个阈值时,采用不同的算法,选取当前情况最优算法,算法实现的核心代码为:

...

【技术特征摘要】

1.一种基于商品召回的算法优化,包括基于堆排序算法、基于快速排序算法、nthelement算法和nth elementv2算法,其特征在于:所述nth elementv2算法是基于nthelement算法进一步优化后的算法,所述nth element算法是基于快速排序算法进一步优化后的算法,所述基于快速排序算法对n个元素进行排序,截取尾部k个元素,则为top k元素,时间复杂度为o(n*logn),所述基于堆排序算法为基于小根堆实现,堆的size为k,小于堆顶元素skip,大于堆顶元素触发堆调整,最后堆内元素则为top k元素,时间复杂度,主要在于堆初始化o(k),堆调整o(n*logk)。

2.如权利要求1所述的基于商品召回的算法优化,其特征在于:所述nth element算法整体基于快速排序算法,但当pivot==len-k则停止递归提前返回,此时[pivot,high]元素为top k元素,时间复杂度为o(n)。

3.如权利要求2所述的基于商品召回的算法优化,其特征在于:所述nth elementv2算法在nth element基础上,针对distance=high-low+1的不同距离,内嵌不同的高效排序算法(例如交换、选择排序等),时间复杂度为o(n)。

4.如权利要求3所述的基于商品召回的算法优化,其特征在于:所述基于快速排序算法的排序分类包括:插入排序、选择排序、交换排序和归并排序。

5.如权利要求4所述的基于商品召回的算法优化,其特征在于:所述插入排序还包括:直接插入排序、二分法插入排序和希尔排序。

【专利技术属性】
技术研发人员:宋剑
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1