推薦算法工程師入坑第二課

這個博客主要用來記錄自己畢業後入職的第一份工作的填坑經歷,也想因此設立一個專欄記錄未來自己的發展歷程。希望能與和自己一樣奮鬥在算法一線的研發猿們或者努力進坑的童鞋們一起分享自己的成長經歷

  • 以後這篇博客主要和大家分享自己的學習過程和踩過的各種坑。

前言

本人某普通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即爲成功
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章