国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于K-means優(yōu)化的SOM神經(jīng)網(wǎng)絡算法的視頻推薦系統(tǒng)

2022-10-10 01:23付麗梅
軟件工程 2022年10期
關鍵詞:質(zhì)心神經(jīng)元聚類

付麗梅

(大連東軟信息學院軟件工程系,遼寧 大連 116023)

1 引言(Introduction)

智能手機的高速發(fā)展使各種小視頻成為人們生活中的重要娛樂手段,隨之而來的視頻推薦已成為當前視頻應用的一個關鍵問題。當前視頻推薦的精度和速度都還有一定的提升空間,可通過對SOM算法的研究改進視頻推薦系統(tǒng)的精度和速度。目前SOM神經(jīng)網(wǎng)絡的研究方向主要有以下幾種:(1)基于動態(tài)確定結構和網(wǎng)絡數(shù)目的改進。為了擺脫傳統(tǒng)SOM模型需要提前給定結構和網(wǎng)絡單元數(shù)目的限制,科研人員提出在訓練過程中動態(tài)確定網(wǎng)絡形狀和數(shù)目的解決方案。(2)基于匹配神經(jīng)元策略的改進。該研究方向中比較著名的研究算法有SOFM-CV、SOFM-C、DSOM等,其改進方向為修改神經(jīng)元的競爭方式或競爭過程,或者在競爭過程中添加其他參數(shù)和限制條件等,以防止競爭單元層中出現(xiàn)“始終不能獲勝”的結果。(3)最后一種就是用其他算法來組合SOM算法,其中比較有代表性的是提出把SOM和粗糙集進行組合的RSOM算法;科研人員提出使用自適應共振理論模型和SOM組合對文檔進行聚類;另有科研人員使用了多層感知器(Multilayer Perceptron,MLP)和SOM結合來進行語音識別。本文使用K-means算法對SOM神經(jīng)網(wǎng)絡算法進行改進,并應用到視頻搜索推薦系統(tǒng)中,該推薦系統(tǒng)分為爬蟲、算法實現(xiàn)、可視化三個模塊。

2 算法概述(Algorithm overview)

2.1 SOM算法

SOM是一種自組織特征映射聚類算法,它包括輸入層和競爭層(也叫輸出層)兩部分。訓練過程采用競爭的方式,競爭層在接收到輸入層的樣本數(shù)據(jù)后,計算樣本與神經(jīng)元自身的權向量,與樣本最近的神經(jīng)元為最佳匹配單元,接著更新最佳匹配單元的權值,同時和最佳匹配單元臨近的點也根據(jù)它們距最佳匹配單元的距離適當更新參數(shù),這個過程迭代反復直至收斂。

2.2 K-means算法

K-means算法是一種無監(jiān)督的聚類算法,其思想如下:將給定的樣本集按照樣本之間的距離大小劃分為個簇,劃分時要讓簇內(nèi)部點的排列盡量緊密,簇與簇的間距相對要盡量大。K-means算法的值一般是根據(jù)對數(shù)據(jù)的先驗經(jīng)驗來選擇,若先驗知識不足,也可通過交叉比對選擇。個質(zhì)心的選擇可以采用隨機方式,質(zhì)心的初始位置會極大地影響最終的聚類結果及運行時間,質(zhì)心之間的距離不應太近,否則會影響聚類效果。

2.3 K-means改進的SOM算法

SOM算法作為一種無監(jiān)督的學習算法,它的訓練過程不是很穩(wěn)定,如果有一個如同K-means算法的穩(wěn)定訓練過程,就可以大大提升工作效率。SOM算法的訓練過程需要刷新初始值較小的神經(jīng)元,和K-means算法選定質(zhì)心的方式有著相似之處,只不過一個是在輸入層之前選定,一個是在訓練過程之中選定。本文綜合兩種算法對視頻推薦算法進行優(yōu)化。

3 基于改進S O M 算法的視頻推薦系統(tǒng)實現(xiàn)(Implementation of video recommendation system based on improved SOM algorithm)

3.1 數(shù)據(jù)采集

數(shù)據(jù)采集使用爬蟲技術,爬取www.bilibili.com網(wǎng)頁中較火的視頻類數(shù)據(jù)進行處理后作為實驗數(shù)據(jù)。爬蟲的編寫采用Python 3.7自帶的urllib模塊,當用戶打開網(wǎng)頁時,瀏覽器根據(jù)輸入的地址找到相應的服務器發(fā)送請求,服務器收到請求后,解析請求中攜帶的信息并進行響應,最終返回請求結果。urllib模塊模擬用戶的瀏覽過程,發(fā)送請求后獲取服務器返回的數(shù)據(jù)。獲取網(wǎng)頁HTML文件后,使用BeautifulSoup庫解析HTML文件。BeautifulSoup為開發(fā)者提供一些Python風格的函數(shù)來分析提取HTML文檔中的信息,通過解析HTML篩選出有用的信息導入數(shù)據(jù)庫以備算法使用。實驗需要的信息包括嗶哩嗶哩視頻彈幕網(wǎng)的視頻播放量、點擊量、評論及彈幕數(shù)量等數(shù)據(jù),至于視頻的編號(AV)則是通過對URL的拆分處理而得到的。拆分的過程就是利用split函數(shù)以“/”為分隔,將字符串切割成列表的形式。

3.2 SOM算法實現(xiàn)

SOM算法的學習過程分為三個部分。首先是競爭,也就是針對輸入的數(shù)據(jù)集,計算其與數(shù)據(jù)單元權向量的歐幾里得距離,距離最小的為獲勝神經(jīng)元,也可通過其他判別函數(shù)得出,記為最佳匹配單元。然后是合作,最佳匹配單元決定了興奮的神經(jīng)元的拓撲鄰域占據(jù)的空間位置,是相鄰的神經(jīng)元合作的基礎。最后要調(diào)整權值,興奮的神經(jīng)元通過對自身權向量的調(diào)整,來增加數(shù)據(jù)集的判別函數(shù)值(使用向量間的歐幾里得距離),然后讓神經(jīng)元對接下來的相似輸入有一個強化的響應。

SOM算法的實現(xiàn)過程可描述為如下幾方面。

(1)初始化。使用權值較小的隨機值進行初始化,并對輸入向量和權值做歸一化處理:

(2)將樣本輸入網(wǎng)絡。計算樣本與權值向量的歐幾里得距離,距離最小的神經(jīng)元贏得競爭,記為最佳匹配單元。

(3)更新權值。更新獲勝的神經(jīng)元拓撲鄰域內(nèi)的神經(jīng)元,重新歸一化學習后的權值,基本公式如下:

該算法的優(yōu)點是無須監(jiān)督,無須提前告知分類數(shù)便能自動對輸入模式進行聚類,容錯性強,對異常值和噪聲不敏感。其缺點是在訓練時有些神經(jīng)元始終不能勝出,導致分類結果不準確,SOM網(wǎng)絡收斂時間較長,運算效率較低。

3.3 K-means算法實現(xiàn)

(3)重新計算每個簇的新質(zhì)心,新質(zhì)心為各個簇內(nèi)所有樣本距離的平均值,若k個質(zhì)心向量未發(fā)生變化,則進行步驟(4);否則,重復步驟(1)—步驟(3),直至最大迭代次數(shù)或聚類完成。

(4)重新劃分輸出簇C。

3.4 使用K-means改進SOM算法

SOM算法具有一些缺陷,例如算法運行后期有可能會出現(xiàn)鐘擺效應(即網(wǎng)絡在幾個最佳極值點之間反復跳動),以及不穩(wěn)定的訓練輸出等,可結合K-means算法的訓練過程來使SOM算法的訓練過程穩(wěn)定化,并且借用K-means算法的思想來強化SOM算法的效率。

改進的思想大致如下:首先,SOM算法需要隨機選定神經(jīng)元,隨機性會導致后面的訓練過程不穩(wěn)定;而K-means是首先選定質(zhì)心,在訓練過程的穩(wěn)定性上占有優(yōu)勢。其次,SOM算法以神經(jīng)元為中心,使得數(shù)據(jù)向神經(jīng)元移動;而K-means算法是通過移動質(zhì)心的方式來達成對數(shù)據(jù)類的分簇。綜合這兩種思想,首先觀察數(shù)據(jù)集的分布狀態(tài)判定質(zhì)心,調(diào)用K-means算法的訓練過程將質(zhì)心移動到分簇的附近,然后將選定得到的質(zhì)心作為現(xiàn)成的最佳神經(jīng)元定位拓撲鄰域,使用SOM算法開始聚合。改良后的算法的基本流程如圖1所示。

圖1 使用K-means改進SOM算法流程Fig.1 Using K-means to improve SOM algorithm process

改良后的算法雖然以SOM算法為主要運行部分,但是使用K-means算法指定的質(zhì)心取代了SOM算法需要算法運行選擇的最佳神經(jīng)元,并且在經(jīng)過質(zhì)心選定之后使得質(zhì)心/最佳神經(jīng)元更靠近需要聚類的數(shù)據(jù)簇。該算法的優(yōu)點是算法簡單,收斂速度快,準確率較高;缺點是初始聚類中心的設定對聚類結果影響較大,聚類種數(shù)需要預先給定,而在很多情況下的估計是非常困難的。

3.5 視頻推薦結果可視化

本系統(tǒng)的可視化模塊采用了Django框架進行開發(fā),可視化模塊分為關鍵字搜索和結果顯示兩個頁面。關鍵字搜索頁面在提供自定義搜索的同時,也提供標簽式的定向搜索,即根據(jù)用戶選擇的標簽推送出最吻合的視頻,滿足不同類型用戶的需要。結果顯示頁面除了提供視頻的超鏈接之外,還提供該視頻的評分項,計算方法是將點擊數(shù)、播放數(shù)、評論數(shù)、彈幕數(shù)等屬性進行歸一化處理后乘以100得出基本評分,方便用戶選擇視頻。本系統(tǒng)采用MySQL數(shù)據(jù)庫,需要安裝PyMySQL模塊。系統(tǒng)的數(shù)據(jù)流向如下:啟動爬蟲,對網(wǎng)頁進行數(shù)據(jù)爬取,經(jīng)過一個臨時數(shù)據(jù)存儲模塊處理后進入數(shù)據(jù)庫,算法在數(shù)據(jù)庫中提取數(shù)據(jù),通過分析后輸出推薦視頻到結果頁顯示。

4 算法實驗結果與對比(Experimental results and comparison of the algorithm)

4.1 算法參數(shù)設置實驗

本文對SOM算法單體效率的研究采用修改參數(shù)調(diào)整效率的方式,大部分參數(shù)可以通過學習獲得,能夠手動修改且對運行結果影響較大的是迭代次數(shù)及批尺寸(batch_size)。

(1)迭代次數(shù)實驗

在這一步中,本文使用了500 個樣本數(shù)據(jù),在不影響batch_size的情況下進行改動迭代次數(shù)的實驗,實驗使用單一的SOM算法。實驗結果表明,在不修改batch_size的情況下,單純地修改迭代次數(shù)對算法的運行效率幾乎沒有影響。

(2)batch_size實驗

batch_size是機器學習算法中一個重要的參數(shù),本實驗以已經(jīng)完成的組合算法為框架,輸入200 個樣本,通過調(diào)整batch_size不斷實驗可以看出,如果batch_size減小,算法在200 次迭代內(nèi)不能收斂。如果batch_size增大,處理數(shù)據(jù)的速度會變快,而達到相同精度所需的迭代數(shù)量增多。當batch_size增大到一定程度時,會達到運行時間的最優(yōu)化,但最終的收斂精度會陷入不同的極值。因此,batch_size需要在0—200取舍,本實驗的batch_size定為100。

4.2 K-means改進SOM算法實驗

第一組測試的是運行所需要的時間。實驗限制條件為batch_size100,迭代次數(shù)100,只對輸入樣本的個數(shù)進行更改。實驗結果為算法的運行時間,如表1所示。

表1 算法運行時間對比Tab.1 Comparison of algorithm running time

由表1可以得出,在限制了迭代次數(shù)及batch_size的情況下,改良后的算法在運行時間上要略差于原本的SOM算法,其運行時間比原算法長4%—12%。

第二組實驗測試的是同等運行條件下的運行精度,參考值為輸出關鍵字的精確性。實驗結果為用戶需求的關鍵詞在推薦結果中所含數(shù)量占算法推薦數(shù)總量的百分比,如表2所示。

由表2可知,在限制了迭代次數(shù)及batch_size的情況下,改良算法的運行結果在推薦精度上有了5%—8%的提升,符合視頻推薦應用對精度要求更高的需求。

表2 算法運行精度對比Tab.2 Comparison of algorithm running accuracy

5 結論(Conclusion)

SOM和其他算法的組合在很多領域應用效果較好。本文使用SOM和K-means的組合算法來進行視頻推薦,并設計了一個視頻推薦系統(tǒng),系統(tǒng)由數(shù)據(jù)采集與處理、算法優(yōu)化和可視化三部分構成。實驗結果表明,在限制batch_size和迭代次數(shù)的情況下,使用K-means優(yōu)化的SOM算法雖然在運行效率上有所降低,但在運行精度上有了5%—8%的提升,在視頻推薦應用方面,推薦的準確性遠比運行時間更符合實際用戶需求。因此,改良的SOM算法適合應用在視頻推薦系統(tǒng)上。

猜你喜歡
質(zhì)心神經(jīng)元聚類
重型半掛汽車質(zhì)量與質(zhì)心位置估計
《從光子到神經(jīng)元》書評
基于GNSS測量的天宮二號質(zhì)心確定
躍動的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
基于DBSACN聚類算法的XML文檔聚類
基于高斯混合聚類的陣列干涉SAR三維成像
基于二次型單神經(jīng)元PID的MPPT控制
毫米波導引頭預定回路改進單神經(jīng)元控制
一種層次初始的聚類個數(shù)自適應的聚類方法研究
一種海洋測高衛(wèi)星質(zhì)心在軌估計算法
阿鲁科尔沁旗| 兴海县| 甘肃省| 沙河市| 察隅县| 比如县| 紫金县| 铁岭市| 古蔺县| 太和县| 乐至县| 若羌县| 股票| 尚志市| 保靖县| 城口县| 临桂县| 吴川市| 柳州市| 和平县| 衡阳县| 高清| 洛南县| 从化市| 咸宁市| 山东省| 尤溪县| 阳城县| 凤翔县| 从化市| 荃湾区| 九江市| 城固县| 绍兴市| 汕尾市| 峨眉山市| 虹口区| 泗水县| 邳州市| 万荣县| 屏东县|