任立國,張 熇,朱 桂
(1.國家電網公司客戶服務中心黨委黨建部(黨委宣傳部),天津 300309;2.國網智聯電商有限責任公司南方交付部,天津 300000)
推薦算法可分為:1)內容分析推薦算法。利用受眾對觀看內容的停留時間和認同(包括但不限于點贊、轉發、評論等)操作,將受眾貼上標簽,系統將會對標簽標記用戶推送類似關聯性很大的ITEM;2)協同過濾算法。將單獨個人標簽關聯的ITEM 推薦給自己的密切聯系人;3)混合推薦算法。融合了“內容分析算法”和“協同過濾算法”以加權或者串、并聯等方式,利機械學習進行建模[1-2]。
其算法各具特色,“內容分析推薦算法”與其他兩種算法不同點在于,可減少ITEM 的起步時間,避免因某些ITEM 沒有被瀏覽過而消殺。而弊端在于此方法重復性強,會反復推薦同一屬性內容。無論以何種算法建模,我們都需要用到特征工程和、模型學習。
現有短視頻APP 中,一個完整的作品會有賬號、視頻、音頻、文案組成,利用NLP,CV,AUDIO 等學習模型,來標記其中的差異,讓每一個單獨的個體具備其自己的特征標簽,這樣就形成了一對一映射的ITEM特征。在受眾使用的過程中,其注冊的個人信息會形成用戶基本特征信息,受眾在使用過程中,觀看視頻的時長,何時點贊、轉發、評論等操作,會形成用戶基本交互信息,一般我們抽取并標簽的交互信息有三個部分,分別是用戶基本特征信息(user_ID,user_CITY),視頻特征標簽(item_ID,item_CITY,author,duration_time,song)和用戶基本交互信息(did,channel)。
利用我們標記的標簽信息,利用FM 算法和自主學習模型,可以更多的發現潛在關系(用戶興趣方向、目標年齡與興趣關系、目標性別興趣差異等)。

上述算法主要是挖掘潛在的交互特征,數據信息為:x特征值;y是輸出結果;n是相互交互層級。每提升一層級合數越復雜。一般來說特征值分為離散和稠密兩種特征,category 的特征需要one-hot 編碼,其相互交互后,會產生高維度的特征,一般的服務器處理能力較低,會產生較多硬件問題。但在實驗環節中,一般維度會控制n<2的范圍內。
一般我們會將受眾的瀏覽記錄、轉發、點贊交互信息記錄下來,按照時間順序排布生成的有利于映射歷史數據的信息我們稱為時間信息,這類數據信息可以計算受眾之后的行為,我們把這類可以利用全部歷史數據來推測未來的行為特征信息統稱為全局特征,利用一小部分歷史數據來推測未來行為的特征信息統稱為局部特征。
整體特征從SVD 解析、Statistics 特征、TIME 特征等進行特征的匯總。
SVD解析一般是特征的降維和主要元素的解析,運用SVD可以把維度較高的特征進行降維,再將降維后的數據在模型中進行反復計算、測試和優化,例如用戶的ITEM,我們可以創建一個ITEM矩陣,其中的元素則表示此受眾是否和ITEM之間有無關系,有關系則記錄為1,無關則記錄為0,我們將這個不稠密的高緯度矩陣,利用SVD分析,收集前n個主要數據生成一個較稠密的特征,在模型中受訓,可以減少大量的算力。
Statistics 特征中一般我們會分解為U-item,Uauthor,U-title 后進行特征的統計,基本統計方式有方差、條件概率等。(P(did|uid),P(channel|uid),P(did|item_id),P(channel|item_id),P(item_author|uid),P(item_city|uid),P(uid_city|item_id))
TIME 特征是這些特征是基于用戶的觀看時間節點、用戶的觀看頻次等數據進行深度分析,而產生的用戶時間維度的興趣關聯。
局部特征(見圖1)是把歷史數據按照時間排序進行劃分,未劃分的數據視作訓練數據,利用以前的數據排列成特征組合,再將訓練數據的元素按照時間排序進行歸納分析,前25%的數據當作訓練數據,剩下的作為以前的數據,過程中可再次進行劃分來優化模型,按照10%的數據依次劃分。根據馬爾可夫理論,當前的狀態一般只和前面一個狀態相關,這也是為何如此劃分數據集的依據。

圖1 特征圖
在上述過程里mean 和regression 只針對目標finish 和like 進行計算,這些特征只記錄了用戶的歷史行為,count_from_past,count,count_from_future,這些特征從時間角度上統計了用戶從歷史-現在-未來的行為。matrix_factorization 特征是通過FM 算法計算的只利用user和item信息的一個特征,這樣即利用了fm的信息,計算量又小。詳見圖2、圖3。

圖2 信息流程

圖3 邏輯流程
完成特征的構建我們就可以讓機器學習的算法來進行模型的重復訓練。一般算法有基于boost算法的決策樹和dnn 算法。針對不同特征使用不同的訓練器訓練流程,feature0 代表局部特征,feature1 代表全局特征,最后將兩個框架的結果進行融合。由于整體特征在like 任務的表現一直不理想,所以基于該特征的xdeepfm 并未進行實驗。詳細的參數選擇和特征選擇后,Final最終提交public結果。