铩羽而归。写点儿血泪教训。20200412
三面了,记录点心得体会.20200421
1.笔试
阿里巴巴暑期实习 算法岗笔试一共就两道题,每道50分。具体的题目我没截屏,网上应该能找到。第一题是比较简单的数组,第二题应该要用算法来做,我接触的少,此题一看遍蒙圈了。
题目如下:
1)求特定数
的个数
符合以下条件的数为题目定义的
特定数
:
1)该数左边存在比其大的数,并且左边比该数大的数中的最小数为f
2)该数右边存在比其小的数,并且右边比该数小的数中的最大数为g
3)特定数
满足f是g的倍数。
输入:
第一行,数组个数n;第二行为数组的n个数,以空格区分开
0<=n<=10e5; 数组中所有的数a_i均在0~10e18范围内
输出:
特定数
的个数
例:
- 输入:
3
4 3 2- 输出1,因为只有3满足条件
2)求最小代价路径
完整的题目我没记录。
题目大意如下:
输入一个n*m的矩阵代表一个山路的代价值矩阵,每个值表示经过该区域所需消耗的体力值。你可以从第一行的任意位置出发,以到达最后一行的任意位置结束,并且你只能移动到该处上下左右四个位置,求完成该过程的最小代价值。
输入:
第一行两个数,分别为n和m;第二行开始的n行表示矩阵,每一行m个数,以空格隔开。
输出:
最小体力值代价
例子:
输入:
3 4
9 9 1 1
9 1 1 9
9 1 9 9
输出:4
与下面此题类似,不过不要求从左上角出发和到达右下角,而且可以往左移动
1.2 解法
2.面试
2.1 一面
2020.4.3 应该是刚入职不久的职员问的,还是问了很多细节的,不过没问机器学习具体内容。
1)自我介绍
2)项目经历
2.2 二面
2020.4.8 应该是有一定开发经验的主管面的。我应该直接挂了。哎,对ML了解不够,血亏。
1)自我介绍
2)项目经历
3)问机器学习
2.3 三面
时隔12天,我一度以为铁定挂了,毕竟二面最后面试官都很委婉了。2020.4.20日晚上8点接到电话,结果我没收到,9点开始面试。
面试官应该是个总监,说话真的很轻声细语,对待面试者真的非常恭敬有礼貌。开门见山说了面试流程的三部分:
1)说一下自己认为做的项目中最具备亮点的一件事 2)开放式讨论一些有关机器学习的知识 3)关于实习的安排,以及我想知道的事情
第一部分:
IARC比赛。然后我说的事无巨细,他似乎不太熟悉无人机和图像处理这些东西,所以就没接着问。很平静就过去了…
第二部分:
他问的关于淘宝客户点击商品的问题,如果做推荐系统。详细点说是,训练样本是手里有很多客户点击或者不点击某样商品的数据,问如何来做一个客户对某件商品的喜爱程度(或者点击还是不点击)这种推荐模型?起初我想成了喜爱程度,这样自然就成了回归问题,后来他提醒,说只有点击或者不点击,那么很自然就是分类问题,并且是二分类问题。我当时说了挺多想法的…
第三部分:
没什么好多说的吧,真实表达自己的想法
总结:感觉这个面试官很和善,不怎么怼人,很好说话的感觉。控制好自己的语调,明确的表达自己的看法,良好沟通
2.3.1 三面后功课
20200422 很慌很不安.
虽然感觉面试的也不怎么样,甚至有点儿满嘴跑火车,但还是做点功课以应对接下来可能的面试.
推荐算法时下流行技术:
1)协同滤波(collaborative filtering)
找几个帖子,传送门
协同滤波
概念:
协同过滤: 一般是在海量的用户中发掘出一小部分和你品位(偏好)比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。
- 问题在于如何确定两个用户之间品味的相似性;
- 如何将邻居们的喜好组织成一个排序的目录?
可分为: - 基于用户的协同滤波user-based
- 基于物品的协同滤波item-based
过程:
- 收集用户偏好
- 找到相似的用户或物品(聚类)
- 计算推荐
聚类中的距离度量有欧式距离\余弦相似性\皮尔逊相关系数等.据此计算相关邻居,感觉接下来像是kmeans或者dbscan聚类.
基于用户推荐很好做,就直接判断该用户属于哪一类,再根据该类的特征进行推荐.
基于物品推荐,如喜欢物品A的用户也可能喜欢物品C,以该想法计算物品之间的相似度,根据用户的历史偏好来做推荐???
本次学习时间到,下次再更.
2)DNN排序模型
通常将用户特征和商品分类做embedding嵌入,两边各自具有全连接网络结构,激活函数为tanh;最顶层用余弦相似度来度量两者的相似度,推荐与某个user具有最高相似度的item,最顶层的损失函数为MSE.
广告、推荐、搜索等领域用户数据的稀疏性几乎必然要求在构建DNN之前对user和item进行embedding后才能进行有效的训练。
embedding解释
word2vec和item2vec;