『壹』 「干貨」YouTube 基於深度神經網路推薦系統剖析
YouTube推薦系統的三大難點:
· 一是規模太大,簡單的推薦演算法在如此大規模數據量上可能是失效的;
· 二是實效性,即新數據不斷產生,需要將其良好的呈現給用戶,以平衡舊有的好內容以及新內容;
· 三是噪音問題,用戶行為與視頻描述均有噪音,並且只能獲得充滿噪音的用戶隱含反饋,而不能直接獲取用戶滿意度。
圖1.YouTube基於深度學習推薦系統架構圖
本文呈現的推薦系統解決方案分為兩個部分:
· 一個是備選生成(Candidate Generation),其目標是初選結果,從海量數據中選擇出符合其個人需求偏好的百級別數據;
· 一個則是排序(Ranking),通過更加豐富的用戶,視頻乃至場景信息,對結果進行精細化排序,得到呈現給用戶的備選。
備選生成階段,將推薦系統定義為一個多分類器,其職責是確定某個用戶,在某個場景與時間下,將從系統的視頻中選擇消費哪一個視頻。具體的方法是,將用戶與視頻全部轉化為Embedding描述,即一個向量,最終用戶消費某個視頻的概率通過如下方式計算得到:
而構建用戶與視頻的Embedding,則是通過訓練而來。將用戶觀看視頻/搜索記錄/其它信息如年齡性別等作為輸入特徵,部分稀疏特徵首先進行Embedding化,中間為數層ReLU,最終一層用SoftMax進行分類。大胡 換句話講,是將用戶與場景信息作為輸入,預估用戶下一個要看的視頻,也就是將用戶分到具體某一個視頻作為其類別。 用戶與視頻的Eembedding,則是神經網路最後一層的對應矩陣。這種方法除了能利用用戶行為信息外,其它信息例如設備,地理位置,性別等也可以作為輸入,這是神經網路相對於普通MF類演算法的優勢之一。
圖2.YouTube推薦備選生成階段架構
備選生成的下一個階段是排序。其網路結構跟備選生成階段類似,將所有排序模型中的信息輸入後,進入多層ReLU,最終進行優化的是一個加權邏輯回歸損失函數,觀看時間作為陽性樣本權重。在這一層,也可以看到其推薦「代理問題」的轉化:由點擊行為預估轉為了以觀看時長為權重的點擊行為預估,這樣更佳貼近Youtube的產品優化方向。與備選生成階段另一個不同在於,排序模塊需要考量的特徵要多得多:
· 「場景」類特徵,例如用戶可能在某個地方某個時間願意觀看某一條視頻,但是在別的地方別的時備猛間則不會;
· 曝光信息:用戶觀看了某界面,但是並未在其上進行操作,那麼隨之應進行已呈現內容降級;
· 備選生成層輸出:排序需要將各種備選結果聯合起來;
· 更豐富的用戶信息:例如用戶最近的一次搜索詞,用戶最近觀看的同一個主題下的視頻數量,用戶上一次觀看同主題視頻的時間,用戶所使用的語言等;
圖3.YouTube推薦排序階段架構
除了整體設計與系統架構以外,本篇論文中陳述了很多「選擇」,這些選擇更多的是「藝術」而不完全屬於技術范疇。這些選擇往往是很多技術人員關注不多的點,但在筆者看來,這些都蘊含著YouTube技術與產品人員深入的思考與判斷。
「Example Age」 特徵
對於YouTube產品層來講,鼓勵內容產生毫無疑問是至關重要的,所以推薦系統也希望對用戶上傳的新內容的有所偏好。然而幸運的是,即使損失一部分相關性,視頻的消費者也偏好新內容。也就是說,新內容的價值可以良好的通過其帶來的吸引力呈現出來,並不需要平台刻意而為之。
由於系統使用一個時間窗口的訓練樣本進行訓練,如果沒有視頻的上傳時間信息,那麼模型會認為這個時間窗口內用戶對視頻的偏好是穩定的,然而事實遠非如此。將視頻的上傳時間加入到特徵集合後,預估更加准確,尤仿仿橋其是視頻剛上傳階段的強烈便好被成功捕捉到。
圖4.無時間特徵預估/有時間特徵預估/真實情況 三者對比
優化目標選擇
圖5.優化對象的選擇
演算法系統的設計首先要明確優化對象,這不僅僅涉及到損失函數的形式,同樣也是評判系統成功與否的標准。YouTube是視頻平台,更是富含「價值」的長視頻平台,其觀看行為比點擊行為意義更大。(當然,筆者認為沒有任何一個簡單指標可以完全代表一個產品)
「正樣本」定義
圖6.何為正樣本的設計選擇
訓練數據來源
圖7.關於訓練數據來源的設計抉擇
訓練數據應該只來源於推薦界面的曝光嗎?YouTube認為不然。如果只考慮推薦界面曝光,則無法對用戶便好進行 探索 ,更加無法捕捉用戶偏好的變化,因為用戶偏好的變化往往首先會對應著搜索與瀏覽行為。所以YouTube將各個界面例如搜索,導航等用戶行為全部納入其中。
訓練數據窗口
圖8. 訓練數據收集方式的設計選擇
Youtube將所有用戶等而視之,每個用戶收集一定量的樣本。而不是慣常可見的直接收集一個時間窗口內的所有用戶行為,作為訓練樣本。這樣的好處是避免系統收到少數行為過多用戶的影響,使得系統更多的為大眾設計。這樣的設計理念與近期阿里Gai Kun的論文中評測方法(用戶AUC)設計有異曲同工之妙。
用戶行為序列處理
圖9.用戶行為序列信息處理的設計選擇
在系統中,用戶往往會順著一個檢索結果頁或者用戶發布者瀏覽頁進行順序觀看,如果系統捕捉到了用戶看了檢索界面的前三個結果,那麼預估用戶將看第四個結果就會很容易。但是這樣真的好嗎?將檢索結果頁面或者用戶發布視頻界面直接作為推薦結果呈現給用戶是並不友好的--搶了別的界面應該乾的活嘛。所以此處YouTube對用戶行為序列做了處理,在模型輸入中選擇放棄用戶行為的序列信息,將其打散成詞袋Embedding,即使這樣的信息有利於模型的離線訓練效果。
預估對象的選擇
圖10.關於預估對象的設計選擇
用戶的行為往往是有順序的,用戶在系統中「熱身」後,在一個頻道下面,往往先看大眾喜歡的熱門,然後逐步找到自己的興趣點,聚焦看一塊內容。那麼,訓練數據則應該收集用戶前段時間行為,預估此後的行為。而不是收集時間前後段的行為,預估中間時間段的用戶行為。這樣模型更加接近用戶習慣。
除此之外,Youtube根據系統設計了對應的實驗,結果非常簡單:深度網路層數越高,效果越好。
YouTube的推薦系統,已經為其貢獻了70%的用戶播放時長,搜索與導航在PC時代的主導地位在移動時代已經完全被顛覆掉。希望大家在其中學到一些東西。筆者水平所限,若有錯誤不當之處,敬請指正。
另外,個人用TensorFlow模擬Youtube的推薦系統,做了一個簡單實現。其實就是一個多分類器外加一個單分類器,遠談不上成熟,可以供大家參考。
https://github.com/wangkobe88/Earth
——END——
『貳』 推薦系統論文閱讀(十)-基於圖神經網路的序列推薦演算法
論文:
論文地址: https://arxiv.org/abs/1811.00855
論文題目:《Session-based Recommendation with Graph Neural Networks》SR-GNN
github: https://github.com/CRIPAC-DIG/SR-GNN
基於會話的推薦一般是將序列會話建模,將整個session進行編碼,變成一個隱向量,然後利用這個隱向量進行下一個點擊預測。但是這種方法沒有考慮到item直接復雜的轉換(transitions)關系,也就是item之間在點擊的session中除了時間順序外還有復雜的有向圖內的節點指向關系,所以之前的方法不足以很好的對點擊序列進行建模。
現有基於會話的推薦,方法主要集中於循環神經網路和馬爾可夫鏈,論文提出了現有方法的兩個缺點:
1)當一個session中用戶的行為數量十分有限時,這些方法難以獲取准確的用戶行為表示。如當使用RNN模型時,用戶行為的表示即最後一個單元的輸出,論文認為只有這樣並非十分准確。
2)根據先前的工作發現,物品之間的轉移模式在會話推薦中是十分重要的特徵,但RNN和馬爾可夫過程只對相鄰的兩個物品的 單向轉移關系 進行建模,而忽略了會話中其他的物品。
為了克服上述缺陷,本文提出了用圖神經網路對方法對用戶對session進行建模:
下面具體介紹怎麼進行圖序列推薦
V = {v1,v2...vm}為全部的item,S = { }為一個session裡面按時間順序的點擊物品,論文的目標是預測用戶下一個要點擊的物品vs,n+1,模型的任務是輸出所有item的預測概率,並選擇top-k進行推薦。
我們為每一個Session構建一個子圖,並獲得它對應的出度和入度矩陣。
假設一個點擊序列是v1->v2->v4->v3,那麼它得到的子圖如下圖中紅色部分所示:
另一個例子,一個點擊序列是v1->v2->v3->v2->v4,那麼它得到的子圖如下:
同時,我們會為每一個子圖構建一個出度和入度矩陣,並對出度和入度矩陣的每一行進行歸一化,如我們序列v1->v2->v3->v2->v4對應的矩陣如下:
這個矩陣裡面的值是怎麼計算的呢?下面講一下:
看左邊的出度矩陣,第一行為 0 1 0 0 ,代表著v1->v2,因為v1,只有一個指向的item,所以為1;看第二行,0 0 1/2 1/2,因為v2有指向v3和v4的邊,所以進行歸一化後每一個值都變成了1/2。入度矩陣的計算方法也是一樣的,就不再說了。
本文採用的是GRU單元進行序列建模,將圖信息嵌入到神經網路中,讓GRU充分學習到item之間的關系,傳統的GRU只能學到相鄰的兩個物品之間的關系,加入圖信息後就能學到整個session子圖的信息。
計算公式如下:
為了剛好的理解這個計算過程,我們還是使用之前那個例子:v1->v2->v3->v2->v4來一步步分析輸入到輸出的過程。
(1) 是t時刻,會話s中第i個點擊對應的輸入, 是n✖️2n的矩陣,也就是會話子圖的完整矩陣,而 是其中一行,即物品vi所對應的那行,大小為1✖️2n,n代表序列中不同物品的數量。
如果按照例子來看,如果i取2,那麼 為 [0 0 1/2 1/2 1/2 0 1/2 0]
進一步的,可以把 :拆解為[ , ]
(2) 可以理解基枯為序列中第i個物品,在訓練過程中對應的嵌入向量,這個向量隨山鋒唯著模型的訓練不斷變化,可以理解為隱藏層的狀態,是一個d維向量。
(3) H是d*2d的權重向量,也可以看作是一個分塊的矩陣,可以理解為H=[Hin|Hout],每一塊都是d*d的向量。
那麼我們來看看計算過程:
1)[ ..., ] ,結果是d * n的矩陣,轉置之後是n*d的矩陣,計作
2) : H相當於[ ],即拆開之後相乘再拼接,因此結果是一個1 * 2d的向量。
上面就是完整的第i個點擊的輸入的計算過程,可以看到,在進入GRU計算之前,通過跟As,i矩陣相乘,把圖信息嵌入到了神經網路中取,逗培加深了神經網路學習到的item之間的交互信息。
此外,就是GRU的計算過程了,跟原始的GRU不一樣的地方在於輸入從xt變成了嵌入了圖信息的as,i。
通樣也有更新門和重置門,計算方法跟原始GRU一模一樣。
這里的 其實就是相當於原始gru中的 ,只不過在SR-GNN裡面,進行一輪運算的時候i是沒有變化,相當於每個物品單獨進去GRU進行計算,得到自己的向量,也就是說在GRU的計算過程中, 是不斷變化的,看一下源碼更易於理解:
hidden就是公式裡面的 ,在gru的每一個step計算中都會進行更新,這里我有個疑問,如果所有item的hidden都更新的話,那麼應該是整個序列中所有的item並行進入GRU中進行計算,每一個step都得到自己的vector,當每個item的vector更新後,下一個step就重新根據新的 計算 ,接著計算下一個step。
計算過程大概就是下面這樣:
這里有四個GRU並行計算,沒次更新自己的hidden狀態,輸入則考慮所有的hidden和圖信息。
從上面的圖看來,每一個item都要進行T個step得到自己的item-vec,所以經過T個step後,我們就得到了序列中所有item的向量,即:
圖中用藍色框框畫出來的向量,有了這些向量後,我們怎麼得到預測結果呢?這就引入了下一個問題。
觀察上面的模型結構,我們看到attention,沒錯,我們認為一個session中的這些item-vec並不都對預測結果產生影響,有些item對結果影響很大,有些影響很小,所以我們進行了加權求和。同時,論文認為session對最後一個item-vec,s1=vn是重要的,所以單獨拿出來:
公式(6)就是簡單的attention操作,其實從公式上來看就是計算每個vi跟最後一個向量vn的權值,然後進行加權求和。
在最後的輸出層,使用sh和每個物品的embedding進行內積計算,這里vi應該是item的embedding層出來的向量,而不是後面一直更新的hidden:
最後通過一個softmax得到最終每個物品的點擊概率:
損失函數為交叉熵損失函數:
從數據上來看,SR-GNN超過了經典的GRU4REC,這也說明了圖信息的嵌入能帶來更好的推薦效果。
本論文很巧妙的將圖信息嵌入的神經網路中,更高地讓GRU學習到每個item之間的關系,不再局限於相鄰的物品之間進行學習。近年來,圖神經網路的思想和方法屢屢被用在推薦系統中,學好圖神經網路應該是推薦系統的下一個熱潮。
『叄』 簡單介紹神經網路演算法
直接簡單介紹神經網路演算法
神經元:它是神經網路的基本單元。神經元先獲得輸入,然後執行某卜銀些數學運算後,再產生一個輸出。
神經元內輸入 經歷了3步數學運算,
先將兩個輸入乘以 權重 :
權重 指某一因素或指標相對於某一事物的重要程度,其不同於一般的比重,體現的不僅僅是某一因素或指標所佔的百分比,強調的是因素或指標的相對重要程度
x1→x1 × w1
x2→x2 × w2
把兩個結果相加,加上一個 偏置 :
(x1 × w1)+(x2 × w2)+ b
最後將它們經過 激活函數 處理得到輸出:
y = f(x1 × w1 + x2 × w2 + b)
激活函數 的作用是將無限制的輸入轉換為可預測形式的輸出。一種常用的激活函數是 sigmoid函數
sigmoid函數的輸御弊巧出 介於0和1,我們可以理解為它把 (−∞,+∞) 范圍內的數壓縮到 (0, 1)以內。正值越大輸出越接近1,負向數值越大輸出越接近0。
神經網路: 神經網路就是把一堆神經元連接在一起
隱藏層 是夾在輸入輸入層和輸出層之間的部分,一個神經網路可以有多個隱藏層。
前饋 是指神經元的輸入向前傳遞獲得輸出的過程
訓練神經網路 ,其實這就是一個優化的過程,將損失最小化
損失 是判斷訓練神經網路的一個標准
可用 均方誤差 定義損失
均方誤差 是反映 估計量 與 被估計量 之間差異程度的一種度量。設t是根據子樣確定的總體參數θ的一個估計量,鎮鍵(θ-t)2的 數學期望 ,稱為估計量t的 均方誤差 。它等於σ2+b2,其中σ2與b分別是t的 方差 與 偏倚 。
預測值 是由一系列網路權重和偏置計算出來的值
反向傳播 是指向後計算偏導數的系統
正向傳播演算法 是由前往後進行的一個演算法
『肆』 推薦演算法綜述
推薦系統的目的是通過推薦計算幫助用戶從海量的數據對象中選擇出用戶最有可能感興趣的對象。涉及三個基本內容:目標用戶、待推薦項目以及推薦演算法,基本流程為:描述為用戶模型構建、項目模型建立以及推薦演算法處理三個基本流程;
為了能夠為用戶提供准確的推薦服務,推薦系統需要為用戶構建用戶模型,該模型能夠反映用戶動態變化的多層次興趣偏好,有助於推薦系統更好的理解用戶的特徵和需求。構建用戶模型通常需要經歷三個流程:用戶數據收集,用戶模型表示以及用戶模型更新。
(1)用戶數據收集:用戶數據是用戶模型構建的基礎,用戶數據收集的方式一般有顯示方式獲取和隱式方式獲取兩種。
顯示方式獲取的數據是用戶特徵屬性和興趣偏好的直接反映,所獲得的信息數據是較為客觀全面的,比如用戶在注冊時包含的性別、年齡等信息可以直接表示出用戶的基本人口學信息和興趣信息,用戶對項目的評分可以反映出用戶的偏好。但顯示獲取的方式最大的缺陷是其實時性較差,並且具有很強的侵襲性。
隱式方式獲取用戶數據是在不幹擾用戶的前提下,採集用戶的操作行為數據,並從中挖掘出用戶的興趣偏好。用戶的很多操作行為都能反映出用戶的喜好,比如用戶瀏覽網頁的速度、用戶查詢的關鍵字等,推薦系統在不影響用戶使用系統的情況下,通過行為日誌挖掘出用戶的偏好。隱式獲取方式由於具有較好的實時性和靈活性和較弱的侵襲性,己經成為推薦系統中主要的用戶數據採集方式。
(2)用戶模型表示:用戶模型是從用戶數據中歸納出的推薦系統所理解的用戶興趣偏好的結構化形式。
a 基於內容關鍵詞表示;
b 基於評分矩陣表示;
(3)用戶模型更新:推薦系統面臨的問題之一是興趣漂移,興趣漂移的根本原因在於用戶的興趣會隨時間發生改變。為了使用戶模型夠准確的代表用戶的興趣,推薦系統需要根據最新的用戶數據對用戶模型進行更新。
目前項目模型主要通過基於內容和基於分類這兩類方式來建立。基於內容的方式是以項目本身內容為基礎,向量空間模型表示是目前御用最為廣泛的基於內容的方式。
基於分類的方式是根據項目的內容或者屬性,將項目劃分到一個或者幾個類別中,利用類別信息來表示項目,這種方法可以很方便地將項目推薦給對某一類別感興趣的用戶。常見的分類演算法有樸素貝葉斯演算法和KNN分類演算法等。
推薦系統實現的核心是其使用的推薦演算法。針對不同的使用環境及其系統的數據特徵,選取不同的推薦演算法,可以在本質上提高推薦系統的推薦效果。根據不同的分類標准,推薦演算法出現了有很多不同的分類方法,本文採用了比較普遍的分類方法。
推薦系統通常被分為基於內容的推薦演算法、協同過濾推薦演算法以及混合模型推薦演算法三大類。
基於內容的推薦演算法,其本質是對物品或用戶的內容進行分析建立屬性特徵。系統根據其屬性特徵,為用戶推薦與其感興趣的屬性特徵相似的信息。演算法的主要思想是將與用戶之前感興趣的項目的內容相似的其他項目推薦給用戶。
CBF(Content-based Filter Recommendations)演算法的主要思想是將與用戶之前感興趣的項目的內容相似的其他項目推薦給用戶,比如用戶喜歡Java開發的書籍,則基於內容過濾演算法將用戶尚未看過的其他Java開發方面的書籍推薦給用戶。因此,該推薦演算法的關鍵部分是計算用戶模型和項目模型之間的內容相似度,相似度的計算通常採用餘弦相似性度量。
基於內容的推薦過程一般分為以下三個模塊:
(1)特徵提取模塊:由於大多數物品信息是非結構化的,需要為每個物品(如產品、網頁、新聞、文檔等)抽取出一些特徵屬性,用某一恰當的格式表示,以便下一階段的處理。如將新聞信息表示成關鍵詞向量,此種表示形式將作為下一模塊(屬性特徵學習模塊)的輸入。
(2)特徵學習模塊:通過用戶的歷史行為數據特徵,機器學習出用戶的興趣特徵模型。本模塊負責收集代表用戶喜好的數據信息,並泛化這些數據,用於構建用戶特徵模型。通常使用機器學習的泛化策略,來將用戶喜好表示為興趣模型。
(3)推薦模塊:該模塊利用上一階段得到的用戶特徵模型,通過對比用戶興趣模型與帶推薦物品的特徵相似度,為用戶推薦與其興趣相似度較高的物品,從而達到個性化推薦的目的。該模塊一般採用計算用戶興趣向量與待推薦物品特徵向量的相似度來進行排序,將相似度較高的物品推薦給相應用戶。計算相似度有多種方法,如皮爾遜相關系數法、夾角餘弦法、Jaccard相關系數法等。
協同過濾演算法(Collaborative Filtering)是於內容無關的,即不需要額外獲取分析用戶或物品的內容屬性特徵。是基於用戶歷史行為數據進行推薦的演算法。其通過分析用戶與物品間的聯系來尋找新的用戶與物品間的相關性。
該演算法演算法通常有兩個過程,一個過程是預測,另一個過程是推薦。主流的協同過濾演算法包括三種:基於用戶的協同過濾(User-Based Collaborative Filtering,UBCF)、基於項目的協同過濾(Item-Based Collaborative Filtering, IBCF)和基於模型的協同過濾(Model-Based Collaborative Filtering, MBCF)
(1)基於用戶的協同過濾演算法
基於用戶的協同過濾推薦演算法,先通過用戶歷史行為數據找到和用戶u相似的用戶,將這些用戶感興趣的且u沒有點擊過的物品推薦給用戶。
演算法主要包括以下兩個步驟:
(1)找到與目標用戶喜好相似的鄰居用戶集合。
(2)在鄰居用戶集合中,為用戶推薦其感興趣的物品。
UBCF的基本思想是將與當前用戶有相同偏好的其他用戶所喜歡的項目推薦給當前用戶。一個最典型的例子就是電影推薦,當我們不知道哪一部電影是我們比較喜歡的時候,通常會詢問身邊的朋友是否有好的電影推薦,詢問的時候我們習慣於尋找和我們品味相同或相似的朋友。
(2)基於物品的協同過濾演算法
基於物品的協同過濾演算法(Item-based Collaborative Filtering)其主要思想是,為用戶推薦那些與他們之前喜歡或點擊過的物品相似的物品。不過基於物品的協同過濾演算法並不是利用物品的內容屬性特徵來計算物品之間的相似度的。該類演算法是利用用戶的歷史行為數據計算待推薦物品之間的相似度。在該類演算法中,如果喜歡物品A的用戶大都也喜歡物品B,那麼就可以認為物品A和物品B之間的相似度很高。
演算法分為以下兩個步驟:
(1)根據用戶歷史行為數據,計算物品間的相似度。
(2)利用用戶行為和物品間的相似度為用戶生成推薦列表。
IBCF演算法是亞馬遜在2003年發表的論文中首次提出,該演算法的基本思想是根據所有用戶的歷史偏好數據計算項目之間的相似性,然後把和用戶喜歡的項目相類似的並且用戶還未選擇的其他項目推薦給用戶,例如,假設用戶喜歡項目a,則用戶喜歡與項目a高度相似且還未被用戶選擇的項目b的可能性非常大,因此將項目b推薦給用戶。
UBCF和IBCF都屬於基於內存的協同過濾演算法,這類演算法由於充分發揮了用戶的評分數據,形成全局推薦,因此具有較高的推薦質量。但隨著用戶和項目的規模增長,這類演算法的計算時間大幅上升,使得系統的性能下降。針對該問題,研究人員提出將數據挖掘中的模型和CF演算法結合,提出了基於模型的協同過濾演算法(MBCF) 。
MBCF演算法利用用戶歷史評分數據建立模型,模型建立的演算法通常有奇異值分解、聚類演算法、貝葉斯網路、關聯規則挖掘等,且通常是離線完成。由於MBCF通常會對原始評分值做近似計算,通過犧牲一定的准確性來換取系統性能,因此MBCF的推薦質量略差於UBCF和IBCF。
由於基於內容的推薦演算法和協同過濾推薦演算法都有其各自的局限性,混合推薦演算法應運而生。混合推薦演算法根據不同的應用場景,有多
種不同的結合方式,如加權、分層和分區等。
目前使用的混合推薦演算法的思想主要可以分成以下幾類:
(1)多個推薦演算法獨立運行,獲取的多個推薦結果以一定的策略進行混合,例如為每一個推薦結果都賦予一個權值的加權型混合推薦演算法和將各個推薦結果取TOP-N的交叉混合推薦演算法。
(2)將前一個推薦方法產出的中間結果或者最終結果輸出給後一個推薦方法,層層遞進,推薦結果在此過程中會被逐步優選,最終得到一個精確度比較高的結果。
(3)使用多種推薦演算法,將每種推薦演算法計算過程中產生的相似度值通過權重相加,調整每個推薦演算法相似度值的權重,以該混合相似度值為基礎,選擇出鄰域集合,並結合鄰域集合中的評估信息,得出最優的推薦結果。
BP (Back Propagation)神經網路是目前應用最廣泛的神經網路模型之一,是一種按誤差逆傳播演算法訓練的多層前饋網路。
BP神經網路模型包括輸入層、隱藏層和輸出層,每一層由一個或多個神經元組成,其結構圖如圖2-3所示。BP神經網路擁有很強的非線性映射能力和自學習、自適應能力,網路本身結構的可變性,也使其十分靈活,一個三層的BP神經網路能夠實現對任意非線性函數進行逼近。
BP神經網路的訓練過程通常分為3個過程,依次分別為數據初始化過程、正向推演計算過程以及反向權重調整過程。數據初始化是BP神經網路能夠進行有效訓練的前提,該過程通常包括輸入數據進行歸一化處理和初始權重的設置;正向推演計算是數據沿著網路方向進行推演計算;反向權重調整則是將期望輸出和網路的實際輸出進行對比,從輸出層開始,向著輸入層的方向逐層計算各層中各神經元的校正差值,調整神經元的權重。正向推演計算和反向權重調整為對單個訓練樣本一次完整的網路訓練過程,經過不斷的訓練調整,網路的實際輸出越來越趨近於期望輸出,當網路輸出到達預期目標,整個訓練過程結束。
TF-IDF(Term Frequency-Inverse Document Frequency,詞頻一逆文檔)是文本處理中常用的加權技術,廣泛應用於信息檢索、搜索引擎等領域。
TF-IDF的主要思想是:如果一個關鍵詞在文檔中出現的頻率很高,而在其他文檔中出現次數較少,則該關鍵詞被認為具有較強的代表性,即該關鍵詞通過TF-IDF計算後有較高的權重。
TextRank演算法,是一種用於文本關鍵詞排序的演算法,頁排序演算法PageRank。
PageRank基本思想是將每個網頁看成一個節點,網頁中的鏈接指向看成一條有向邊,一個網頁節點的重要程度取決於鏈接指向該網頁節點的其他節點的數量和重要權值,該過程描述如下:讓每一個網頁對其所包含的鏈接指向的網頁進行迭代投票,每次迭代投票過程中票的權重取決於網頁當前擁有的票數,當投票結果收斂或者達到指定的迭代次數時,每個網頁所獲得票數即為網頁重要程度權值。
TextRank演算法相比於TF-IDF最大的優點是TextRank是一種無監督的學習,因此不會受限於文本的主題,並且無需大規模的訓練集,可以針對單一文本進行快速的關鍵詞的權重計算。