注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
Google Onsite
* Ben 老白, NLP phd, 问了如何设计一个手机的输入法中的suggestion, 我回答trier tree 然后嘴贱说了suffix tree, 被追问suffix tree细节, 我答不知道. 然后问了如何rank suggestion. 我答了可以利用用户的click data, common words, edit distance,… 一直没有答到点子上. 他想问的实际上可以通过前面几个出现的词来推断下一个出现的词, 可以train一个language model, 可以知道给定前面几个词 推断下一个词的概率. 然后问了知不知道word2vec.
* heckata, 老asian, google research, 问了LR的目标函数 logloss, 还有如何求导, . 最后又问了还有没有其他的loss function (我说MSE, 其实后来想一想可以答hingeloss) 然后问了overfitting 中如何使用L1, L2. 如果feature cluster的话, L2 和 L1 对这些feature有什么影响. 我答如果使用L2对每个feature 的weight penalize会比较多. L1会让这些feature的weight 缩成0, (他又问直接这样做就能缩成0嘛, 然后又介绍可能要加个operator才能让value 缩成0). 然后他就问了recommendation. 这快我就完全弱势了. 他问了一个如何在sub-linear time里对user 来recommend 物品, 我提出了用CF, (然后被质疑数据太稀疏, 然后matrix 太大计算太复杂, 他说最后的答案是只考虑pairwise的ranking), 我提出可以使用一个category的信息来pre-filtering 只找出符合category info的物品进行比较, 然后他又说假设没有这些category的information 该怎么办. 他然后说可以使用clustering, 然后只和临近的cluster来比较. 他又说了不同cluster的embedding 不能求mean的方式来找出user的embedding, 然后改怎么办? 我说我的user feature vector是直接learn出来的. 然后被质疑如果只使用了click data, 没有使用没click的data, collaborative filtering是不是会学出来一个很奇怪的vector (不懂他在说什么) 可能还是由于sparse data, 学出来的东西, 在unknown data上可能表现不好.
* 一系列的coding question, 都感觉时间不够, 最后一个follow up没有时间做, 或者只有很少的时间来做.感觉自己在解释思路和简单问题上花的时间太多, 而他家又是要做多个题目的, 所以到最后时间不够. 对于这种开始来个简单的, 然后有几个followup的. 我的时间分配不合理. 最后的最难的问题只有最少的时间来处理. 写白板的时间也要很久.
Linkedin onsite
1. test, two questions (1) number of islands and (2怎么做的, 被提示sequence 很重要, 最后直接被提示用BFS 解决了这个问题.
Problem solving, 就是算法题, 问了如何判断config file是不是valid 就是不同shard的interval是否有overlap. 然后followup 是如何判断一个id 是否在任何一个shard中. 我想到merge time interval那题, 想到是不是要用复杂的segment tree和heap 来判断interval是不是会有overlap. 一直没有figure out most basic的方法. 其实就是一个个读每个segment, 然后sort by start time. 然后merge 所有有overlap的segment, 然后判断在merge的过程中是否有conflict. 因为不需要知道overlap的interval的数量完全不需要用heap这种数据结构来keep overlap的interval的数量 (我进场在面试中问第二种类型的题, 结果遇到第一种最简单的题反而直接挂了), 得到了面试官的提示, 想出来了如何解决这个问题. 并且code出了结果.
Algorithm/Data , growth team manager: 最开始了聊了一下他们的工作, 感觉他们一个重要的方向是personalization. 然后问了一个有关log的问题. 先build 然后print出aggregated的结果. 他一直在问我用什么数据结构来存储, 我想到了一个利用dictionary和找出user group 然后recursive的solution. 但是我花了很久的时间解释, 但是他还是不清楚这个recursive的方法是如何work的. 最后当我写出来code, 他明白了这个方法是如何work的, 也肯定了这个方法是可以work的. [如何解释一个算法 根据一个example, 结合现有的terms, 他当时的疑问是什么, 我提到recusion的时候, 我用了group这个概念和list这个概念, 是不是解释的时候这些term要给出具体example会比较好理解]. 最后他期待的Data structure是什么? 应该是个tree, tree中的node有content 和format信息, 然后这些信息实际上在recursion的时候可以获取, 按照preorder 遍历可以直接print 没有必要保留然后再print出来.
|