target E6 general MLE博士+6年, 今天收到悲剧信, 意料之中毕竟coding失误了. 几天前提过要分享一下ML design的模版, 因为班上面筋不多, 大佬们补充一下兴许对后来者有用. 针对的是搜广推题目, 其它copyright 检测, 有害内容检测之类的题目,有空了我再写, 大家弃之糟泊的看.
推荐的题目, masketplace item 推荐, short video 推荐, nearby place推荐等; 推荐系统一般只有general query或者没有query, 只能当类别retrieval channel或者user embedding的一部分, 不需要query processing. 而要侧重user login作为输入, 输出是a list of recommendations according to personalization and user preference. ML objective是accuracy, 还要考虑diversity. 其它的non-functional requirements可以提一下scalability, low latency足够.
广告ranking题目, 我觉得是类似推荐的, 没有query, 只有user past behavior做personalization, 也需要考虑diversity, 毕竟不能把相似广告放一起给用户影响体验. 如果不考虑diversity, 那就要在metric里考虑DCG或者PNR了, 因为最后输出的list, order是重要的, 不只是binary的点和不点了. 同时广告要考虑explicit negative feedback, 就是hide block这种反馈, 对于multi-task的ranking来说很好实现, 就是多一个头label反着01, 但在策略上可能要考虑delay多久再次投送的问题
搜索的题目, 就要问清是general search还是vertical domain search了, 需要query process, 这部分很重要但是在ML design里却不太重要, 可能涉及query的tokenization, BPE, wordpiece, sentencepiece, 还有term的weight; 涉及user intention detection, 比如是否时间敏感; 涉及搜索对象的quality estimation, 比如doc的EAT分数, website的pagerank分数,图像的resolution分数; 但并不是ML design的重点. search虽然用到user past interaction作为参考, 但更重要的是query和candidates的relevance, 这个和推荐不一样. 有一类搜索题目是图搜图, 或者copyright, 这个模版就不太适合了
Clarify部分, 要问清是否有query, user interaction有哪些种类, click, like, save, share, rating, 是否考虑负面反馈, 是否考虑implicit feedback比如long click或者dwell time; 要问清是否是user generated content, 因为UGC的话goal就多了个penetration rate, 希望content pool越大越好, new content能够被及时曝光, 要讨论cold start, 不然会影响user engagement. 对象一般会包括textual, image, 有没有video要问清. 然后问是否考虑user-user connection, follower和friend, 有些同学可能会用GNN做, 我个人会把user-user当一个召回通道, 比如news feed的题目, 其实是推荐, 因为你friend的post并不多.
Data部分, 广推是personalization为主, user部分需要ID, demographic, past behavior, user embedding通过双塔来学习; item部分是category, hashtag, description, age, 如果UGC就需要creator info. item的feature engineering是在发布时线下学好的, 其中textual的部分basic LM extract feature vector, 比如word2vec, BM25, TFIDF; image用unsupervised model不用label的那些CLIP, SimCLR来extract, video也用frame-based就好, 因为这些feature是初步的, 真正的item embedding也是双塔来learn; 这里我说的不对的话大佬指正; user, item,然后是user-item interaction data; 还有aggregated statistics, 就是interaction in 1week/month之类; 还有contextual data, 就是device, time of the date, location,isHoliday之类; feature engineering可以提one-hot和buketize. 搜索就没personalization那么多事儿, item部分差不多您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 使用VIP即刻解锁阅读权限或查看其他获取积分的方式 游客,您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 VIP即刻解锁阅读权限 或 查看其他获取积分的方式 pert (MMOE). 训练的正负样本就是有无相应的交互行为, 对应每个head做sigmoid; 整个ranking的loss是weighted sum of BCE, weight是超参预设; 输出是一个aggregated score用于排序. 这里有正负样本imbalance的问题, downsample就好, 但是要calibrate according to downsampling rate. 有可能会有watching time或者dwell time这种使用非离散数据的head, regression也行, 也可以用 t / t+1 去逼近 sigmoid exp(z) / 1 + exp(z), 转换成BCE.
Metrics, offline的, 召回其实最重要是recall; end2end的metrics, 不考虑rank的就都是binary的mAP, F1, AUC那些; 考虑order的就提一提MRR, ERR, DCG, PNR这些. online的metrics, click through rate肯定要提, GMV, conversion rate, DAU, user engagement time这些就看着办了.
re-rank和deploy就不讲了. 我个人是做视觉和多模态的, 搜广推全是自学, 肯定有很多遗漏甚至错误, 自己也fail了面试, 希望别怪我在误人子弟, 以上只是分享我的准备, 兴许给大家多个思路. 面试的时候说不了这么多, 但是也不得不多准备一些, 还是那句话, 大家弃之糟泊的看. 大佬多补充.
|