推荐算法工程师入坑第二课

这个博客主要用来记录自己毕业后入职的第一份工作的填坑经历,也想因此设立一个专栏记录未来自己的发展历程。希望能与和自己一样奋斗在算法一线的研发猿们或者努力进坑的童鞋们一起分享自己的成长经历

  • 以后这篇博客主要和大家分享自己的学习过程和踩过的各种坑。

前言

本人某普通985硕士一枚,研究生期间主要研究于计算机视觉的显著性物体检测的相关算法研究。目前,在某一海外公司做短视频推荐算法。

入职操作

今天是第二天入职,搭建了公司需要的一些基本环境后,准备正式入坑。现在还在初始阶段找来了一本好书《推荐系统实践-项亮》,应该算是入门必备,看起:

《推荐系统实战》- 项亮(自学简介,入门可读)

推荐系统:用来解决信息过载的问题,也就是在当今社会信息爆炸的时代,对于信息生产者和信息消费者都是一把双刃剑,如何准确的给用户推荐想要的信息就成为了重要的问题。而目前用户获取信息的方式主要有三种:分类、搜索和推荐
前两者是主动的,用户可以根据类别有针对性的找到自己的所需物品(分类)或者通过一些关键词来制定自己需要的信息类别以逐渐缩小搜索范围(搜索)。后者就是通过用户已经喜欢过的物品(历史行为)来分析并推荐给用户可能想看的物品【基于内容的推荐算法】/或者通过用户的好友喜欢的物品来推测用户已推荐相关物品【基于协同过滤的推荐算法】,等。

  • 我的理解就是找用户和物品item的最佳联系,以将最合适的物品推荐给用户。然而这种个性化推荐算法的成功有两个原因的驱动(1)信息过载(2)用户的大部分时侯没有明确的需求

推荐系统评测:用来评估推荐系统性能好坏的重要法宝,而最终目的就是为了将 用户、物品提供者、提供推荐系统的网站这三者的利益最大化。为了全面评测推荐系统对三方利益的影响,利用不同的指标(准确度、覆盖率、新颖度、惊喜度、信任度、透明度等)。

  • 推荐系统实验方法:
  1. 离线实验:利用日志系统获得用户行为数据,然后进行清洗成标准的数据集,划分训练和测试,训练模型,利用离线指标测试模型性能。【因此离线实验都是基于dataset进行完成的】
    在这里插入图片描述

  2. 用户调查
    注意,离线实验的指标和实际的商业指标存在一定的差距,比如预测准确率和用户满意度之间就存在很大差别,高预测准确率不等于高用户满意度。因此,如果要准确评测一个算法,需要相对比较真实的环境。最好的方法就是将算法直接上线测试,但在对算法会不会降低用户满意度不太把握的情况下,上线测试具有较高的风险,所以在上线测试钱一般需要做一次用户调查。用户调查需要有一些真实用户,让他们在需要测试的推荐系统上完成一些任务。在他们完成任务时,我们需要观察和记录他们的行为,并让他们回答一些问题。最后,我们需要通过分析他们的行为和答案了解测试系统的性能。

  3. 在线实验
    完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试,将它和旧算法进行比较。AB测试是一种很常用的在线评测算法的实验方法。它通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法,比如可以统计不同组用户的点击率,通过点击率来比较不同算法的性能。其优点可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标。其缺点主要是周期比较长,必须进行长期的实验才能得到可靠的结果。

综上来看,一个新的推荐算法最终上线,需要完成上面的三个实验:(1)首先,通过离线实验证明它在很多离线指标上优于现有的算法(2)然后,需要通过用户调查确定它的用户满意度不低于现有的算法(3)最后,通过在线的AB测试确定它在我们关心的指标上优于现有的算法

Spark

Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。最初在2009年由加州大学伯克利的AMPLab开发,并于2010年成为Apache的开源项目之一。提供了一个管理不同的大数据用例和需求的全面且统一的解决方案

  • 学习scala

spark的原生语言是Scala,因此入门一下Scala是学习Spark的第一步,首先当然是先搞定程序猿必须经历的搭建环境阶段。

  1. Mac环境下安装scala
    · 必须得先安装java
    · 下载压缩包 scala-2.11.8.tgz
    · 解压压缩包
    cd ~/Download/
    tar -zxvf scala-2.12.8.tgz
    mv scala-2.12.8 /usr/local/scala
    · 配置环境变量
    命令行输入:vim ~/.bash_profile进行编辑,增加环境变量
    SCALA_HOME=/usr/local/scala
    export PATH=$PATH:$SCALA_HOME/bin
    #使环境变量生效,在命令行执行
    source ~/.bash_profile
    · 验证:在命令行输入scala,出现Welcom to scala即为成功
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章