推荐系统是属于信息过滤领域的一个范畴,目标在预测用户对某个项目(例如产品、电影、歌曲等)的“评分”或“偏好”。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/78933668
最近在做一个海量图片检索的项目,可以简单的理解为“以图搜图”,这个功能一开始是搜索引擎带火的,但是后来在电商领域变得非常实用。在制作这个图片检索的项目前,笔者搜索了一些资料,如今项目临近结尾,便在这里做一些简单的分享。本文先介绍图像检索最基础的一部分知识——利用 Python 检测图像相似度。
在推荐系统中,我们经常谈到「相似度度量」这一概念。为什么?因为在推荐系统中,基于内容的过滤算法和协同过滤算法都使用了某种特定的相似度度量来确定两个用户或商品的向量之间的相等程度。所以总的来说,相似度度量不仅仅是向量之间的距离。
近邻推荐之基于用户的协同过滤 以及 近邻推荐之基于物品的协同过滤 讲解的都是关于如何使用协同过滤来生成推荐结果,无论是基于用户的协同过滤还是基于物品的协同过滤,相似度的计算都是必不可少的,那么都有哪些计算相似度的方法呢?
改进的推荐算法在评级数据“稀疏”的情况下尤其有效。 亚马逊和Netflix等网站的推荐系统使用了一种名为“协同过滤”的技术。为了确定一个给定的客户可能喜欢什么产品,他们寻找更多的客户,他们已经为类似
嵌入(embedding)是机器学习中最迷人的想法之一。 如果你曾经使用Siri、Google Assistant、Alexa、Google翻译,甚至智能手机键盘进行下一词预测,那么你很有可能从这个已经成为自然语言处理模型核心的想法中受益。
模糊匹配是日常工作中经常遇到的问题。比如我们手上有一份多家上市公司的利润表(每行为一家公司)和一份这些公司的现金流量表(同样一行一家公司),但由于种种原因(比如利润表的公司名称是简称,而现金流量表的公司名称是全称)导致同一家公司在两份表中有不同的名称。只有当这两张表的公司名称一致时,我们才能合并这两份表,同时看到这些公司的总体情况。
2019年8月,我投入了我的第一个自然语言处理(NLP)项目,并在我的网站上托管了自动侍酒师(Auto-Sommelier)。使用TensorFlow 1和Universal Sentence Encoder,我允许用户描述他们理想的葡萄酒,并返回与查询相似的描述的葡萄酒。该工具将葡萄酒评论和用户输入转换为向量,并计算用户输入和葡萄酒评论之间的余弦相似度,以找到最相似的结果。
第1,3和5行可能指的是拼写和格式略有偏差的同一个人。在小型数据集中,可以手动清洁细胞。但是在庞大的数据集中呢?如何梳理成千上万的文本条目并将类似的实体分组?
【导语】对于海量文本型数据比如日志,如何从中提取日志模式以便更快地从文本中获取关键信息。本文先简单介绍了行业竞品的相关产品形态,然后重点介绍了一种基于机器学习的日志智能聚类解决方案——基于图结构的聚类方法。
当我第一次看到"Ted Talk"数据集的时候,脑子里立刻冒出一些有意思的想法。首先,既然Ted Talk数据集包含了许多Ted演讲的演讲词文本,那么我们自然而然的就拥有了一个非常丰富且规范的预料库。第二,既然这个语料库有非常好的语言学属性,那么它可能是一个类似于Reuters 20 News Group这种非常优秀的数据集。所以,我们能不能利用这些演讲文本,利用它们之间的相关性,搭建一个像Ted官方网站一样的内容推荐系统呢?
BERT和RoBERTa在文本语义相似度等句子对的回归任务上,已经达到了SOTA的结果。但是,它们都需要把两个句子同时喂到网络中,这样会导致巨大的计算开销:从10000个句子中找出最相似的句子对,大概需要5000万(C100002=49,995,000)个推理计算,在V100GPU上耗时约65个小时。这种结构使得BERT不适合语义相似度搜索,同样也不适合无监督任务(例如:聚类)。
仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法 进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型 (latent factor model)、基于图的随机游走算法(random walk on graph)等。在这些方法中, 最著名的、在业界得到最广泛应用的算法是基于邻域的方法。
许多算法,无论是监督或非监督,都使用距离度量。这些度量,如欧几里得距离或余弦相似度,经常可以在k-NN、UMAP、HDBSCAN等算法中找到。
TextRank 算法是一种用于文本的基于图的排序算法,通过把文本分割成若干组成单元(句子),构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的TextRank值,最后抽取排名高的句子组合成文本摘要。本文介绍了抽取型文本摘要算法TextRank,并使用Python实现TextRank算法在多篇单领域文本数据中抽取句子组成摘要的应用。
推荐系统(Recommendation System, RS),简单来说就是根据用户的日常行为,自动预测用户的喜好,为用户提供更多完善的服务。举个简单的例子,在京东商城,我们浏览一本书之后,系统会为我们推荐购买了这本书的其他用户购买的其他的书:
记得原来和朋友猜测过网易云的推荐是怎么实现的,大概的猜测有两种:一种是看你听过的和收藏过的音乐,再看和你一样听过这些音乐的人他们喜欢听什么音乐,把他喜欢的你没听过的音乐推荐给你;另一种是看他听过的音乐或者收藏的音乐中大部分是什么类型,然后把那个类型的音乐推荐给他。当然这些都只是随便猜测。但是能发现一个问题,第二种想法很依赖于推荐的东西本身的属性,比如一个音乐要打几个类型的标签,属性的粒度会对推荐的准确性产生较大影响。今天看了协同过滤后发现其实整个算法大概和第一种的思想差不多,它最大的特点就是忽略了推荐的东西
聚类分析是没有给定划分类别的情况下,根据样本相似度进行样本分组的一种方法,是一种非监督的学习算法。聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度划分为若干组,划分的原则是组内距离最小化而组间距离最大化,如下图所示:
在机器学习中,经常要度量两个对象的相似度,例如k-最近邻算法,即通过度量数据的相似度而进行分类。在无监督学习中,K-Means算法是一种聚类算法,它通过欧几里得距离计算指定的数据点与聚类中心的距离。在推荐系统中,也会用到相似度的计算(当然还有其他方面的度量)。
还在为用什么品牌的护发品烦恼吗?有了大数据,你需要做的也许只是动动指头。就读于纽约大学的一位数据侠,基于护发产品的用户评论等数据,开发了一款选品工具,本文分享了她的数据分析方法,看看对你有何启发?
距离度量在CV 、NLP以及数据分析等领域都有众多的应用。最常见的距离度量有欧式距离和余弦距离,本文将会分享九种距离,分析其优缺点以及相应的应用常见,如果对你有所帮助,在看完之后,可以分享给你朋友圈的好兄弟,好姐妹们,共同成长进步!
本文共计1463字,预计阅读时长八分钟 NLP-基础和中文分词 一、本质 NLP (Natural Language Processing)自然语言处理是一门研究计算机处理人类语言的技术 二、NLP用来解决什么问题 语音合成(Speech synthesis) 语音识别(Speech recognition) 中文分词(Chinese word segmentation) 文本分类(Text categorization) 信息检索(Information retrieval) 问答系统(Question
jvm-sandbox-repeater 是阿里开源的一款可基于 jvm-sandbox (阿里另一开源项目)可对应用目标 jvm 进行动态增强同时对目标服务的指定流量进行录制及回放的工具,使用过程中遇到如下问题:
[1] TOC: 向量数据库:使用Elasticsearch实现向量数据存储与搜索 [2] 向量检索: https://github.com/elastic/elasticsearch/blob/e8c382f89553e3a7aaafa88a5934288c1192acdc/docs/reference/vectors/vector-functions.asciidoc
协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
基于内容的过滤算法会推荐与用户最喜欢的物品类似的物品。但是,与协同过滤算法不同,这种算法是根据内容(比如标题、年份、描述),而不是人们使用物品的方式来总结其类似程度的。例如,如果某个用户喜欢电影《魔戒》的第一部和第二部,那么推荐系统会通过标题关键字向用户推荐《魔戒》的第三部。在基于内容的过滤算法中,会假设每个物品都有足够的描述信息可作为特征向量(y)(比如标题、年代、描述),而这些特征向量会被用来创建用户偏好模型。常用的有决策树、神经网络和基于向量的表示方法等。
在欧几里得空间中定义了距离和向量长度(范数)之后,就可以继续定义角度,以平面几何空间为例,如图1-5-9所示,设
项目流程 明确定义问题 考虑非机器学习的方法 进行系统设计 选择算法 确定特征,训练数据和日志 执行前处理 学习与参数调整 系统实现 项目基础 微积分 矩阵计算 概率计算 项目算法 分类:利用正确解答的离散类别与输入数据的组合进行学习,从未知数据预测类别 回归:利用正确的数值和输入数据的组合进行学习,从未知数据预测连续值 聚类:以某种基准对数据进行分组 降维:将高维数据映射为低维数据以便可视化或减少计算量。 分类算法(离散值) 二元分类(二值分类) 感知机 逻辑回归 svm(支持向量机) 神经网络
作者:daniel-D 来源:http://www.cnblogs.com/daniel-D/p/3244718.html 在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则: 1) d(x,x) = 0
文本情感分析系统,使用Python作为开发语言,基于文本数据集,使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
推荐系统的应用场景,我相信在日常生活中大家基本都会接触到。例如,作为一个篮球爱好者,在淘宝上搜索的“kobe X 篮球鞋”,然后之后一段时间打开淘宝,首页界面可能会推荐很多与篮球鞋相关的商品,这算是一个比较正常的应用场景吧。当然还可能有其它的一些场景,例如上面用户吐槽的手机麦克风可能被监控,进而自己的喜好被平台方获取并产生推荐......
在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则: d(x,x) = 0 // 到自己的距离为0 d(x,y) >= 0 // 距离非负 d(x,y) = d(y,x) // 对称性: 如果 A 到 B 距离是 a,那么 B 到 A 的距离也应该
又爱又恨的推荐系统 作为一名程序猿,一直对推荐系统比较感兴趣,最近看到一个用户的吐槽: 又爱又恨 推荐系统的应用场景,我相信在日常生活中大家基本都会接触到。例如,作为一个篮球爱好者,在淘宝上搜索的“k
本文解释了计算距离的各种方法,并展示了它们在我们日常生活中的实例。限于篇幅,便于阅读,将本文分为上下两篇,希望对你有所帮助。
如果一个向量v是方阵A的特征向量,则将其可以表示为Av=λv。λ被称为特征向量v对应的特征值。
谱聚类(spectral clustering)是一种基于图论的聚类方法,主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来。距离较远(或者相似度较低)的两个点之间的边权重值较低,而距离较近(或者相似度较高)的两个点之间的边权重值较高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的。
不管是传统的目标跟踪中的生成模型和判别模型,还是用深度学习来做目标跟踪,本质上都是来求取目标区域与搜索区域的相似度,这就是典型的多输入。
协同过滤(Collaborative Filtering)算法是一种利用用户历史行为数据和物品属性之间的关系,预测用户对未知物品喜好程度的算法。它基于一个假设,即如果两个用户在过去喜欢的物品相似,那么他们在未来也可能会喜欢相似的物品。
提到检索的方法,比如KNN算法,这些都需要用到“距离”这个尺度去度量两者的近似程度。但是,距离也有很多种,除了我们熟悉的欧氏距离之外,其实还有很多。。。 余弦距离: 是一种衡量两个向量相关程度的尺度。
知识点: 准确率(Accuracy),精确率(Precision),召回率(Recall),均方根误差(RMSE)
衡量两条向量之间的距离,可以将某一张图片通过特征提取来转换为一个特征向量。衡量两张图片的相似度就可以通过衡量这两张图片对应的两个特征向量之间的距离来判断了。
本来呢,pearson,kendall以及spearman这3个相关性公式就让人头疼了,但是最近我在教程:比较不同的肿瘤somatic突变的signature 发现两个不同算法的signature的相似性并不是和文章完全一致,原因是作者使用了一个cosine similarity(余弦相似度)的概念。
选自Medium 作者:Martin Konicek 机器之心编译 参与:Panda 越来越多的软件工程师开始学习和涉足机器学习开发。近日,伦敦的软件工程师 Martin Konicek 在 Medium 上介绍了他使用 fastText 预训练过的词向量创建一个智能回答小程序的过程,相信能给仍不理解词向量的初学者提供一些帮助。此外,这个程序的代码也已经在 GitHub 上公开,感兴趣的读者不妨自己动手实现一下。更多有关 fastText 的介绍,可参阅机器之心专栏文章《专栏 | fastText 原理及实
推荐系统在现实生活中应用甚广,电商、社区、社交平台,无不充斥这各种各样的推荐。其实,推荐的原理很简单,无论是给人推荐物,还是给人推荐人,都是无外乎找到和被推荐者具有相同特质的其他用户,看看那些用户结交/买了/浏览了哪些被推荐者没有光顾过的人/商品/书籍/电影/音乐/etc.,将其推荐给被推荐者。 下面我们假设下列文件是一个电影网站的内部记录: uid,m1, m2, m3, m4, m5, m6, m7, m8, m9, m10 1,5,3,0,4,0,0,1,2,4,4 2,3,1,2,0,0,2,0,0
无监督多重图表示学习(UMGRL)受到越来越多的关注,但很少有工作同时关注共同信息和私有信息的提取。在本文中,我们认为,为了进行有效和鲁棒的UMGRL,提取完整和干净的共同信息以及更多互补性和更少噪声的私有信息至关重要。为了实现这一目标,我们首先研究了用于多重图的解缠表示学习,以捕获完整和干净的共同信息,并设计了对私有信息进行对比约束,以保留互补性并消除噪声。此外,我们在理论上分析了我们方法学到的共同和私有表示可以被证明是解缠的,并包含更多与任务相关和更少与任务无关的信息,有利于下游任务。大量实验证实了所提方法在不同下游任务方面的优越性。
三角函数,相信大家在初高中都已经学过,而这里所说的余弦相似度(Cosine Distance)的计算公式和高中学到过的公式差不多。
领取专属 10元无门槛券
手把手带您无忧上云