本文的面试&理论知识分为两个部分:
1、数据结构算法之排序算法
2、NLP和推荐系统相关理论知识
人工智能相关岗位面试,算法题是必不可少的一关,因为这是一个AI学者的基本功,很多知识是无法突击准备学习的。所以今天给大家总结了一些比较容易忽视的知识点,临场过一眼最简单的必考题:
首先是简单排序算法:冒泡排序、选择排序、插入排序
简单排序算法之一,思想是通过与相邻元素的比较和交换把小的数交换到最前面
思想是通过一次遍历循环将最小的元素移动到序列的最前面
思想是不是通过交换位置而是通过比较找到最合适的位置插入元素来达到排序的目的,上述三个简单排序算法的时间复杂度都是O(n^2)
之所以将归并排序和快速排序放在一起是因为面试中真的容易直接让手撸算法思路,因此应对面试需要知道算法思想,并能复现代码逻辑,归并排序和快速排序平均时间复杂度都是O(nlogn),快速排序效率最高,但在最坏情况下快排的效率不如归并排序,归并排序空间复杂度是O(n),快速排序空间复杂度是O(logn)
通过最小堆实现数组的从小到大排序,时间复杂度为O(nlogn)
对整数进行排序,排序的时间复杂度和空间复杂度是O(n+k),思想:用待排序的数作为计数数组的下标,统计每个数字的个数,然后依次输出得到有序序列
关键在于映射函数,将原始数据映射到n个桶上,桶中的元素仍采用比较排序,桶中元素可以采用快速排序,但映射到桶的操作大大减低了排序时间
利用了桶排序思想,只不过基数排序每次都只是处理数字的一位,从低位到高位顺序进行,对每一位依次进行桶映射排序的思想
分组插入排序,又称为缩小增量排序,思想:先将整个待排序元素序列分割成若干个子序列(由相隔固定增量的匀速组成),对每个子序列直接插入排序,然后一次缩减增量再进行排序,到增量最小时,再对全体元素进行一次增量排序。利用了插入排序在元素基本有序的情况下排序效率很高
上述十大排序算法中,其中计数排序和其他九种算法的区别在于其他九种算法都是基于比较排序的,基于比较排序的算法的时间复杂度下限是O(nlogn)。
要知道算法题无穷无尽,题型虽然多变,但大致也就那么几种,大家要多多在Leetcode、牛客网上刷题,重在平时积累。
(1) CRF跟逻辑回归最大熵模型的关系
(2) CRF的优化方法
(3) CRF和MRF的联系
(4) HMM和CRF的关系(顺便问问 朴素贝叶斯和HMM的联系、LSTM+CRF 用于序列标注的原理、CRF的点函数和边函数、CRF的经验分布)
(5) WordEmbedding的几种常用方法和原理(顺便问问language model、perplexity评价指标、word2vec跟Glove的异同)
(6) topic model说一说
(7) 为何CNN能用在文本分类
(8) syntactic和semantic问题举例
(9) 常见Sentence embedding方法
(10) 注意力机制(顺便问问注意力机制的几种不同情形、为何引入、seq2seq原理)
(11) 序列标注的评价指标
(12) 语义消歧的做法
(13) 常见的跟word有关的特征
(14) factorization machine
(15) 常见矩阵分解模型
(16) 如何把分类模型用于商品推荐(包括数据集划分、模型验证等)
(17) 序列学习、wide&deep model(顺便问问为何wide和deep)
以上就是给大家整理的部分面试题的题目和容易遗忘的基础知识点,大家平时还是需要多刷题的,虽然我们代码打的溜,但是面试时候要是在基础知识上翻了车会得不偿失的。
关注下方《学姐带你玩AI》
get大佬面经+岗位推荐
码字不易,欢迎大家点赞评论收藏!