首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
打退堂鼓选手
中山大学 算法工程师
发布于浙江
关注
已关注
取消关注
@林小白zii:
深度学习面经-推荐算法系列
一、简介 搜广推算法在各大互联网公司中承担着重要的流量转化的作用,其中推荐算法作为一个重要分支,它旨在为用户提供个性化的推荐内容,以提高用户体验和满足他们的需求。推荐算法的应用范围非常广泛,包括电子商务、社交媒体、音乐和视频流媒体、新闻推荐等各个领域。以下是一些可能出现在推荐算法系列面试中的主题和问题,面经请关注专栏:小白机器学习面试指南。持续更新中。 二、面经及参考回答 1、你了解的常见的召回策略,算法有哪些? 参考回答:召回算法用于从大规模数据集中快速筛选出一组候选项,以供后续的排序和推荐处理。常见的召回有下面几种: 基于内容的召回:基于物品的内容召回:使用物品的属性和特征,如文本、标签或图像,来计算物品之间的相似度,以推荐相似的物品。 基于用户的内容召回:分析用户的历史行为和个人资料,以确定他们对内容的兴趣,并为其推荐相关内容。 协同过滤召回:基于用户的协同过滤:根据用户与其他用户的相似性,为目标用户推荐与相似用户喜欢的物品。基于物品的协同过滤:根据物品之间的相似性,为用户推荐与他们以前喜欢的物品相似的物品。 矩阵分解:矩阵分解方法,如奇异值分解(SVD)和交替最小二乘(ALS),用于将用户-物品交互矩阵分解为潜在因子矩阵,以捕捉用户和物品之间的潜在关系。这些方法通常用于协同过滤。 基于流行度的召回:流行度召回方法会根据物品的全局流行度为用户推荐物品。这意味着用户将看到最热门的物品,无论他们的兴趣如何。 基于规则的召回:基于规则的召回使用预定义的规则来选择候选物品。这些规则可以是手动制定的,也可以通过机器学习方法自动学习得出。在业务迭代初期,一般会使用这种召回方法; 深度学习召回:使用深度学习模型(如神经网络)进行召回,这些模型可以从用户历史数据中学习用户和物品之间的复杂关系,以生成召回结果。 多通道召回:使用多个不同的召回算法,并将它们的结果合并或加权,以提高推荐的多样性和准确性。 2、协同过滤存在什么问题? 参考回答:泛化能力弱。即协同过滤无法将两个物品相似的信息推广到其他物品的相似性上。导致的问题是热门物品具有很强的头部效应,容易跟大量物品产生相似,而尾部物品由于特征向量稀疏,导致很少被推荐。协同过滤的特点就是完全没有利用到物品本身或者是用户自身的属性,仅仅利用了用户与物品的交互信息就可以实现推荐,比较简单高效,但这也是它的一个短板所在,由于无法有效的引入用户年龄,性别,商品描述,商品分类,当前时间,地点等一系列用户特征、物品特征和上下文特征,这就造成了有效信息的遗漏,不能充分利用其它特征数据。 3、协同过滤有哪些可以改进的? 参考回答:加一些参数权重对热门物品,以及活跃用户进行一些惩罚。或者利用矩阵分解,使用更稠密的隐向量表示用户和物品,挖掘用户和物品的隐含兴趣和隐含特征。 4、什么时候使用UserCF,什么时候使用ItemCF?为什么? 参考回答:UserCF:由于是基于用户相似度进行推荐,所以具备更强的社交特性,这样的特点非常适于用户少,物品多,时效性较强的场合,比如新闻推荐场景,因为新闻本身兴趣点分散,相比用户对不同新闻的兴趣偏好,新闻的及时性,热点性往往更加重要,所以正好适用于发现热点,跟踪热点的趋势。对于用户较少,要求时效性较强的场合,就可以考虑UserCF。ItemCF:这个更适用于兴趣变化较为稳定的应用,更接近于个性化的推荐,适合用户兴趣固定持久,物品更新速度不是太快的场合,比如推荐艺术品,音乐,电影。 5、什么是faiss,它的原理是什么? 参考回答:faiss是FaceBook的AI团队开源的一套用于做稠密向量聚类和相似性搜索的软件库,它包含在任意大小向量上的搜索算法,也支持评估和参数调节。Faiss包含多种相似度检索方法,通过L2(欧氏距离)和点积确定,同时也支持余弦相似度来计算向量距离。它主要是通过向量压缩进行计算,而不是通过使用原型向量进行比较,这种方法虽然降低精度,但是可以极大缩小存储空间以及检索速度,可以达到近似检索。faiss本质是: 使用PCA、K-means、PQ等算法对数据进行操作,对数据进行分群,每一个群都有一个Index,根据要查找数据的与每个Index距离大小,定位要查找的那个群,也就是缩小了数据查找范围,进而加速。 6、还了解其他向量检索的方法吗? 参考回答:其他向量检索的方式 Kd - tree;kd - tree的构建方式是根据我们输入的多维embedding。每次分裂的时候,会选择方差最大的一列,然后选择这一列的中位数去划分结点,直到每一个结点都有一个向量,这样kd-tree就构建完成了。kdtree的查找:向量的查找也是每次从根节点出发,开始对比,比如这个结点是按照第三列某一个数划分的,就比较这个向量这个位置的数和这个结点的数的大小,从而判定是往左走还是往右走,最终会落到一个结点上,但是这样找不一定是最近的,如果还有更近的,就会回溯到上一个分裂点,看另一个结点的距离。 7、双塔的user侧特征和item侧的特征可以做交叉吗? 参考回答:可以的, 最简单的方式是取用户特征和物品特征的点积,这可以被看作是一种线性交叉方式。这个点积可以被加入到模型的最后输出或中间层。特征交叉可以更好地捕捉用户和物品之间的关系,从而提高推荐系统的效果。如何进行交叉需要根据具体问题和数据来设计和优化。 8、相似度的度量方法有哪些? 参考回答:Jaccard相关系数: 两个用户u和v所交互商品的交集的数量占这两个用户交互商品并集的数量的比例,称为两个集合的杰卡德相似系数,余弦相似度,在此基础上引入皮尔逊相关系数。余弦相似度没有考虑到不同用户平均打分偏差的问题,最直观的理解就是某一个用户的品味很高,对任何商品打分都很低,这样计算出来的余弦相似度就有差异,引入偏置a,b分别为a的平均打分情况,b的平均打分情况,每一个参数都减去这个平均值,然后再来计算。 9、矩阵分解的原理,具体是怎么分解的? 参考回答:矩阵分解算法将 m×n 维的共享矩阵 R 分解成 m×k 维的用户矩阵 U 和 k×n 维的物品矩阵 V 相乘的形式。其中m是用户数量,n是物品数量,k是隐向量维度,也就是隐含特征个数, k的大小决定了隐向量表达能力的强弱,k越大,表达信息就越强,理解起来就是把用户的兴趣和物品的分类划分的越具体。 矩阵分解的求解: 常用的做法就是特征值分解(EVD),奇异值分解(SVD)。但是特征值分解它要求分解的矩阵是方阵,在推荐系统中,显然用户-物品矩阵不满足这个要求,而传统的SVD分解,会要求原始矩阵是稠密的,而我们这里的这种矩阵一般情况下是非常稀疏的,如果想用奇异值分解,就必须对缺失的元素进行填充,而一旦补全,空间复杂度就会非常高,且补的不一定对。 然后就是SVD分解计算复杂度非常高,而我们的用户-物品矩阵非常大, 所以基本上无法使用。 Funk SVD:所以具体对SVD进行一些改变,用一种叫Funk SVD来进行求解。只针对矩阵中有用户评分的信息进行分解。Funk-SVD的思想很简单,把求解上面两个矩阵的参数问题转换成一个最优化问题,可以通过训练集里面的观察值利用最小化来学习用户矩阵和物品矩阵。FunkSVD的做法:因为我们已经有了用
点赞 10
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
08-08 17:38
学而思_HR(准入职员工)
学而思内推
22-25届均可投递)学而思2026届校招提前批启动啦!很多HC!面向对象:22-25届毕业生均可投递,专业不限,应聘阶段无教资要求招聘岗位:高中学科、素养、竞赛教练等(多业务线可选,详见投递主页)📍工作地点:全国39城薪酬:每年4-6次调薪机会福利:六险一金、年度体检、带薪病假、福利年假、司令假期、节日礼盒、团建下午茶、花样周边等。面试流程:初筛-初试(试讲)-复试-培训-offer支持线上面试,抢先锁定offer,心向往之,在学而思!内推码: DS74UTFd(优先处理特权)内推链接:https://app.mokahr.com/m/campus-recruitment/tal/1480...
学而思开奖139人在聊
点赞
评论
收藏
分享
08-06 00:31
北京邮电大学 golang
百度提前批
一面:7.31自我介绍这两段面试,你挑一段讲一讲实习收获这段实习中,主要是做什么?项目中乐观锁是如何发现它有问题的?如何进行定位以及优化的?MySQL的索引有哪些?有什么特点?联合索引是什么?有什么缺点吗?分布式锁是如何实现的?如何进行锁的续期?使用SET实现分布式锁有哪些缺点?缓存穿透、缓存击穿、缓存雪崩是什么?都有哪些解决方案?算法题:39. 组合总和二面:8.3自我介绍介绍一下什么是MCP,有哪些部分组成?(实习相关) 项目相关问题MySQL有几种日志类型?一次说一下用做什么?怎么存储数据的?有什么作用?QPS问题是如何发现定位的? 算法:组合总和III
查看9道真题和解析
点赞
评论
收藏
分享
07-17 21:31
中山大学 算法工程师
把裁员说成是为社会培养人才
某书上看到的,没想到华为影响力这么大了,居然有人为其辩经到这种地步😱
程序员牛肉:
说白了这种弱智少和他辩论就行了。 事情没发生到他身上,当然可以道义凌然的说这是在为社会培养人才了。
投递华为等公司10个岗位
点赞
评论
收藏
分享
06-26 16:46
广东海洋大学 Java
牛友们为什么我的简历投出去看都没人看双飞java毕业真的只能送外卖了吗
程序员小白条:
找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞
评论
收藏
分享
08-06 14:30
西安电子科技大学 Java
腾讯二面:王者荣耀亿级排行榜,如何设计?
前言分享一道网上很火的腾讯面试题:亿级用户排行榜怎么设计呢?换种说法,王者荣耀亿级排行榜,如何设计?本文田螺哥从面试的角度,跟大家一起探讨一下,如何回答更好呢?数据库的order by为什么不行?为什么Redis是排行榜的“扛把子”?Redis扛亿级数据可能存在哪些问题以及对应解决方案实现方案:分治巨人的肩膀,前人踩过的坑github地址,感谢每颗star:github1. 数据库的order by很多小伙伴,一提到排行榜,就想到数据库的order by。比如微信运动的步数排行: select * from user_info order by step desc 这个实现没有问题的,如果表...
腾讯二面1085人在聊
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
25年秋招精心整理的最新互联网大厂笔面试题集合
2.0W
2
...
暑期实习转正自评,你就这么写!
8104
3
...
字节秋招-后端开发-一面
7181
4
...
26秋招-拓竹嵌入式软件面经
4807
5
...
本华为OD终于翻身!(百度后端面经)
4601
6
...
26届秋招建议
2826
7
...
影石嵌入式驱动开发面经
2781
8
...
字节秋招意向
2676
9
...
亚信科技java实习面经
2626
10
...
打工人基本微信沟通礼仪
2257
创作者周榜
更多
正在热议
更多
#
实习的内耗时刻
#
13819次浏览
198人参与
#
独居后,你的生活是更好了还是更差了?
#
4747次浏览
79人参与
#
去哪儿旅行秋招
#
222630次浏览
3168人参与
#
我的秋招“寄”录
#
10256次浏览
131人参与
#
规定下班时间vs实际下班时间
#
9171次浏览
68人参与
#
你上一次给父母打电话是什么时候
#
6333次浏览
69人参与
#
腾讯大前端岗位热招中
#
14432次浏览
156人参与
#
工作上你捅过哪些篓子?
#
6901次浏览
47人参与
#
得物求职进展汇总
#
103653次浏览
830人参与
#
你最近一次加班是什么时候?
#
72210次浏览
360人参与
#
秋招想进国企该如何准备
#
81104次浏览
441人参与
#
央国企投递记录
#
99284次浏览
1412人参与
#
入职第二天,午饭怎么解决
#
26470次浏览
76人参与
#
秋招笔面试记录
#
109088次浏览
2091人参与
#
美团秋招笔试
#
65446次浏览
412人参与
#
你们公司哪个部门最累?
#
29882次浏览
214人参与
#
奇葩时刻大赏
#
56974次浏览
237人参与
#
每个月的工资都是怎么分配的?
#
58817次浏览
584人参与
#
机械实习一天多少钱合适?
#
31630次浏览
183人参与
#
你认为工作的意义是什么
#
165412次浏览
1076人参与
#
面试被问期望薪资时该如何回答
#
267594次浏览
1531人参与
#
找工作有哪些冷知识
#
137885次浏览
2337人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务