?

基于麻雀算法優化的神經網絡推薦算法研究

2023-09-21 15:49黃承寧孫自梅朱玉全
智能計算機與應用 2023年9期
關鍵詞:麻雀梯度神經網絡

黃承寧, 孫自梅, 張 斌, 朱玉全

(1 南京工業大學浦江學院, 南京 211222; 2 江蘇大學計算機科學與通信工程學院, 江蘇 鎮江 212013)

0 引 言

在智慧校園建設中,信息過載現象越來越嚴重,而學生培養方案存在過于單一規范問題,無法反映不同學生擅長的領域,更無法針對性推薦引導自主學習,無法充分發揮不同學生真正的學習能力。 基于用戶畫像的自主學習推薦,是根據學生人才培養方案課程學習情況數據分析,對學生學情進行畫像描述與分析,進而實施個性化推薦,提供適合學生的學習領域和職業課程知識。 基于畫像,可以根據學生的特點,深入了解適合學生的特定領域,讓學生學習真正有用的技能,為學生將來進入社會打下堅實的基礎。

用戶畫像是通過分析用戶行為特征、消費習慣和其他有關用戶行為的信息而構建的一種用戶特征[1]。 根據用戶的特點,公司對其進行精準營銷,為改善用戶體驗、吸引用戶注意力奠定基礎。 例如:淘寶和抖音等互聯網公司,通過分析購物記錄和瀏覽用戶數據,為每個用戶構建一幅畫像。 當用戶再次登錄時,其會根據用戶畫像推薦專屬商品,以方便用戶購物。 在高校,智能圖書館可以根據用戶畫像為學生提供準確的知識服務,并為研究團隊提供學科知識服務。 用戶畫像的構建方法包括:基于用戶興趣偏好、用戶行為、動機、個性特征和角色情緒等等。

推薦算法是推薦系統的重要組成部分,該算法通過收集用戶特征、行為和推薦元素的特征,計算出最接近用戶偏好的元素。 推薦算法分為3 類:基于內容的推薦(Content-Based, CB)、基于協同過濾的推薦(Collaborative Filtering, CF) 和混合推薦(Hybrid Recommendation)算法[2]。 其中,基于內容的推薦算法是通過用戶特點,推薦其喜歡的特征項目;基于協作過濾的推薦算法是就目前最有效的推薦算法,其假設兩個用戶有相似的興趣,那么當前用戶很可能會喜歡另一個用戶喜歡的項目;混合推薦算法結合了兩種或兩種以上的算法,最大限度地發揮每種算法的優勢,并使最終的推薦結果更接近用戶的偏好。

目前,推薦系統通常根據用戶畫像特征,推薦與用戶偏好標簽匹配的商品,但此方式存在信息繭房問題,即不能推薦提供用戶更多弱關聯信息。 如:用戶標簽顯示不喜歡或者弱需要的,或者推薦對象的某些屬性被忽略等問題。 造成這種情況的主要原因,是獲得用戶興趣和喜好的方法以及提取特征的方法不是非常適用,該系統難以獲取用戶的興趣和偏好,無法匹配推薦對象的內容特點,更難以獲得用戶滿意的推薦結果[3-4]。 因此有必要引入更準確、更合適的用戶和對象特征。 模型持續改進的前提和關鍵,是找到更多的應用場景進行測試和修正;同時應考慮到多變的環境和利用用戶認知能力,避免技術過程崩潰的可能性。 因此,目前在理論和技術上存在很大差距,主要表現在缺乏多種應用場景,導致模型技術及其轉化應用的能力缺乏持續改進。

深度學習方法最常用的分類器為卷積神經網絡,卷積神經網絡是含有卷積層、池化層等多個層次的深度神經網絡模型,在數據訓練時很容易產生過擬合現象,同樣存在致使準確率降低的問題[5]。 而麻雀搜索算法的搜索過程中引入隨機性,其并不是一種確定性算法(Deterministic approaches),所以其很好的解決了確定性算法在復雜問題上陷入局部最優的缺陷,所以麻雀算法在求解全局優化問題的最優解方面具有重要的現實意義。 但是,在實際研究中發現,麻雀搜索算法在處理復雜問題上仍然容易處于局部最優,但全局搜索能力稍有改善。

綜上所述,本文基于Anaconda 環境,使用Python 和PyTorch 框架,在GPU 處理支持下,對模型進行加速訓練驗證。 首先對數據集進行了訓練分割,然后研究了神經網絡模型和最新的麻雀算法,并進行基于麻雀算法改進DNN 分類推薦算法的設計,最后開展模型實驗以及優化,尋找出麻雀算法的適用范圍,并對深度神經網絡模型的推薦性能進行優化分析,最終實現基于麻雀算法的神經網絡模型的推薦性能研究優化提升。

1 相關研究工作

1.1 神經網絡與麻雀算法

深度神經網絡,又稱多層感知機,是以人類神經元之間的協作學習為模型的復雜網絡結構[6]。 網絡分為3 層:輸入層、隱藏層和輸出層。 輸入層將數據傳遞給模型,讓模型進行研究;隱藏層為中間表示層;輸出層負責輸出模型學習結果。 網絡結構示意如圖1 所示。

圖1 深度神經網絡結構示意圖Fig. 1 Schematic diagram of deep neural network structure

群優化算法根據模仿機制的不同,可分為生物現象模仿和確定性物理定律設計的啟發式模擬。 常見的生物現象的模仿算法有:模擬人類社會進化的遺傳算法(Genetic Algorithm)、熱帶雨林生長的雨林算法(Rain Forest Algorithm,RFA)、螞蟻覓食行為的蟻群算法(Ant Colony Optimization,ACO)、鳥群覓食行為的粒子群算法(Particle Swarm Optimization,PSO)、蜜蜂覓食行為的蜂群算法(Bee Colony Algorithm, BCA)、細菌覓食優化算法(Bacterial Foraging Optimization, BFO)、麻雀覓食分層思想的麻雀算法(Sparrow Search Algorithm,SSA)等[7]。 其中,麻雀搜索算法的搜索過程中引入隨機性,其并不是一種確定性算法(Deterministic approaches),因此在求解全局優化問題的最優解具有重要的現實意義。 但是在實際研究中發現,麻雀搜索算法在處理復雜問題上仍然容易處于局部最優,但全局搜索能力稍有改善。

1.2 神經網絡模型設計

深度神經網絡的顯著特點是其神經元的多層次結構,與其它神經網絡一樣,也有輸入層和輸出層[8]。 在輸入和輸出之間,可以任意地設置多個隱藏層,而隱藏層的數量取決于所要解決問題的大小。深度神經網絡是完全連接的,這和其它的神經網絡有很大的區別。 如圖2 所示,在每個神經元的輸入信號中,首先由神經網絡進行線性轉換,然后通過激活函數進行非線性轉換,最后經過多層隱藏層之后進入輸出層輸出。 若要解決分類問題,則要將輸出歸一化或者經過其他形式的激活函數進一步處理。

圖2 深度神經網絡結構圖Fig. 2 Structure of deep neural network

經過上述分析,本文模擬的函數本質上屬于分類問題,基于對標簽的觀察,需要對輸出進行歸一化。 通過神經網絡將輸入的數據輸入到神經網絡中,然后通過與標簽的比較,來確定適合的梯度下降算法。 本文系統采用了5 層神經網絡結構,其中包括1 個輸入層、1 個輸出層和3 個隱藏層。

1.2.1 激活函數的選擇

激活函數又稱傳遞函數,可以把數據訓練過程轉換為非線性運算,來更好的求解復雜的問題[9]。激活函數具有非線性、單調性、可微性的特點。 因為對激活函數的優化有梯度性,所以可微是必不可少的一個特性。 正是由于激活函數增加神經網絡模型的非線性,同時使得梯度優化更為穩定、模型訓練更為高效,因此選擇合適的激活函數可以提升神經網絡性能。 常見的幾種激活函數如下:

1.2.1.1 Sigmoid 函數[10]

輸入的數據通過Sigmoid 功能進行處理,則輸出的數值在0~1 之間。 若輸入的數據非常大,則輸出為0;如果輸入數據的絕對數值很小,輸出就是1。

Sigmoid 函數公式如式(1),函數圖像如圖3所示。

圖3 Sigmoid 函數圖像Fig. 3 Sigmoid function image

一般情況下,Sigmoid 激活函數能夠很好的應用于二分類問題,通過計算輸出的概率進行結果的判決。 但Sigmoid 函數也存在一定的局限性,當需要大量計算時,會影響函數的收斂速率,導致訓練速度下降;當輸入值過大和過小時,梯度會向0 逼近,而數據反向傳輸時,容易導致模型梯度的消失。

1.2.1.2 Tanh 函數[11]

Tanh 函數是一種基于Sigmoid 函數的轉換,公式如式(2),函數圖像如圖4 所示。

圖4 Tanh 函數圖像Fig. 4 Tanh function image

同Sigmoid 函數相比,Tanh 函數輸出值映射范圍在-1~1 之間,函數圖像如圖4 所示。 由于Tanh函數輸出均值為0,因此網絡訓練的收斂性更強。但是,如果輸入值變大或變小,梯度也會隨之消失。

1.2.1.3 ReLU 函數[12]

如圖5 所示ReLU 激活函數的映射規則為:當輸入值為負數時,映射結果為0,其余數值不進行映射。 由于ReLU 函數在x >0 的情況下梯度不會發生變化,因此很好的解決了Sigmoid 與Tanh 函數存在的局限性問題。 該方法不僅計算方法簡單,而且收斂速度較快。 但此函數也存在因為梯度過高而被置0,導致神經元可能再也無法被數據激活。

圖5 ReLU 函數圖像Fig. 5 ReLU function image

1.2.1.4 ReLU6 函數[13]

由于ReLU 函數的梯度是1,當輸入數據是一個很大值時,對應的輸出值受其影響也會很大,導致網絡不穩定。 為了避免這一情況,可通過使用ReLU6函數來消除該函數的線性增長。 ReLU6 表達式如式(4),ReLU6 函數與導函數如圖6 所示。

圖6 ReLU6 函數圖像Fig. 6 ReLU6 function image

本文針對激活函數的選擇實驗中,采用控制變量對比法,選擇最佳激活函數,參數設定見表1。 實驗針對上述4 種激活函數進行,比較結果如圖7 所示。

表1 激活函數對比實驗參數設定Tab. 1 Parameter setting of activation function comparison

圖7 4 種激活函數驗證數據集結果比對實驗Fig. 7 Comparison experiment of four activation function validation datasets

由圖7 可見,Sigmoid 激活函數在訓練集趨于收斂的情況下,驗證集并未發散,未出現過擬合情況,因此本文選擇Sigmoid 激活函數作為DNN 神經元的激活函數。

1.2.2 梯度下降優化器的選擇[14]

梯度下降是一種尋找函數極小值的優化方法,在模型訓練中學習率控制著每次更新參數的幅度,是比較重要的模型超參,過高或過低的學習率都可能對模型結果帶來不良影響。 為了使學習率對模型訓練過程起到良性促進作用,需要不斷調整學習率,根據本文模型對以下兩種梯度優化算法進行比對選擇。

1.2.2.1 Adam-自適應矩估計[15]

Adam 首先計算梯度一階矩E(x) 和二階矩E(x2) 估計,并據此為不同參數設置獨立的自適應學習率。 傳統的隨機梯度下降中,是按照固定學習率更新所有參數權重,而在Adam 策略中,其為每一個參數保留一個學習率,以提升在稀疏梯度上的性能。 當初始化的梯度和衰減率都很低時,Adam 使用梯度的一階矩估計和二階矩估計來修正梯度,提高梯度在參數空間內的穩定性,如下所示:

所以Adam 梯度下降算法的參數更新公式為

1.2.2.2 RMSprop[16]

為了解決Adagrad 學習率下降太快的問題,在文獻[21]中作者采用Geoff Hinton 提出了RMSprop梯度下降法,參數更新公式如下:

由此可見,RMSprop 梯度下降法是將學習率分解成平方梯度指數衰減的平均。

本文采用控制變量對比法,選擇最佳梯度下降優化器,參數見表2。 優化器選擇中,針對Adam 和RMSprop 梯度下降優化器進行比較,學習率設定為0.001,并且在此參數下進行了對比實驗。

表2 梯度下降優化器對比的參數設定Tab. 2 Parameter settings for gradient descent optimizer comparison

在表2 參數下,對DNN 模型進行訓練,圖8 記錄了模型訓練過程中訓練集的MSE損失函數值??梢郧逦l現,當梯度下降優化器為Adam 時,DNN模型訓練集的損失值下降速度最快,且收斂平穩;而RMSprop 前期損失函數值下降快,但卻不收斂,迭代后期不平穩。

圖8 兩種梯度下降訓練集結果對比Fig. 8 Comparison experiment of two gradient descent training sets

在設置優化參數下,對DNN 模型進行訓練,圖9 記錄了模型訓練過程中驗證集的MSE損失函數值。 由圖可見,當梯度下降優化器為Adam 時,DNN模型驗證集的損失值下降速度最快,且收斂平穩;而RMSprop 前期損失函數值下降快、不收斂,迭代后期不平穩。

圖9 兩種梯度下降驗證集結果對比Fig. 9 Comparison experiment of results of two gradient descent verification sets

通過對以上實驗結果分析,故選擇Adam 梯度下降優化器作為本文中DNN 網絡的優化器。 對此,單獨對Adam 進行訓練集與驗證集的損失函數值隨迭代變化實驗。 Adam 梯度下降優化器下的訓練集和驗證集的實驗結果如圖10 所示。

1.3 麻雀算法設計

麻雀算法的搜索機制,是在一次搜索結束后,都會更新麻雀所在位置;而在每一次更新位置之前,先根據麻雀當前覓食處的食物總量進行分配身份,食物總量多的分配成發現者,剩余的分配成跟隨者[17-19]。 在發現者與跟隨者麻雀搜索完畢后,通過隨機抽取的方式,分配警惕者身份,更新警惕者位置。

基于此,本文提出了一種改進的麻雀搜索算法,具體改進如下:

(1)融合鳥群搜索算法中發現者位置更新策略,在尋優過程中代入上一代全局最優解,提升搜索充分性;

(2)在跟隨公式中增加自適應因子,提高跟隨者麻雀搜索范圍,提升尋優能力。

發現者麻雀位置更新見式(10),雖然ST固定警惕閾值∈[0.5,1],但一般取值0.8。

由式(10)中判斷條件可知,R2<ST概率大于R2≥ST,發現者麻雀群落中的大部分麻雀位置更新機制是基于在原有位置基礎上再做跳躍。

跟隨者麻雀位置更新見式(11),從公式的判斷條件可知,跟隨者麻雀中滿足i >n/2 條件的位置屬于較差位置,這些麻雀可稱作乞丐麻雀(食物少的麻雀)。 乞丐麻雀的更新位置機制是每一維度在原點左右跳躍,試圖找到食物更好的地方。 非乞丐麻雀在更新位置時,每一維度都往發現者麻雀中的最佳位置靠近。

警惕者位置更新見式(12),更新原則是發現者麻雀與跟隨者麻雀更新完畢后,對更新后的麻雀群落隨機抽取麻雀的方式,分配警惕者麻雀群落。

由公式(11)中判斷條件可知,滿足條件的警惕者麻雀數量為極少部分(幾乎僅為一只)。 這只幸運的麻雀會逃離自身位置,更新的位置是在基于自身原有位置上位移,位移距離由自身距離和最差距離的差值與自身食物和最差食物的差的比值。 剩余麻雀幾乎占據所有警惕者麻雀的群落,在更新位置上,朝著最佳位置大幅度位移。

1.4 基于麻雀算法改進DNN 分類推薦算法設計

1.4.1 深度神經網絡模型推薦性能分析

1.4.1.1 交叉熵損失函數[20]

由于模型預測值和真實值之間存在差距,為此引入交叉熵進行描述,具體表達如式(13)所示:

式中DL(p ||q) 為相對熵,代表了p與q存在的差異大小。 相對熵越大代表兩者之間的差異性越大;反之,相對熵越小說明兩者之間的差異性越??;而當相對熵等于0 時,意味著兩者之間的概率分布是一致的。 在進行分類問題的處理時,該函數的表達如式(14)所示。

式中=(0,0,…,0,1,0,…) 為=m的獨熱編碼,代表第i個樣本的數據輸出。 其中,第m維為1,而在該誤差評判標準下,標簽歸屬于第m類別; ˉyi為網絡輸出數據;N為樣本的數量。

由于yi概率分布是確定的,即熵的值確定,則不會對網絡的優化訓練造成影響,若樣本數據的類別是m,則樣本中類別數量為C,則損失函數變換如式(15)所示:

若神經網絡選用Sigmoid 作為激活函數,當網絡梯度下降時,交叉熵能夠利用誤差控制網絡學習速率,以解決使用均方誤差損失函數時學習速率下降的問題。

1.4.1.2 均方誤差損失函數[21]

在解決回歸問題時,均方誤差代表了神經網絡的預測輸出與真實標簽之間誤差的平方,函數公式如式(16)所示:

式中:N代表訓練樣本中的數據量,yi∈R代表第i個樣本的真實值,ˉyi代表神經網絡的預測輸出。 其中,預測輸出與標簽的數據格式保持一致,即標簽為具體數值時,相應的預測結果也是特定的數值。

本文研究表明,所提出的神經網絡所需的捕獲算法都是一種回歸問題,故選用均方誤差作為損失函數。

1.4.2 基于麻雀算法改進的DNN 分類推薦算法流程

基于麻雀算法改進DNN 分類推薦算法的流程如圖11 所示。 首先設置迭代次數,初始化麻雀算法中每一個個體的適應度值,進行搜索迭代;將每一只麻雀位置的四維數據傳入DNN 模型進行訓練,訓練完畢后將測試集放入模型進行預測,并得出均方誤差MSE;將MSE作為每一只麻雀的適應度值,發現者麻雀、跟隨者麻雀、警戒者麻雀位置更新完畢后,迭代次數加1,若未達到迭代次數,則進行新一輪的搜索。

2 模型實驗與優化

2.1 數據集

本文提出的基于麻雀算法改進的模型推薦算法涉及數據集主要來源于學院和教務系統的學生學情數據。 該數據集中包含學院4 個專業,共計1 281個學生的學情評價數據,評分從1 ~10 的整數。 根據前面的數據信息,根據相應動態學情評分,驗證本文所提算法的性能和傳統推薦算法性能對比分析。

2.2 基于麻雀算法改進的神經網絡模型的推薦性能分析

本文采用基于麻雀算法改進的神經網絡模型作為推薦算法,在該算法中參數設定見表3。 目標函數是模型訓練后驗證集的損失最小值;種群數量為20,迭代次數20 次,麻雀在發現者的比例設置為0.2,神經網絡中神經元的搜索范圍分別為[100,300]、[200,500]、[100,300],學習率搜索范圍[0.000 1,0.01]。

表4 是麻雀算法中優化的DNN 網絡參數,其中隱含層的神經元參數及學習率由麻雀算法傳入。

表4 麻雀算法中優化的DNN 網絡參數Tab. 4 DNN network parameters optimized in sparrow algorithm

表5 是本次實驗中作為對比實驗的DNN 網絡參數,其中隱含層的神經元設置為[100,200,100],學習率設置為0.01。

從圖12 實驗結果圖可知,基于麻雀算法優化的DNN 的推薦結果精準度更高,圖中綠色的線是以表5 中參數設定實現的DNN 模型中目標函數值,而紅色線是麻雀算法在迭代過程中的目標函數值。 可見,在經過麻雀搜索算法改進之后,具有較強的優化程度,增強了聚類效果,提升了鄰間相似,最終完成了對目標用戶的推薦,提高了推薦準確度。

圖12 基于麻雀算法優化的DNN 的實驗結果圖Fig. 12 Experimental results of DNN optimized based on sparrow algorithm

3 結束語

本文采用DNN 模型對基于用戶畫像的個性化推薦,首先對DNN 中的激活函數、梯度下降優化器的選擇進行了對比實驗,根據實驗結果選擇Sigmoid作為本文實驗中的激活函數。 然后在對相關梯度下降訓練集結果對比實驗中,擇優選擇Adam 為梯度下降優化器,優化之后DNN 模型的訓練集實現損失值下降速度最快,且收斂平穩;其次通過常見目標函數對麻雀算法的適用性研究,得出麻雀算法適用于優化DNN 模型。 最后采用麻雀算法對模型中的參數進行尋優,經過麻雀算法優化后的DNN 模型,在實驗結果中表現出較強的優化程度,實現了更為精準有效推薦。

猜你喜歡
麻雀梯度神經網絡
一個改進的WYL型三項共軛梯度法
一種自適應Dai-Liao共軛梯度法
神經網絡抑制無線通信干擾探究
拯救受傷的小麻雀
一類扭積形式的梯度近Ricci孤立子
1958年的麻雀
麻雀
基于神經網絡的拉矯機控制模型建立
緊盯著窗外的麻雀
復數神經網絡在基于WiFi的室內LBS應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合