用Python搭建一个电影推荐系统
之前我们以电影推荐为例,介绍了基于内容的推荐算法。可能各位看的有些枯燥,没关系,现在来做点有趣的事情:动手去实现它! 查看数据集使用的数据集是Kaggle上的TMDb,该数据集包含两个.csv文件:movies.csv和credits.csv。首先读取数据集: 12movies = pd.read_csv('tmdb_5000_movies.csv')credits = pd.read_csv(r'tmdb_5000_credits.csv') 数据集中包含了4803部电影的相关信息,包括电影类型,关键词,电影名字等,但并不包含单个用户的信息。因此,接下来,我们将主要根据每部电影的相关信息,从中抽取出每一部电影的特征,这些特征将用于计算电影之间的相似度,从而完成电影的推荐。 数据处理为了提取到每部电影(每行对应一部电影)的特征,需要先对数据做些处理。 将movie和credits这两张表合并: 12movies =...
协同过滤算法
...
基于内容的推荐算法:以电影推荐为例
讲个故事哈: 在一个周五的傍晚,你独自取了外卖,回到寝室,拿起手机,准备边吃饭边欣赏电影的精彩。你打开了外卖包装,一边吃一边快速地刷着视频软件。不久,外卖盒子已是空空如也,而你仍然在快速地刷着视频软件。没错,此时外卖已吃完,你还是没有找到想看的电影,反被淹没在信息流的大海。 推荐系统是个啥?随着社会的发展和科技的进步,互联网上的信息变得越来越多,对于用户来说,很难直接对这些信息加以有效利用。 因此,如何做到对不同用户推送其所需要的内容是非常必要的,这便引出了推荐系统。 事实上,你每天都在接触它。B站首页内容,抖音短视频,淘宝首页,腾讯视频首页等等,背后都是推荐系统在起作用。 我打算花一些时间去学习推荐系统领域相关的知识,所有的学习笔记将更新在本号,欢迎小伙伴们持续关注丫~ 基于内容的推荐算法推荐系统所采用的算法,称之为推荐算法。推荐算法的种类较多,本文将参考吴恩达老师的视频,介绍基于内容的推荐算法(Content-based recommender systems)。 所有内容均基于下面的栗子。 在这个栗子中,我们将构建一个基于内容的电影推荐系统。 总共5部电影:Love...
MaskedFusion
MaskedFusion: Mask-based 6D Object Pose Estimation 来源:ICMLA 代码:https://github.com/kroglice/MaskedFusion 引用量:3 提出的问题现实中的物体存在遮挡(occlusions)和截断(truncations)等情况。 已有的方法 基于RGB依赖于物体检测,关键点匹配以及3D渲染技术,并使用PnP算法来求解姿态。速度快,但存在遮挡时,recall就会很低。 基于点云依赖于描述符(descriptors)从场景中的物体中提取特征,并将其与在已知姿态中捕获的特征进行匹配 基于RGB-D直接从数据回归姿态,并做后处理优化 本文的方法直接从RGB-D数据中回归姿态。 包含三个串行的子任务: 使用语义分割,对物体做检测(detection)和分类,并获取对应的mask 从不同类型的数据中提取特征,并使用pixel-wise的方式将它们混合在一起,使用6D pose neural...
G2L-Net
G2L-Net: Global to Local Network for Real-time 6D Pose Estimation with Embedding Vector Features 来源:CVPR 2020代码:https://github.com/DC1991/G2L_Net引用量:8新版本:FS-Net(CVPR2021),还没看 提出的问题 一些基于深度学习的方法预测表现达到了sota,但做不到实时性,太慢 虽然存在一些方法能够做到实时性,但这些方法只是用了RGB图,无法处理存在遮挡和光照变化的情况 当加入深度信息后,可以处理诸如遮挡的复杂情况,但是计算密集。并且这些基于RGBD的方法的一个常见问题是:利用来自深度信息中的视点信息(view point infomation)并不是很有效,从而降低了它们的姿态估计精度。为了克服这一点,这些方法倾向于使用后细化机制( post-refinement mechanism)或假设生成/检验机制(hypotheses generation/verification...
PoseCNN
PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes 来源:RSS 2018 代码:https://github.com/NVlabs/PoseCNN-PyTorch...
FFB6D
FFB6D: A Full Flow Bidirectional Fusion Network for 6D Pose Estimation 来源: CVPR2021代码:https://github.com/ethnhe/FFB6D 提出的问题 RGB图像+CNN:透视投影会导致几何信息损失 RDB-D+CNN::如何有效地充分利用这两种数据模式(RGB图+深度图)来进行更好的6维姿态估计? 已有的方法 使用级联思想,先从RGB中做粗略估计,再使用ICP或多视图的假设检验做后续优化。这种方法并不是端到端的方式,而且非常耗时。 使用两个网络,一个CNN,一个PCN( pointcloud network),分别从RGB图和点云文件中提取特征(croped RGB image and point cloud),然后把这两种特征concat在一起(称之为 dense features),用于姿态估计。这种混合特征的方法(concat)太naive。 也是用两个网络,CNN和PCN,只不过将特征混合方式由concat改为dense fusion,如下图: ...
一秒仿妆:PSGAN
BeautyGAN:提出了makeup loss等,后续PSGAN也基于这些loss。训练数据需要成对,数据集难收集。 Paired Cycle GAN:额外添加了一个判别器 Beauty Glow LADN… 以上方法不适用于in the wild 图像,且不能只调节局部,比如只给眼睛上妆。 PSGAN(CVPR2020)解决了这些痛点,并且PSGAN++做了进一步改进,对比如下: 由于PSGAN++还没开源代码,所以选择了有代码的PSGAN,同时作者也提供了预训练模型。 我用默认配置参数跑了下,发现并没有得到论文中的效果,调了些参数,比如生成器和判别器的学习率,效果也不是特别好。 使用预训练模型,就能够得到论文中的效果。可能自己还需要调更多参数吧~ 下面是关于PSGAN的论文要点整理。 网络结构PSGAN的生成模块包括3部分: Makeup distill network(MDNet) Attentive makeup morphing module(AMM module) Makeup Apply Network(MANet) reference...
从Attention直达ViT
前文回顾:https://fx0809.gitee.io/2021/06/11/NLP%E6%9E%81%E7%AE%80%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0/ 一、Revisiting Attention for RNNAttention for Seq2Seq Model,它的编码器和解码器都是RNN结构: 其中$\alpha$的计算公式如下: 在Transformer中,就采用了下面的方法计算Context vector: 二、Attention without RNN现在,剥离RNN,只保留Attention。 以英语到德语的翻译为例: 开始计算权重$\alpha$: 计算$\alpha_{:1}$ 计算$c_{:1}$ 计算$\alpha_{:2}$ 计算$c_{:2}$ 重复以上操作,最终得到全部的$c$,即Context vector 这些Context...














