神经网络与推荐系统初步简介
作者:一人
1.深度神經網絡對于任何領域都是適用的
深度神經網絡(Deep Neural Networks,
DNN)在過去的數年已經在圖像分類、語音識別、自然語言處理中取得了突破性的進展。在實踐中的應用已經證明了它可以作為對于一種十分有效的技術手段應用在大數據相關領域中。深度神經網絡通過眾多的簡單線性變換層次性的進行非線性變換對于數據中的復雜關系能夠很好的進行擬合,即對數據特征進行的深層次的挖掘。因此作為一種技術手段,深度神經網絡對于任何領域都是適用的。
2.推薦系統簡介
推薦系統的功能是幫助用戶主動的找到滿足偏好的個性化物品并推薦給用戶。在本質上可以當做一個個性化的搜索引擎,輸入的數據為用戶行為信息、偏好信息等,返回的結果為最符合查詢條件的物品列表。數學化的表示:
物品列表=f(用戶偏好)???????????公式(1)
我們的推薦引擎就扮演者這里的函數的角色,它主要需要完成兩部分的工作:
A > 針對查詢條件對物品的相關性進行估計。
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之間的相似度】:
【 # 危機13小時,# 碟中諜4,# 死亡飛車,# 極限特工2,# 虎膽龍威5,#
星際穿越,# 叢林奇兵, # 刺客聯盟, # 諜影重重2, # 非常人販】
【# 西游記動畫片,# 西游記之鎖妖封魔塔,# 西游記之大鬧天宮(3D),#
西游記之大鬧天宮,# 西游記之孫悟空三打白骨精, # 嘻游記, #
西游記之大圣歸來, # 西洋鏡, # 電哪咤, # 孫悟空七打九尾狐 】
【# 射雕英雄傳 第3集,# 射雕英雄傳 李亞鵬版,# 神雕俠侶,#
神雕俠侶[粵語版],# 天龍八部, # 方世玉與胡惠乾, # 倚天屠龍記大結局, #
新神雕俠侶, # 神雕俠侶黃曉明版, # 天涯明月刀】
轉載于:https://www.cnblogs.com/wangyaning/p/7853862.html
總結
以上是生活随笔為你收集整理的神经网络与推荐系统初步简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不同浏览器隐藏默认表单样式
- 下一篇: 在Windows 7上安装Team Fo