
RS/召回层
文章平均质量分 61
推荐系统/RS-召回层
u013250861
这个作者很懒,什么都没留下…
展开
-
Que2Search(上):FaceBook新一代query搜索召回模型分享
笔者一直强调,看一篇paper或者一个新模型,最有价值的东西并不是模型的结构或技术,而是作者所遇到的场景、问题和需求。模型和技术只是作者应对这些问题所给出的方案,知晓问题才能知晓如何解决问题,这些问题很有可能你在业务中也遇到了只是你甚至都没发现它们的存在。Que2Search结构图我们先看看Que2Search的整体架构,仍然是经典的双塔结构,query塔侧的输入信息相对较少,结构也比较简单。作者主要在document塔侧下了很大的功夫,这些都是为了解决2.3中提到的商品理解的问题。原创 2025-02-16 16:40:53 · 1047 阅读 · 0 评论 -
Facebook的多任务多模态向量召回模型Que2Search
对于一个搜索系统来说,通常采用的召回都是基于倒排索引的召回,简单来说就是需要对item侧建立倒排索引,在检索的过程中,对query分词,根据分词结果去倒排索引中查找词匹配的item,简单的流程如下图所示:在传统的检索过程中,通常存在语义上的问题,比如Query为“连衣裙”,此时根据词匹配就检索不到核心词为“长裙”的item,为了解决这样的问题,需要对Query进行扩展,将其扩展成相似的query,以此来实现语义匹配的问题。当然,词匹配的方式的一大优势就是相关性解决的比较好。原创 2024-03-06 01:21:57 · 520 阅读 · 0 评论 -
数据关联规则:概述【频繁项集评估标准:支持度(support)、置信度(confidence)、提升度(lift)】【算法:Aprior、FP-Tree、GSP、CBA】
关联规则中的数据集结构一般如下所示:{ 牛奶 } 是 1-项集{ 牛奶,果冻 } 是 2-项集;{ 啤酒,面包,牛奶 } 是 3-项集X和Y是项集X称为规则前项Y称为规则后项事务:即样本,一个样本称为一个事务。事务仅包含其涉及到的项目,而不包含项目的具体信息在超级市场的关联规则挖掘问题中事务是顾客一次购物所购买的商品,但事务中并不包括这些商品的具体信息,如商品的数量、价格等。原创 2023-01-18 17:07:43 · 17067 阅读 · 1 评论 -
推荐系统-召回层-算法-近似最近邻搜索算法(ANN):LSH【高维稀疏向量相似查找】【算法实现:MinHash】
我们在推荐相似文章的时候,其实并不会用到所有文章,也就是TOPK个相似文章会被推荐出去,经过排序之后的结果。如果我们的设备资源、时间也真充足的话,可以进行某频道全量所有的两两相似度计算。但是事实当文章量达到千万级别或者上亿级别,特征也会上亿级别,计算量就会很大。一下有两种类型解决方案每个频道的文章先进行聚类可以对每个频道内N个文章聚成M类别,那么类别数越多每个类别的文章数量越少。如下pyspark代码。原创 2023-05-29 23:41:33 · 620 阅读 · 1 评论 -
召回层-ANN(Approximate Nearest Neighbor)算法(二):HNSW算法【实现库:faiss、hnswlib、nmslib】【低延迟、高召回率】【用于在线场景】
HNSW(Hierarchical Navigable Small Word)算法算是目前推荐领域里面常用的ANN(Approximate Nearest Neighbor)算法了。其目的就是在极大量的候选集当中如何快速地找到一个query最近邻的k kk个元素。要找到一个query的k个最近邻元素,一个朴素的思想就是我去计算这个query和所有的总量N NN个候选元素的距离,然后选择其中的前k kk个最小元素,这个经典算法。原创 2023-02-11 23:55:20 · 3344 阅读 · 0 评论 -
数据关联规则:FpGrowth算法【FpTree】【通过构造一个树结构来压缩数据记录,使得挖掘频繁项集只需要扫描两次数据记录,而且该算法不需要生成候选集合,所以效率会比较高】
这颗条件树已经是单一路径,路径上的所有组合即为条件频繁集:{{},{牛奶},{面包},{牛奶,面包}},加上{尿布}后,又得到一组频繁项集{{尿布},{牛奶,尿布},{面包,尿布},{牛奶,面包,尿布}},这组频繁项集一定包含一个相同的后缀:{尿布},并且不包含{啤酒},因此这一组频繁项集与上一组不会重复。可以看到,鸡蛋和可乐没有出现在上表中,因为可乐只出现2次,鸡蛋只出现1次,小于最小支持度,因此不是频繁项集,根据Apriori定理,非频繁项集的超集一定不是频繁项集,所以可乐和鸡蛋不需要再考虑。原创 2023-01-18 17:55:44 · 2321 阅读 · 2 评论 -
关联规则:Apriori算法【“频繁项”集挖掘算法】【迭代法:①搜出候选1项集,剪枝得频繁1项集;②对剩下频繁1项集进行连接得2项集,剪枝得频繁2项集..】【剪枝:根据设置的支持度滤掉小于该值的项集】
关联规则中的数据集结构一般如下所示:{ 牛奶 } 是 1-项集{ 牛奶,果冻 } 是 2-项集;{ 啤酒,面包,牛奶 } 是 3-项集X和Y是项集X称为规则前项Y称为规则后项事务:即样本,一个样本称为一个事务。事务仅包含其涉及到的项目,而不包含项目的具体信息在超级市场的关联规则挖掘问题中事务是顾客一次购物所购买的商品,但事务中并不包括这些商品的具体信息,如商品的数量、价格等# 自定义一份数据集data = {print(df)原创 2023-01-17 22:16:11 · 7079 阅读 · 0 评论 -
海量数据相似数据查找方法(ANN):【高维稀疏向量的相似查找——MinHash, LSH, SimHash】【稠密向量的相似查找——Faiss、Annoy、ScaNN、Hnswlib】
主要分为和两大方向。原创 2023-02-11 19:22:57 · 1267 阅读 · 0 评论 -
自然语言处理(NLP)-第三方库(工具包):Faiss【向量最邻近检索工具】【为稠密向量提供高效相似度搜索】【多种索引构建方式,可根据硬件资源、数据量选择合适方式】【支持十亿级别向量的搜索】
Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库。它包含多种搜索任意大小向量集(备注:向量集大小由RAM内存决定)的算法,以及用于算法评估和参数调整的支持代码。Faiss用C++编写,并提供与Numpy完美衔接的Python接口。除此以外,对一些核心算法提供了GPU实现。相关介绍参考《Faiss:Facebook 开源的相似性搜索类库》参考资料:Faiss流程与原理分析 ......原创 2022-02-22 00:13:51 · 1217 阅读 · 1 评论 -
召回层-基于item(内容)的召回
【代码】召回层-基于item的召回。原创 2023-02-09 23:32:55 · 190 阅读 · 0 评论 -
召回层-item与item之间相似度矩阵计算方式:①基于“共有用户”的相似性计算(考虑多种因素的权重计算最终的文章之间的相似度);②基于item之间向量相似度计算(物品的向量可通过各种方式预先计算出)
【代码】召回层-item与item之间相似度矩阵计算方式:①基于“共有用户”的相似性计算(考虑多种因素的权重计算最终的文章之间的相似度);②基于item之间向量相似性计算(物品的向量可通过各种方式预先计算出)原创 2023-02-09 22:39:21 · 359 阅读 · 0 评论 -
推荐系统-召回阶段-EGES模型【Enhanced Graph Embedding with Side Information】
EGES算法实在论文《Billion-Commodity Embedding for E-commerce Recommendation in Alibaba》,主要用于商品推荐中。这篇论文的一作是阿里巴巴团队的,实验部分说该算法应用在了淘宝中。本人最近刚入职某公司,从事推荐算法的工作,因此后续会分享一下推荐相关的算法或者心得。1. 扩展性。现有的大部分推荐系统可以运用在一百万的用户和商品中,但无法运用在拥有十亿的用户和二十亿商品的淘宝中。2. 稀疏性。原创 2023-02-07 21:47:13 · 1166 阅读 · 0 评论 -
推荐系统-召回层-第三方库:DeepMatch【提供若干主流深度召回匹配算法】
一个开源项目DeepMatch,提供了若干的实现,并支持。非常适合同学们进行快速实验和学习,解放算法工程师的双手!原创 2023-01-21 09:01:57 · 425 阅读 · 0 评论 -
召回层-ANN(Approximate Nearest Neighbor)算法(一):LSH算法(局部敏感哈希)【包括:SimHash算法】【用于离线场景、对算法延迟要求不高的场景】
在许多场景中,都会遇到海量数据相似度计算的问题,如:电商场景中根据商品embedding计算相似度,取出相似的topk个商品。然而,这种计算相似度需要笛卡尔积的时间复杂度,在数据量较小时,时间还可以接受,但是当数据量达到几十万甚至几百几千万时,是没有办法接受的,这个时候就需要想其他办法。通过上面的表格,item1、item2和超平面s1、s2、s3的相似度(向量点积)大于0,对应表格中的值1;同理,item3和超平面s1、s2、s3的相似度小于0,对应表格中的值0;原创 2023-01-10 21:02:25 · 728 阅读 · 0 评论 -
推荐系统-召回-概述(一):内容为王
大家在访问京东或者淘宝等电商系统时,会发现当看了某件商品或者买了某件商品时,电商系统会马上推荐很多相似的商品;当在百度上搜索某个新闻时,信息流马上推荐类似的新闻,这些是怎么做到的呢?这就涉及到我们今天要讲解的基于内容的召回。原创 2022-12-01 12:09:22 · 1918 阅读 · 0 评论 -
推荐系统-召回-概述(二):协同过滤【永恒的经典】
协同过滤所谓“协同”,是指用户之间或物品之间的相似性,“过滤”则是指根据相似性,从大量物品中进行筛选的过程。这里说的相似性,并不等同于我们上一章中所讲的内容在语义上的相似。协同过滤认为,同样一群人喜欢的物品是相似的,反过来,喜欢同样物品的人,也是彼此相似的,它所蕴含的哲学思想便是“物以类聚,人以群分”。协同过滤有两种形式:基于物品的协同过滤(Item-based CF)和基于用户的协同过滤(User-based CF)。原创 2022-12-01 12:09:05 · 624 阅读 · 0 评论 -
推荐系统-召回-概述(三):向量化
在本文之前的几篇文章里,曾经提及对用户或物品的embedding,实际上,embedding就是将实体的自然表达变化成向量化表达的方法。将实体(用户、物品、图像等)表示为向量有什么用处呢?因为基于文字或者图片表达的实体,并不能够被计算机理解,因此它们彼此之间无法进行相互比较,而一旦转换成计算机可理解的向量,则能够计算它们彼此的距离,从而可以对他们进行相似度的计算了。原创 2022-12-01 12:09:23 · 1536 阅读 · 0 评论 -
推荐系统-召回-概述(四):热门推荐
无论个性化多么重要,热门推荐都是里不可或缺的一部分。其一、根据“二八定律”,电商系统中的20%的头部内容被80%的流量消费,因此,在产品早期,仅仅推荐热门内容,实施成本不高,且效果也会不错;其二,对于冷启动用户,由于较难获得用户兴趣信息,实施个性化推荐难度较高,热门内容池此时就会成为不错的选项,通过曝光给用户热门内容,可以捕获用户兴趣/非兴趣信息,以便进一步对用户进行个性化推荐;此外,热榜本身就是面向用户的产品,它提供了多样化兴趣,可以提升用户的活跃度。原创 2022-12-01 12:08:55 · 876 阅读 · 0 评论 -
推荐系统-召回-概述(五):一切为了业务
在前面几篇文章里,我们介绍了主流的召回模型和算法。但算法更多地是从个性化推荐的角度来解决问题。许多业务上的问题,如安全问题、商业价值、用户体验、流量扶持等种种业务需求,仅仅基于模型,是无法得到完美解决的,它们需要人的参与和决策。仅从召回系统来说,召回池中必然会存在人工策略的部分,用于获得优质的用户体验,以及商业目标的实现。如果把模型召回比喻成经济学中的市场机制,通过自由竞争来高效地完成资源交换,人工策略则属于宏观调控机制,通过人工调节,来引导市场向着健康成熟方向发展。原创 2022-12-01 12:08:47 · 738 阅读 · 0 评论 -
推荐系统-召回层:user-item双塔架构
双塔模型被广泛应用于推荐系统的召回和粗排阶段,应用过程中也存在一定区别:(1)负样本构造召回:正样本是真实正例,负样本通过采样(全局采样、batch内采样等)得到粗排:要接近精排,样本与精排一致,正负样本都是从用户的真实正负例中选取召回是从海量候选集中,要把用户可能感兴趣的或完全不相关的item区分开来,所以召回在线上所面对的数据环境,就是鱼龙混杂、良莠不齐,负样本除了曝光未点击的真实负例外,也要包含未曝光的样本,目的就是让训练样本尽量符合线上真实分布,让模型“见见世面“。(2)线上预测召回:把ite原创 2022-06-04 10:25:52 · 654 阅读 · 0 评论 -
推荐系统-离线召回:u2tag2i、icf
推荐系统-离线召回u2tag2i、icf。原创 2022-07-27 20:31:16 · 415 阅读 · 0 评论 -
推荐系统-算法:swing 算法【计算用户与内容的关联程度】
推荐系统-算法swing算法【计算用户与内容的关联程度】原创 2022-07-27 20:35:26 · 385 阅读 · 0 评论 -
推荐系统-召回层-算法:近似最近邻搜索算法(ANN)【高维稀疏向量相似查找:LSH(SimHash/MinHash)用于离线场景】【稠密向量相似查找:Faiss(HNSW)、Annoy、ScaNN】
最朴素的想法就是,每次来了一个新的查询数据(query),都遍历一遍数据候选集(dataset)里面的所有数据,计算出query与dataset中所有元素的相似度或者距离,然后精准地返回TopK相似的数据即可。在搜索的业务场景下,基于一个现有的数据候选集(dataset),需要对新来的一个或者多个数据进行查询(query),返回在数据候选集中与该查询最相似的TopK数据。但是当数据候选集特别大的时候,遍历一遍数据候选集里面的所有元素就会耗费过多的时间,其时间复杂度是。.........原创 2022-07-30 09:57:56 · 2651 阅读 · 0 评论 -
推荐系统-召回阶段:协同过滤(CF)【基于近邻的协同过滤:UserCF、ItemCF】【基于模型的协同过滤:矩阵分解(MF)ModelCF】【仅能利用用户物品交互信息;无法引入用户、商品具体特征信息】
基于近邻的协同过滤是在近邻的基础上,根据用户或物品的相似度选出与目标用户最相似的用户的评分对未评分的物品进行评分预测,如两个用户,他们有相似的喜好物品,两人都给出评分时,评分的数值应该是非常相近的,他们之间的相似度可以通过算法计算出来,根据相似度为物品预测评分。通过用户与用户之间或物品与物品之间的存在的关联性作出预测,好处是易于实现,可以解释为何推荐,但是基于近邻的方法不能处理评分矩阵稀疏的情况,若不能通过评分信息找到相似用户或物品,则不能准确的预测评分。............原创 2022-07-31 14:20:36 · 432 阅读 · 0 评论 -
推荐系统-召回阶段-双塔模型-2013:SimNet【Embedding(语义向量)召回】【百度】
相同的词组成的短语或句子,不同的语序可表达不同的语义,例如「深度学习」和「学习深度」。例如网页搜索可抽象为网页同用户搜索Query的一个相关性匹配问题,自动问答可抽象为候选答案与问题的满足度匹配问题,文本去重可以抽象为文本与文本的相似度匹配问题。传统的文本匹配技术如信息检索中的向量空间模型VSM、BM25等算法,主要解决词汇层面的匹配问题,或者说词汇层面的相似度问题。这表明,对文本匹配任务,不能只停留在字面匹配层面,更需要语义层面的匹配,不仅是相似度匹配,还包括更广泛意义上的匹配。......原创 2022-03-03 01:07:29 · 643 阅读 · 0 评论 -
推荐系统-召回阶段-双塔模型-2013:DSSM【通过双塔模型计算出User Embedding与Item Embedding,然后利用两者的相似度计算进行召回,可利用faiss进行加速计算】
user侧和item侧特征无法交叉,有一些工作尝试了一些解决方案,比如新浪微博张俊林尝试了SENet,美团发表了论文ADualAugmentedTwo-towerModelforOnlineLarge-scaleRecommendation我们自己在实践中发现,DSSM召回的内容单一性比较严重,大多数都是同类别的,不知道有没有其他小伙伴遇到,可以贴出解决方案。推荐系统(十七)双塔模型httpshttps。..................原创 2022-07-31 10:10:42 · 508 阅读 · 0 评论 -
推荐系统-召回阶段-双塔模型-2016:YoutubeDNN【双塔模型是召回、粗排阶段的首选,能够在线预估时满足低延时求】【无法考虑user和item之间的特征交叉,影响模型效果,只能做召回或粗排】
推荐的流程召回模型的本质负采样的注意事项为什么召回要分成离线training和在线serving?为什么在线serving可以用Faiss这样的工具来代替?原创 2023-02-06 20:46:11 · 1217 阅读 · 0 评论 -
推荐系统-召回层-召回模型:【协同过滤类:ItemCF、UserCF】【Embedding类:Dssm/双塔/word2vec】【图类召回算法:Deepwalk、EGES】
推荐系统-召回层-召回模型:协同过滤类【ItemCF/UserCF】【Embedding类:Dssm/双塔/word2vec】【图类召回算法:Deepwalk、EGES】原创 2022-08-02 22:24:26 · 405 阅读 · 0 评论 -
推荐系统-召回层-召回算法:Item2vec、Node2vec
运用 Spark 实现经典的 Embedding 方法 Item2vec 和 Deep Walk(使用PySpark MLlib)。Word2vec模型一般分为两种:Skip-gram 模型(中心词决定了它的相邻词),而CBOW相反(是相邻词决定当前的词)。在 Deep Walk 的实现中,着重理解,生成物品间的转移概率矩阵的方法,以及通过随机游走生成训练样本过程。Word2vec的样本生成方法:通过滑动窗口,截取词组,把词组内的词转换成训练样本。.........原创 2022-08-03 22:41:35 · 828 阅读 · 0 评论 -
推荐系统:召回层(使用多个召回策略,5-8个策略)【快速筛选出用户喜欢的物品】【单策略/单路召回、多路召回】【Item2vec、Node2vec】【LSH(局部敏感哈希)算法(开源实现:Faiss)】
推荐系统:召回层(使用多个召回策略,5-8个策略)【快速筛选出用户喜欢的物品】【单策略/单路召回、多路召回】【Item2vec】【Node2vec】原创 2022-07-29 23:17:36 · 288 阅读 · 0 评论 -
推荐系统-模型(一):召回模型【协同过滤类: ItemCF/UserCF】【Embedding类】【Dssm/双塔/word2vec】【图类召回算法 (Deepwalk、EGES)】
推荐系统-召回模型【协同过滤类ItemCF/UserCF】【Embedding类】【Dssm/双塔/word2vec】【图类召回算法(Deepwalk、EGES)】原创 2022-07-27 20:33:11 · 342 阅读 · 0 评论