loading

Resources

11Dec 2017

案例 | 大數據環境下使用神經網絡技術實現壽險產品推薦

案例 | 大數據環境下使用神經網絡技術實現壽險產品推薦
2017 年12 月01日
 
作者:王瑋、顧佳盛、徐勤燕、楊陽
 
原文: Cloudera中國
 

一、引言

近年來,大數據與機器學習相結合,使產品推薦技術迅速成熟。目前,產品推薦已廣泛用於多媒體、出版、快消等電子商務場景,並開始探索在傳統行業中的應用。
 中國人壽作為首家也是目前唯一一家保費收入超過4000億人民幣的保險公司,客戶量巨大,多年以來積累了大量數據。利用大數據為擁有不同需求的客戶推薦個性化的產品,是一個非常有吸引力的課題。目前,業內最普遍的推薦方式以營銷人員自身從業經驗,結合當期公司主推險種為主,鮮有考慮客戶自身的需求,產品與客戶需求之間錯誤匹配的案例時常發生,導致了撤單或退保,影響公司業務發展。因此,如果能建立一套模型,以海量數據為依據,以科學理論為支撐,為客戶提供個性化的推薦,就可以給營銷員帶來很大的便利,同時也能大大提高客戶滿意度。
 

二、建模

1、應用平台背景介紹
    
 
我們使用了中國人壽的大數據平台,部署情況如圖:一、平台采用了Cloudera的Hadoop Distribution5.10版本。通過Sqoop將業務系統的數據接入HDFS,使用Hive/Impala進行數據清洗,同時,利用Python或者Scala進行數據預處理。二、使用了Spark On Hive以結構化形式讀取數據。三、采用了Spark上的開源深度學習庫BigDL來構建推薦應用。
 
2、神經網絡的協同過濾
2.1 模型選擇
我們選擇以協同過濾的算法作為起步,以減輕特征工程量。後期,增加了基於內容的算法,將協同過濾和基於內容推薦的算法相結合。
矩陣分解是目前主流的協同過濾算法之一,我們使用Spark中的ALS矩陣分解算法對數據進行了訓練,但推薦結果並不理想。此外,ALS算法並不是增量式的,當數據量越來越大,每次訓練全部數據的時間就會越來越長。並且,後期如要添加基於內容的推薦算法,模型融合方面也會是個問題。
 由於ALS的推薦結果的計算過程是線性計算,算法難以適用於覆雜模型。本文采用了BigDL來構建基於Spark的神經網絡,期望通過神經網絡的計算能力支持覆雜模型。選裝神經網絡的三點原因如下:一是可以將協同過濾算法和基於內容的算法結合在同一個模型,而模型融合通常比較困難。二是其激活函數可以選擇線性或非線性。既可以通過多種非線性、層次疊加變得很覆雜,挖掘數據中覆雜的關聯關系,又可以在數據內部關系較簡單的時候,簡化之。三是在生產環境中使用比較方便。若有新的數據加入,可以直接增加,進行增量訓練。
 
2.2 模型特征選擇
 傳統的協同過濾用來建模的數據代表用戶對於某事物的喜愛程度,在險種推薦的場景中即為用戶對於某產品的購買行為。訓練的特征值包含如下三個方面:
 
 
2.3 建模過程
推薦系統的構建過程經過了如圖四個步驟。在分訓練數據和驗證數據時,我們使用留一法,從每個活躍客戶的數據中隨機取出一條購買記錄作為驗證,其他數據作為訓練數據,這就保證了所有用戶數據都進入了訓練集。
 
 
其中,數據清洗和特征工程占據總耗時的60%左右,調優的過程占據整個項目的20%左右的時間。對於模型中的處理邏輯,大致的內容如圖:
 
2.4 模型結構
推薦系統的模型部分我們使用了基於神經網絡的協同過濾,我們參考了何向南博士的論文《Neutral collaborative Filtering》中的推薦網絡結構。
 
 
最底部的輸入層:分別輸入兩個特征向量V_uˆU和V_iˆI,也就是之前所講的USER ID和ITEM ID,它們分別用來描述user u 和item i。ˆ【1】模型分為左右兩個部分,整合過程位於上層。左側是廣義矩陣分解,對輸入向量進行乘法運算。右側是典型的多層神經網絡,將輸入的user和item的特征拼接在一起,進行多層的變換。然後,在上層將兩個模型的結果整合,並且通過sigmoid方法將這些特征轉化成為最終的用戶傾向值。模型的輸出為每個USER對於每個ITEM的評分,將這些評分逆序排列,為用戶推薦top N(模型中默認N=10)的產品。
其中,模型參數初始化設置是將嵌入層輸入數據轉化為均值0,方差為0.01的正態分布。模型訓練的參數Batch Size設為2800,調優方法選擇Adam。
 

三、結論

 

1、模型評估
1.1 LOSS值
在模型評估中,訓練過程產生的Loss值,代表了預測情況與實際記錄的差異,用於檢驗模型結構的正確性。在多輪?代以後,本案例中的訓練集和驗證集的LOSS都可以降至0.1附近。
1.2 HitRate和NDCG
Loss本身只代表了模型應用於樣本數據的符合程度,只能對現實數據提供部分參考。為了更好地評估模型效果,本文選擇使用Hit Rate和NDCG作為最終的評估指標。主要原因是我們的數據是隱式反饋類型的,如果只采用普通的二分類評估的方法,可能造成分數很高但實際效果較差。例如采用精確度(precision)指標,一個把所有的樣本都預測成1的壞分類器,能達到100%的準確率(因為我們真正的購買只有正樣本)。
 
 
最終HIT RATE達到了99.8%,NDCG到達了0.66,說明模型非常適用於現有的數據,推薦系統成效顯著。
 
鳴謝
       感謝INTEL大數據技術中心和CLOUDERA。
 
 
參考文獻
【1】何向南. Neural Collaborative Filtering.(2017).
 
 
 
Back to list.
Prev
Apache Impala (incubating) 與 Amazon Red-shift:在 AWS 上的 S3 整合、彈性、敏捷性與性價比優勢
Apache Impala (incubating) 與 Amazon Red-shift:在 AWS 上的 S3 整合、彈性、敏捷性與性價比優勢
Next
案例 | 物聯網在醫療領域的應用
案例 | 物聯網在醫療領域的應用