用戶調研
- 優點:可以獲得很多體現用戶主觀感受的指標,比在線實驗風險低,出現錯誤后很容易彌補。
- 缺點:招募測試用戶代價較大;很難組織大規模的測試用戶,因此測試結果的統計意義不足。
在線評估
設計一個在線實驗,然后根據用戶的在線反饋結果來衡量推薦系統的表現。在線評估中,比較重要的兩個選擇點是——在線實驗方式和在線評估指標。
ABTest介紹
ABTest就是為了實現同一個目標制定兩個方案,讓一部分用戶使用A方案,另一部分用戶使用B方案,記錄下兩部分用戶的反饋情況,然后根據相應的評估指標確認哪種方案更好。
互聯網行業里,在軟件快速上線的過程中,ABTest是一個幫助我們快速試錯的實驗方法。在統計學上,ABTest其實是假設檢驗的一種形式。它能幫助開發者了解推薦系統的改動是否有效、能夠帶來多大的KPI提升。
在推薦系統中,為了對比不同算法、不同數據集對最終結果的影響,通過一定的規則將用戶隨機分成幾組,並對不同組采取不同的召回或推薦算法,最終通過不同組用戶的各種評估指標來進行對比分析。
一個典型得到ABTest架構圖如下所示:
這里需要注意的是,在對用戶進行分桶並召回商品之后,需要重新將用戶打散並分桶,這樣能確保不同桶之間的用戶沒有相關性,召回池中的ABTest和排序部分的ABTest沒有關聯,互不影響。
在線評估指標
在線評估指標是指在實際的業務場景中去評估推薦系統好壞的指標。常見的在線評估指標包括點擊率、轉化率、GMV等。
離線評估
根據待評估推薦系統在實驗數據集上的表現,基於一些離線評估指標來衡量推薦系統的效果。相比於在線評估,離線評估更方便、更經濟,一旦數據集選定,只需將待評估的推薦系統在此數據集上運行即可。離線評估最主要的環節有兩個:拆分數據集、選擇離線評估指標。
數據集拆分
在機器學習中,通常將數據集拆分為訓練數據集、驗證數據集和測試數據集。它們的功能分別如下。
數據集拆分
在機器學習中,通常將數據集拆分為訓練數據集、驗證數據集和測試數據集。它們的功能分別如下。
訓練數據集(Train Dataset):用來構建機器學習模型。
驗證數據集(Validation Dataset):輔助構建模型,用於在構建過程中評估模型,為模型提供無偏估計,進而調整模型的超參數。
測試數據集(Test Dataset):評估訓練完成的最終模型的性能。
三類數據集在模型訓練和評估過程中的使用順序如圖所示。
驗證數據集(Validation Dataset):輔助構建模型,用於在構建過程中評估模型,為模型提供無偏估計,進而調整模型的超參數。
測試數據集(Test Dataset):評估訓練完成的最終模型的性能。
三類數據集在模型訓練和評估過程中的使用順序如圖所示。

數據集拆分的方式有:
- 留出法
- K-折交叉驗證法
- 自助法
離線評估指標
離線評估指標用於預估模型上線前在整個推薦系統中能達到的效果。常見的離線評估指標可以分為兩大類:
- 准確度指標:評估推薦系統的最基本的指標,衡量的是指標推薦算法在多大程度上能夠准確預測用戶對推薦商品的偏好程度,可以分為分類准確度指標、預測評分准確度指標、預測評分指標關聯。
- 非准確度指標:在推薦系統達到一定的准確度之后,衡量推薦系統豐富度和多樣性等的指標。
其中預測分類准確度指標包含:
- AUC
- 准確率(Accuracy)
- 精確率(Precision)
- 召回率(Recall)
- F-measure值。
預測評分准確度指標包含:
- 平均絕對誤差(MAE)
- 均方誤差(MSE)
- 均方根誤差(RMSE)
預測評分關聯指標包含:
- 皮爾遜積距相關系統
- 斯皮爾曼等級相關系數
- 肯德爾等級相關系數
預測排序准確度指標包含:
- 評價排序分
非准確度的指標包含:
- 多樣性
- 新穎性
- 驚喜度
- 覆蓋率
- 信任度
- 實時性
- 健壯性
- 商業目標