神經網絡與推薦系統初步簡介

做者:一人算法

1.深度神經網絡對於任何領域都是適用的

這裏寫圖片描述
深度神經網絡(Deep Neural Networks,
DNN)在過去的數年已經在圖像分類、語音識別、天然語言處理中取得了突破性的進展。在實踐中的應用已經證實了它能夠做爲對於一種十分有效的技術手段應用在大數據相關領域中。深度神經網絡經過衆多的簡單線性變換層次性的進行非線性變換對於數據中的複雜關係可以很好的進行擬合,即對數據特徵進行的深層次的挖掘。所以做爲一種技術手段,深度神經網絡對於任何領域都是適用的。markdown


2.推薦系統簡介

推薦系統的功能是幫助用戶主動的找到知足偏好的個性化物品並推薦給用戶。在本質上能夠當作一個個性化的搜索引擎,輸入的數據爲用戶行爲信息、偏好信息等,返回的結果爲最符合查詢條件的物品列表。數學化的表示:網絡

=f()1

咱們的推薦引擎就扮演者這裏的函數的角色,它主要須要完成兩部分的工做:app

A > 針對查詢條件對物品的相關性進行估計。ide

B > 曬選出topN個最相關的物品。函數

所以,推薦系統的關鍵就是對上面函數的一種求解性能

實際應用中的物品數量很大,所以在知足業務須要的前提下,對於全部物品使用評估函數進行評估是不實際的。所以爲了實現性能與效果的平衡,大多的推薦系統將以上的計算過程分爲兩個部分:學習

  • 推薦召回大數據

  • 推薦排序優化

推薦召回指在全部物品集合中檢索到符合用戶興趣的候選集,大約篩選出幾百個候選的列表。排序的目的是要利用展現、點擊(或轉化)數據,而後加入更多的用戶、物品特徵,對推薦候選進行更精細的修正、打分。這種模式另外一個好處是可以利用多種候選集。

這裏寫圖片描述

所以,推薦系統須要完成兩步計算:候選集生成和排序,這兩階段的估計函數分別表示爲g和h,即有:

f=g(h(x))2


3.使用神經網絡近似求解函數參考1

對於函數的求解大多分爲如下幾種途徑:

  • 肯定性求解:經過對數據的規律進行建模直接求解。

  • 肯定性近似求解:經過變分推斷的相關方法進行求解,EM。

  • 隨機性近似求解: 經過採樣的方法對函數進行求解,蒙特卡洛方法。

  • 非結構化求解

無論這個函數是什麼樣的,總會有一個神經網絡可以對任何可能的輸入 x 網絡能夠獲得對應的值 f(x) (或者某個足夠準確的近似)

即便函數有不少輸入或者多個輸出,這個結果都是成立的, f=f(x1,...,xm) 。例如,這裏有一個輸入爲 m=3 和輸出爲 n=2 的網絡:
這裏寫圖片描述

綜上,神經網絡做爲一種近似化求解方法能夠用來對於公式(2)兩個函數g, h進行近似。


4.推薦召回

  • Google利用DNN來作YouTube的視頻推薦其模型圖以下圖所示。經過對用戶觀看的視頻,搜索的關鍵字作embedding,而後在串聯上用戶的side
    information等信息,做爲DNN的輸入,利用一個多層的DNN學習出用戶的隱向量,而後在其上面加上一層softmax學習出Item的隱向量,進而便可爲用戶作Top-N的推薦。
    這裏寫圖片描述

  • Autoencoder(AE)是一個無監督學習模型(相似矩陣分解),它利用反向傳播算法,讓模型的輸出等於輸入。利用AE來預測用戶對物品missing的評分值,該模型的輸入爲評分矩陣中的一行(User-based)或者一列(Item-based),其目標函數經過計算輸入與輸出的損失來優化模型,而評分矩陣中missing的評分值經過模型的輸出來預測,進而爲用戶作推薦,其模型以下圖所示。後續,Denoising Autoencoder(DAE)是在AE的基礎之上,對輸入的訓練數據加入噪聲。因此DAE必須學習去除這些噪聲而得到真正的沒有被噪聲污染過的輸入數據。所以,這就迫使編碼器去學習輸入數據的更加魯棒的表達,一般DAE的泛化能力比通常的AE強。Stacked
    Denoising
    Autoencoder(SDAE)是一個多層的AE組成的神經網絡,其前一層自編碼器的輸出做爲其後一層自編碼器的輸入。還有Bayesian
    SDAE等等衆多方法均同源於此。
    這裏寫圖片描述


5.推薦排序

  • Wide & Deep 模型,Google利用DNN和傳統廣義線性模型結合的方式實現對於Google Play
    中的應用進行推薦。
    DNN具備很好的泛化性而廣義的線性模型具備很好的記憶性,經過將兩者結合,在實現很好的泛化性基礎上對於不相干的物品規則進行了抑制。在輸入層將類別特徵經過embedding和連續值進行鏈接造成輸入的嵌入向量並經過三層的網絡造成輸入的隱向量,並在輸入層將app相關的特徵進行交叉相乘,連同隱向量輸入一個邏輯輸出單元中,最終輸出對於特定app的評分。
    這裏寫圖片描述

6.神經網絡其餘應用

  • 詞向量表示,使用淺層神經網絡方法進行學習。利用序列數據中蘊含的信息,將物品的表示由高維稀疏表示映射到低維密集表示。典型的模型方法有:word2vec
    [無監督]和GloVe[無監督] (Global Vectors for Word Representation)。
    ——————————————————————————————————–
    下圖展現的是基於CBOW層次網絡結構的word2vec,輸入層是若干個詞的詞向量,經過映射層進行累加,輸出層中黃色節點是非葉子節點表明一個類別,而葉子節點表明一個詞向量,整個輸出層是一個霍夫曼樹。假設對於特定的上下文,特定的中間詞的預測機率最大,進行訓練獲得詞的低維密集表示。
    ——————————————————————————————————–
    例如:語句「直接修改此文件」,分詞後有「直接」,「修改」,「此文件」。那麼對於詞「修改」進行訓練,那麼輸入的上下文就是「直接」、「此文件」,咱們指望「修改」的機率最大。經過使用大量樣本訓練後,能夠在葉子節點訓練獲得對應詞的向量表示。以後,能夠計算詞向量之間的類似性來表明詞之間的類似性,諸如此類對進一步的分析提供方便。
    ——————————————————————————————————–
    這裏寫圖片描述

7.神經網絡的難點

因爲神經網絡用多層結構擬合複雜的非線性關係,具備龐大的參數,而且隨着網絡的深刻進行訓練愈發困難。所以對於實際中的應用具備如下難點:

  • 須要大量的訓練數據

  • 調參不存在合理的選擇方法

  • 對於具體應用不存在標準的網絡結構

8.當前數據應用深度模型面臨的挑戰

  • 用戶行爲稀疏,所以數據中存在大量的噪音

  • 媒體庫數據可用字段較少

  • 用戶畫像雜亂,用戶屬性信息採集不明確


總結

之前,計算資源寶貴,而且計算能力偏弱,所以爲了實現智能化功能,須要研發人員將功能規則經過人爲的方式間接的融入進算法當中,以此來減小計算量。可是因爲用戶的應用場景繁雜,所以每每存在着衆多研發人員沒法預估的狀況。並且因爲不少的近似求解方法須要獲得精確地結果須要大量的計算而迫使多數應用場景沒法實現和採用,所以在過去的數年間,應用層面的智能化發展停滯不前。而隨着計算能力的迅速發展,利用大量計算實現智能化的功能已經成爲可行策略。而深層神經網絡算法以其強大的擬合能力就是適應了這種發展趨勢,迅速的在圖像、語音、天然語言等領域取得了巨大的成就。

個性化推薦做爲衆多智能場景中的一員,已經吸引了衆多的研發人員投入其中,不一樣於圖像、語音等具備豐富的特徵且算法結果和真實樣本不會產生互相影響,因爲推薦中特徵數據的繁雜,且推薦的結果影響着採集到的數據,目前推薦當中並不存在一種通用型的結構和方法。也有不少人將神經網絡的方法應用在總體推薦的子領域當中已經取得了不錯的效果。能夠預見隨着更多的人員參與進來,個性化推薦必將被神經網絡的方法所侵佔。

在工業中,在有限的資源投入的狀況下,緊跟技術前沿的發展,將先進的方法在系統當中進行驗證。或者對於行業取得穩定效果的方法進行驗證並進行系統集成,產品將會得到巨大的收益。

附:

Word2vec 效果【節目vec之間的類似度】:

  1. 碟中諜5:神祕國度

【 # 危機13小時,# 碟中諜4,# 死亡飛車,# 極限特工2,# 虎膽龍威5,#
星際穿越,# 叢林奇兵, # 刺客聯盟, # 諜影重重2, # 很是人販】

  1. 86版西遊記

【# 西遊記動畫片,# 西遊記之鎖妖封魔塔,# 西遊記之大鬧天宮(3D),#
西遊記之大鬧天宮,# 西遊記之孫悟空三打白骨精, # 嘻遊記, #
西遊記之大聖歸來, # 西洋鏡, # 電哪吒, # 孫悟空七打九尾狐 】

  1. 射鵰英雄傳

【# 射鵰英雄傳 第3集,# 射鵰英雄傳 李亞鵬版,# 神鵰俠侶,# 神鵰俠侶[粵語版],# 天龍八部, # 方世玉與胡惠乾, # 倚天屠龍記大結局, # 新神鵰俠侶, # 神鵰俠侶黃曉明版, # 天涯明月刀】

相關文章
相關標籤/搜索