大家好,我目前在一家做海外社交的公司实习,岗位是算法数据,今天想和大家分享一下针对数据挖掘或者算法数据这个岗位自己感受到的一些东西,以及面试多家公司复盘的一些经验,从而让大家更有针对性地进行面试准备。当然我也是学习阶段,希望和大家共同学习共同成长吧。
技能路径
Sql python(pandas,numpy,sklearn,keras,pytorch) 常见的聚类、回归、时序方法 机器学习 深度学习、大数据的一些知识(如分布式,Hadoop,spark等,可了解)
- 其中SQL技能非常重要!!因为在建模或者算法测试都不可避免要从不同维度取数、聚合等操作,同时在面试SQL也是常考内容,我之前就忽略了这部分知识,认为数分才会用,其实根本不是这样的!!!数据挖掘同样要熟练使用,我在面试快手的数据算法实习生(商业化)时,刚开始面试官就让我写一道SQL,可是因为忽视没能写出,从那次开始也是逐渐重视起这一点。这里推荐牛客网的SQL题,每日随机一题,快乐。
- python做数据和算法应该是必备的,包括常用库,如果还不熟练多看项目多做吧,我实习很常用的一个库就是pandas,数据分析和处理必备,sk主要机器学习算法,包括一些数据标准化技术,keras主要用来搭神经网络
- 然后就是常见算法,机器学习、深度学习八股文了,没啥好说的,多记多背多手推,注意机器学习里的集成模型,树模型,比如美团网必考的一定有树模型(gbdt、xgb),然后还有一些检测指标也是常考的,具体推荐白面机器学习算法工程师。
从用户互相看数据挖掘岗位
好了,下面我就要进入本次分享的主题来,都是自己总结的干货。我觉得包括我在哪的大多数同学无论是在面试时还是准备简历上都喜欢介绍和描述自己的曾经做的模型有多么多么高深、用了什么最新方法、达到了多高的精度,这好吗?当然好了,不然哪能往简历上搬,但也存在一个问题——不够“接地气”。
下面我简单介绍一下目前在做的一个用户画像体系调研中总结的知识,让大家更加明白上面的模式。
用户画像相信大家并不陌生,这个词也经常出现在数据挖掘等岗位的JD里,它可以说是数据挖掘的根基,都说特征决定了算法的上限,模型不过为了逼近这个上限,那么如何构建有价值、可复用、可维护的用户画像标签就至关重要
用户画像流程可简要描述如下:
了解业务需求——从商业目的出发收集、构建用户标签——构建用户画像体系——用户画像标签维护——使用用户画像进行建模以及个性化服务如好友推荐、广告投放、精准营销等。
还是看上图,数据挖掘一般要和产品组以及数据组同学对接,产品提出需求,比如要实现某某功能,某某模型,然后你和数据工程师沟通,看他们的埋点能提供哪些row data。然后你开始数据挖掘,遵循之前的流程,OK,但是你还应该想着我们做这个商业目的,即这个特征或者用户标签是不是有潜在价值的,或者可复用的,如果经过你的特征工程后得到了这样的标签,那么你可以和产品或者数据反馈,这个标签就可以按照你的算法存入标签库,以后直接用就行。后续的模型选择和使用就按照你背的八股文来吧,哪个好用用哪个,检验就常规方法和AB-test结合。
继续说回用户标签,用户标签分为两大类:静态用户标签和动态用户标签。
- 静态标签一般是用户身份特征等基本不变或者很长一段时间都不变的标签,如性别、城市、学历等。
- 动态标签是动态变化的特征,如用户的主要浏览商品类型、用户爱好、用户聊天频繁程度。
身份特征 | 兴趣爱好 |
行为特征 | 心理特征 |
聊天特征 | 渠道属性 |
- 用户标签的获得类型:基于统计类的标签、基于规则类的标签、基于挖掘类的标签
- 基于统计类的标签:其获取程度由易到难,统计类标签是最基础的标签,一般就是埋点数据,可以直接从数据库中获取的标签,如用户性别、年龄、聊天次数、时长等。
- 基于规则类标签:使用大于、小于等规则可以筛选数据,从而实现用户分层,是一个比较粗粒度和简便的标签获取方法。
- 基于挖掘类的标签:你的价值体现,总算有一个你能做,别人做不了的了,你丰富的建模技术和数据科学知识就在于此体现了,包括但不限于一些数学建模方法、无参数方法,带参数方法(ml,dl等),当然,一切从业务,商业回报出发。
- 用户标签的汇集、分类和定义:当用户标签获取完之后,应该构建多维度、体系化的标签库,方便后续用户数据分析和算法建模使用。
- 多维度指的是用户标签可以分为几个大类,类别之间相对独立,如用户个人信息和用户聊天情况这两个大类,社交软件还可以多一个如用户关系网,其中记录着重要的用户关系标签。
- 体系化是按照用户划分粒度粗细从粗到细对标签进行排列,如性别,年龄,月使用APP情况等,这样逐渐把用户细化。
- 标签定义即为标签的信息,包括业务含义和获取类型等,业务含义指的是把标签解释为易于理解的描述,比如我在实习中进行的亲密好友推荐,通过对用户聊天记录进行数据挖掘,我同时获取到了用户关系类型这一个新的,有潜在价值的标签,并且结合数据分析,我给予了标签业务含义,如该用户为文字语音用户(即使用文字和语音聊天更频繁的用户关系),这样就从数据逻辑上升到了业务逻辑,便于产品运营理解和使用。
- 最后是标签的维护,标签维护也应该有一套成体系的规则,更新规则如:标签更新周期,是实时更新还是每月更新等;标签更新维度,在什么情况下触发对具体用户的更新;标签的迭代,如无用标签淘汰的新标签入库等。
所以尽早了解数据算法岗位全流程,以及用户画像体系构建,或许你未来不会进行用户画像方面工作,但了解由业务需求到特征(标签)再到模型这样的流程一定会让你更求职准备更明确,而不是只泛泛空谈几个建模比赛中用到的模型!
全部评论
(1) 回帖