推荐系统之常用的召回(match)算法

本文深入探讨了推荐系统的召回算法,包括协同过滤方法中的SLIM和FISM,ANN召回算法如IVFPQ,以及LoglikelihoodRatio、Embedding表示、皮尔逊相关系数等。文章还提到了User-CF和Item-CF的比较,并介绍了贝叶斯决策定理在关联规则召回中的应用。
摘要由CSDN通过智能技术生成

 推荐系统传统召回是怎么实现热门item的打压? - 知乎基础召回可以粗略地分为两大类,一种是统计类的,比如ItemCF, UserCF,都是基于对历史大数据的统计,找到…https://www.zhihu.com/question/426543628/answer/1631702878

 MIND多兴趣召回实战(一)今天想和大家聊聊我们在MIND多兴趣召回上面的一些实战经验。https://mp.weixin.qq.com/s?__biz=MzIwNTE0NTgyMQ==&mid=2247484084&idx=1&sn=e6c7827f3d28f0135482d5c42d5a5bc6&chksm=97341106a043981046032e54d03532da9b628820d158a3577476e6cc24510e74a7bd9ca84547#rd

推荐系统技术演进趋势:召回篇推荐系统综述带你一览行业现状https://mp.weixin.qq.com/s?__biz=MzIxMzkwNjM2NQ%3D%3D&chksm=97ad110da0da981baba6d6a9f0a282291386c9d8565c36f0cead74818ae42d15e1aff2617296&idx=1&mid=2247497695&scene=21&sn=b9af7443a3a6bf1277cba6fb22fadc26#wechat_redirect

【总结】推荐系统——召回篇【1】 - 知乎背景新年开工第一周,孟子曰“兵马未动,粮草先行”,最近总结了一下推荐算法的相关知识,也算是为今年开个头。将推荐系统分成四个部分,召回、粗排、精排、重排,本文是第一个部分,主要讲讲推荐系统的召回。内容…https://zhuanlan.zhihu.com/p/351716045   

推荐召回-Swing - 知乎基于图结构的实时推荐算法 Swing,能够计算 item-item 之间的相似性。这种方法的一个直觉来源于,如果多个 user 在点击了 i 的同时,都只共同点了某一个其他的 j ,那么 i 和 j 一定是强关联的,这种未知的强关联…https://zhuanlan.zhihu.com/p/383346471

贝叶斯lift关联规则召回:关联规则X->Y的提升度(lift),又称为兴趣度(interest),即购买X对购买Y的作用

【机器学习】(5):贝叶斯决策定理_windhawk_fly的博客-CSDN博客上一节我们介绍了监督学习的整体框架和基本的要点,按照总分的思考方式,接下来我们要分别介绍相应的一些算法了。今天这节我们来看看贝叶斯定理在机器学习中的应用。本章要点如下:1. 贝叶斯定理;2. 分类中的贝叶斯定理;3. 风险和效用度量;4. 关联规则;一、贝叶斯定理      贝叶斯定理来源于统计学中的条件概率,它可以揭示两个变量间的对应关系,基本公式如下: https://blog.csdn.net/windhawk_fly/article/details/45028017

揭开Top-N 经典算法 SLIM 和 FISM 之谜(属于协同过滤方法中的一种)

SLIM[1]是Sparse Linear Model简称,即稀疏线性模型,该方法是基于物品相似度的推广形式,而且效果很好,如下面公式

好的,我来回答你的问题。 Python代码实现自然语言用最大匹配算法设计分词程序实现对文档分词的步骤如下: 1.读取文档。 2.将文档中的文本转换成 Unicode 编码。 3.设置最大匹配算法中的最大词长。 4.从文本的第一个字符开始,匹配文本中最长的词。 5.如果未匹配到任何词,则向后移动一个字符。 6.输出匹配到的词。 7.重复 4-6 步,直到文本全部匹配完毕。 代码实现如下: ``` import re import sys # 利用最大匹配算法实现分词 def max_matching(text, max_len, words): words_len = [len(word) for word in words] ans = [] start = 0 while start < len(text): match_len = 0 for l in range(max_len, 0, -1): sub_text = text[start:start+l] if sub_text in words: match_len = l break if match_len == 0: ans.append(text[start]) start += 1 else: ans.append(text[start:start+match_len]) start += match_len return ans # 计算召回率 def recall(ans_list, test_list): num = 0 for ans in ans_list: if ans in test_list: num += 1 return num / len(test_list) if __name__ == "__main__": # 读取分词文件 with open("msr_train.txt", encoding="utf-8") as f: data = f.readlines() # 将各个标点分隔开 data = [" ".join(re.findall("[\w']+|[!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+", line)) for line in data] # 构建词典 words = set() for line in data: words.update(line.split()) # 读取测试文件 with open(sys.argv[1], encoding="utf-8") as f: test_data = f.readlines() # 分词 test_ans = [] for line in test_data: ans = max_matching(line.strip(), 6, words) test_ans.extend(ans) # 计算召回率 ans = [line.split()[0] for line in data] ans_recall = recall(ans, test_ans) print("召回率:", ans_recall) ``` 其中,`msr_train.txt` 是已经分好词的训练集,`sys.argv[1]` 是待分词的测试文本。运行以上代码即可得到分好词的文本以及分词召回率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值