java转行推荐拿到58offer:基础很重要,模型技能是提升项|附面试题

226 阅读5分钟

#这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战

本人双非计算机硕士,研究生期间接触过机器学习算法,不过都是皮毛,Java开发觉得自己已经到了瓶颈期,开始萌生转推荐的想法,研究生期间july去我们学校讲座过,第一时间就想到了七月在线报了**推荐高级小班**,因为平时工作忙听的是录播课程。老师们讲的都很好理论实践相结合。

今年年初课程听完,三月月中旬开始投简历,因为疫情面试都是线上进行的,大部分面试中上来就会考编程题,编程题大部分都是数据结构题目(这里打个重点号,数据结构很重要!!)
编程题总结如下:
1.浮点数开根方
2.浮点数开三次方(面试官提示要用牛顿法)
3.排序算法(快排)
4.已知一个已经有序的二维数组,将这个二维数组merge成一个有序的一维数组(要考虑算法时间复杂度)
5.已知一颗带权二叉树,怎样做到将其分裂成两棵树,这两棵树带权加和最大
6.已知一个数组,求出这个数组中任意两个数字加和等于K的组合,要求效率尽量的高
7.手写写出交叉熵损失函数
8.写一段程序验证一段现有代码是否负责语法规范

接下来就是面试题,基本上是简历上面出现的,个别是面试的那家公司正在用的模型:
1.auc
AUC(Area under curve)是机器学习常用的二分类评测手段。
AUC:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。
所以根据定义:我们最直观的有两种计算AUC的方法

①:绘制ROC曲线,ROC曲线下面的面积就是AUC的

②:假设总共有(m+n)个样本,其中正样本m个,负样本n个,总共有mn个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(mn)就是AUC的值

2.attention思想

我们可以这样来看待Attention机制:将Source中的构成元素想象成是由一系列的(Key,Value)数据对构成,此时给定Target中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。所以本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数。

从本质上理解,Attention是从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。聚焦的过程体现在权重系数的计算上,权重越大越聚焦于其对应的Value值上,即权重代表了信息的重要性,而Value是其对应的信息。

3.bert思想

4.xgboost缺省值怎么处理的

5.fm交叉相介绍

6.deepfm:

DeepFM包含两部分:神经网络和分解机。分别负责低阶特征的提取和高阶特征的提取。这两部分共享同样的输入。DeepFM模型的预测结果可以写成

hat{y}=sigmoid(y_{FM} + y_{DNN})}

7.din

8.mmoe

9.transformer思想

10.信息增益率

11.协同过滤做召回的原理

协同过滤:就是指众多的用户可以齐心协力,通过不断地和网站互动,使 自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。而基于用户是指通过分析用户对商品的行为(如浏览、收藏、加入购物车、购买……)计算出哪些用户是兴趣相似的,然后把兴趣相似的用户所关注的商品相互推荐。
步骤一般分为两步:
计算物品之间的相似度
根据物品的相似度和用户的历史行为给用户生成推荐列表
计算相似度计算相似度的方式有很多,如余弦相似度、切比雪夫距离、欧里几得距离、曼哈顿距离、杰卡德距离、皮尔森系数……计算相似度的方式不同计算出来的相似度也不同。
ItemCF(Item Collaboration Filter),又称 基于商品(物品)的协同过滤算法。
其原理与UserCF类似,是基于用户对商品的偏好找到相似的商品,然后推荐相似的商品品给他。
计算过程也非常相似,区别在于计算时把UserCF的评分矩阵转置,再计算商品与商品之间的相似度得到商品之间的相似度矩阵。
最后的推荐列表 = 商品之间的相似度矩阵 X 评分矩阵转置

12.下采样用的是什么方法
13.怎么解决的正负样本不均衡的问题

以上就是我面试的经验了,因为我三月中旬开始面试,四月初出拿到比较满意的offer,面试的公司4-5家,深深的感觉到基础的重要性(编程基础和算法基础),其实有个别高大上的模型就是你面试中的提分项,真正工作的敲门砖还是扎实的基础。