新四季網

面向用戶輸入的序列化推薦方法及裝置

2023-06-01 17:31:08



1.本發明涉及軟體工程技術領域,更為具體的,涉及一種面向用戶輸入的序列化推薦方法及裝置。


背景技術:

2.將代碼軟體開源是20世紀最重要的組織創新之一,許許多多的用戶在github上分享他們自己的項目,github因此儲存了大量的開原始碼庫。同時也有不少用戶在github上尋找自己感興趣的項目,然而在github的浩如煙海的項目資源庫中,用戶在做出最終決定之前逐一瀏覽項目是非常耗時和浪費精力的。在項目推薦方面主要分為兩大類算法,一類是傳統推薦算法,另一類是基於深度學習的推薦算法。傳統算法主要包括基於內容的推薦和基於協同過濾的推薦,基於內容的推薦建立在項目的內容信息之上提出建議,並與項目定義相關特徵,系統在此基礎上學習用戶的興趣並計算其特徵之間的匹配程度用戶和項目進行推薦。基於協作過濾的推薦一般使用最近鄰技術,它計算用戶使用他們的歷史偏好之間的距離信息,然後使用目標用戶的首選項最近的鄰居進行推薦。傳統的推薦方法容易出現數據稀疏、冷啟動等問題,難以應對用戶偏好的變化以及用戶與物品之間關係隨時間的變化。
3.隨著近些年來深度學習的發展,深度學習在推薦系統中也得到了廣泛的運用,並發揮著重要的作用。深度學習通過結合低層特徵形成更密集的高層語義信息,從而發現數據的分布式特徵表示,相比傳統算法而言可以在大規模數據中提取出有效地信息,從而完成對用戶更好的項目推薦。但是,現有基於深度學習的推薦技術方案普遍存在精確性有待提高的技術問題。
4.需要說明的是,不至於上述技術方案中面向github開源社區的軟體項目的推薦方法存在精確性有待提高的技術問題,凡是技術方案中通過數據類型如用戶-商品、用戶-用戶輸入來實現用戶-商品、用戶-用戶的推薦輸出等這種不改變數據輸入輸出模式的操作,均存在精確性有待提高的技術問題。
5.有助於理解本發明相關背景技術的現有技術文獻:[1]中國專利「一種基於github的軟體資產推薦的方法及系統」(專利號cn201910120018.8)[2]中國專利申請「一種基於圖神經網絡挖掘用戶長短期興趣的序列推薦方法」(申請號cn202210160090.5)[3]中國專利「cnn-lstm開發者項目推薦方法」(專利號cn202010229547.4)[4]j. tang and k. wang,
ꢀ「
personalized top-nsequential recommendation via convolutional sequence embedding,
」ꢀ
in proceedingsof the eleventh acm international conference on web search and data mining,2018, pp. 565

573.[5]b. hidasi, a. karatzoglou, l. baltrunas, and d.tikk,
ꢀ「
sessionbased recommend-dations with recurrent neural networks,
」ꢀ
arxivpreprintarxiv:
1511.06939, 2015.[6]t. donkers, b. loepp, and j. ziegler,「sequential user-based recurrent neural network recommendations,
」ꢀ
inproceedings of the eleventh acm conference on recommender systems, 2017, pp.152

160.[7]w.-c. kang and j. mcauley,
ꢀ「
self-attentivesequential recommendation,
」ꢀ
in 2018 ieee international conference on datamining (icdm).ieee, 2018, pp. 197

206.[8]f. sun, j. liu, j. wu, c. pei, x. lin, w. ou,and p. jiang,
ꢀ「
bert4rec: sequential recommendation with bidirectional encoderrepresentations from transformer,
」ꢀ
in proceedings ofthe 28th acm internationalconference on information and know-ledge management, 2019, pp. 1441

1450.[9]y. zhou, j. wu, and y. sun,
ꢀ「
ghtrec: apersonalized service to recommend github trending repositories for developers,」in 2021 ieee international confer-ence on web services (icws). ieee, 2021,pp.314

323.[10]j. kim, j. wi, and y. kim,
ꢀ「
sequentialrecommendations on github repository,
」ꢀ
applied sciences, vol. 11, no. 4, p.1585, 2021.[11]a. vaswani, n. shazeer, n. parmar, j. uszkoreit,l. jones, a. n. gomez, ł
. kaiser, and i. polosukhin,
ꢀ「
attention is all youneed,
」ꢀ
advances in neural infor-mation processing systems, vol. 30, 2017.[12]d. p. kingma and j. ba,
ꢀ「
adam: a method forstochastic optimization,
」ꢀ
arxiv preprint arxiv:1412.6980, 2014.[13]s. p. chatzis, p. christodoulou, and a. s.andreou,
ꢀ「
recurrent latent vari-able networks for session-basedrecommendation,
」ꢀ
in proceedings of the 2nd workshop on deep learning forrecommender systems, 2017,pp. 38

45。


技術實現要素:

[0006]
本發明的目的在於克服現有技術的不足,提供一種面向用戶輸入的序列化推薦方法及裝置,提高了項目推薦的精確性等。
[0007]
本發明的目的是通過以下方案實現的:一種面向用戶輸入的序列化推薦方法,包括步驟:對用戶的對象序列和對象的文本描述分別進行如下處理:對對象序列,使用卷積神經網絡捕獲聯合級和點級序列特徵,在卷積層中添加自注意力機制,用於在卷積之後提取特徵;對對象的文本描述,採用神經網絡和自注意力機制來捕獲對象本身的特徵;將捕獲的特徵進行神經網絡運算,得到最終的預測輸出,根據預測輸出確定面向用戶輸入的對象推薦。
[0008]
進一步地,所述對象包括項目、商品和用戶中的任一種。
[0009]
一種面向用戶輸入的序列化推薦裝置,包括處理器和存儲器,在存儲器上存儲有程序,程序由處理器加載運行如上所述的方法,以及程序由處理器加載運行一種序列化推
薦模型;所述一種序列化推薦模型的結構框架包括嵌入層、文本描述層、卷積層和全連接層;所述嵌入層,用於將對象和對象的文本描述嵌入到高維空間,得到對象和對象的文本描述的嵌入矩陣;所述文本描述層,用於將組成文本描述的單詞通過編碼後,通過嵌入矩陣映射到高維語義空間,再通過神經網絡和自注意力機制來提取特徵;所述卷積層,用於在得到對象序列的嵌入矩陣之後,利用卷積濾波器抽取對象序列的序列化特徵,再利用自注意力機制來進行特徵增強;所述全連接層,用於在得到卷積層和文本描述層的輸出後,將卷積層的輸出與文本描述層的輸出連接到一起,並將它們輸入到線性神經網絡以獲得更深層次的抽象特徵。
[0010]
進一步地,在嵌入層中,除了對象和對象的文本描述的嵌入矩陣以外,還包括使用用戶的嵌入矩陣來代表用戶在高維語義空間的潛在特徵。
[0011]
進一步地,在文本描述層中,所述神經網絡包括gru、lstm和rnn中的任一種。
[0012]
進一步地,所述卷積層包括水平卷積層和垂直卷積層,且所述卷積濾波器包括水平卷積濾波器和垂直卷積濾波器,所述水平卷積濾波器用於捕獲序列的聯合級特徵,所述垂直卷積濾波器用於捕獲序列的點級特徵。
[0013]
進一步地,在所述全連接層中,還包括將用戶的嵌入矩陣和獲得的更深層次的抽象特徵連接起來,同時為了捕捉之前l個對象和之後t個對象的聯繫,還包括將之後t個對象的嵌入矩陣和相應的文本描述層的輸出連接起來,最後進行最終的運算;其中,l表示歷史行為序列的長度,t表示目標序列的長度。
[0014]
進一步地,在嵌入層中,所述將對象和對象的文本描述嵌入到高維空間,具體為將前l個對象輸入到卷積層來提取對象的序列信息,對於對象的文本描述,將它們的每個單詞先進行編碼,然後映射到高維語義空間,l表示歷史行為序列的長度。
[0015]
進一步地,所述神經網絡為gru時,整個gru層由多個gru單元組成,並且gru單元的數量由對象的文本描述的長度決定;所述通過神經網絡和自注意力機制來提取特徵具體為使用自注意力機制來處理經過gru層後的序列數據,自注意力操作將gru層的輸出作為輸入,然後通過線性投影將其轉換為多個矩陣,並將多個矩陣輸入到注意力層;再根據gru層的輸出、線性變換和層標準化處理應用殘差連接,得到殘差連接後的輸出後,應用池化處理來進行數據降維,去除冗餘數據中的冗餘信息;經過均值池化後得到了文本描述層的最終輸出,該最終輸出高度濃縮了對象的文本描述的所有特徵信息。
[0016]
進一步地,所述水平卷積濾波器為n個水平卷積濾波器,所述垂直卷積濾波器為n個水平卷積濾波器,n為正整數;在水平卷積層中,在輸入嵌入矩陣之後,對象序列的聯合級特徵由n個水平卷積濾波器提取,每個水平卷積過濾器都有不同的形狀,不同的形狀將提取不同的聯合特徵;n個水平濾波器的所有輸出都要應用池化處理,最後將結果連接起來得到水平卷積層的最終輸出;在垂直卷積層,在輸入嵌入矩陣之後,每個垂直濾波器的形狀都是相同的,每個垂直濾波器的輸出也是相同的,垂直卷積層的輸出由n個垂直濾波器的輸出連在一起所組成;在得到水平卷積層的輸出和垂直卷積層的輸出後,將它們連接在一起,再利用自
注意力機制進行特徵提取,然後再應用殘差連接,最後得到卷積層的最終輸出,該最終輸出高度濃縮了對象的序列信息。
[0017]
本發明的有益效果包括:本發明的技術方案,使用卷積神經網絡和自注意力機制處理用戶的互動序列,能夠有效地提取了用戶的動態偏好特徵,並通過使用門控循環單元和自注意力機制對用戶的互動項目序列中每個項目的文本描述信息進行了處理,最後將用戶的信息和項目的信息進行交互後通過分類器進行推薦,充分地利用了項目的信息,提高了項目推薦的精確性。
[0018]
本發明實施例的技術方案為github中的項目推薦提出了一個序列化推薦模型,並使用深度學習模型將項目的文本信息融合到了用戶的歷史互動序列之中,提高了項目推薦的準確性。
[0019]
本發明實施例的技術方案,公開了一種使用基於深度學習的推薦系統對在線社區的廣泛用戶數據進行建模的方法,為開源軟體項目平臺提供了一個對用戶推薦可能感興趣的項目的推薦方法。
附圖說明
[0020]
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0021]
圖1為本發明實施例中的srds的結構框架;圖2為本發明實施例中的gru單元的內部結構;圖3為本發明實施例中的gru層的輸入與輸出;圖4為本發明實施例中的水平卷積示意圖;圖5為本發明實施例中的垂直卷積示意圖;圖6為本發明實施例在實驗過程中通過改變l或t的值,而其他超參數不變,得到的結果,其中x軸是l的值,y軸是precision@10的值。
[0022]
圖7為本發明實施例在實驗過程中通過改變l或t的值,而其他超參數不變,得到的結果,其中x軸是l的值,y軸是recall@10的值;圖8為本發明實施例在實驗過程中通過改變l或t的值,而其他超參數不變,得到的結果,其中x軸是l的值,y軸是map的值。
具體實施方式
[0023]
本說明書中所有實施例公開的所有特徵,或隱含公開的所有方法或過程中的步驟,除了互相排斥的特徵和/或步驟以外,均可以以任何方式組合和/或擴展、替換。
[0024]
為了解決背景中的技術問題,本發明的發明人對現有技術進行了檢索和深入分析思考,進一步發現接近的現有技術存在如下技術問題:

上海海事大學的專利「一種基於github的軟體資產推薦的方法及系統」(專利號cn201910120018.8),它是一種基於github的軟體資產推薦的方法,包含:步驟1:獲取github平臺的軟體資產信息;步驟2:建立開發者信息模型a,以記錄不同開發者對軟體資產
的行為信息;所述行為信息包括:查找、瀏覽、下載、編輯、提交;步驟3:建立軟體資產信息模型b,以記錄開發者對軟體資產的不同行為的總次數;步驟4:github中收集開發者對軟體資產的行為信息,建立開發者-行為矩陣模型c,用來根據行為相似性分析最相似開發者,並提供最符合要求的軟體資產;步驟5:對每一個開發者對軟體資產的行為信息加入不同的權值k;步驟6:利用基於代碼開發人員相似性度量技術和開發者行為預測技術的協同過濾推薦技術,為開發者推薦出符合需求的前top-n個軟體資產;本發明的發明人對其進行分析後,認為該方法的缺點是:未充分利用數據信息如軟體資產的文本描述信息,且使用協同過濾推薦技術難以應對開發人員偏好的變化以及開發人員與軟體資產之間隨時間變化的關係。
[0025]

哈爾濱工程大學的專利申請「一種基於圖神經網絡挖掘用戶長短期興趣的序列推薦方法」(申請號cn202210160090.5),是一種基於圖神經網絡挖掘用戶長短期興趣的序列推薦方法,包括:步驟1:獲得用戶個人信息和用戶交互序列數據集,將數據集進行預處理並分為訓練集和測試集;步驟2:構建基於圖神經網絡挖掘用戶長短期興趣的序列推薦模型;步驟3:對步驟2所述基於圖神經網絡挖掘用戶長短期興趣的序列推薦模型進行訓練;步驟4:將待推薦用戶的個人信息和交互序列輸入到步驟3中訓練後的基於圖神經網絡挖掘用戶長短期興趣的序列推薦模型,計算待推薦項目相對於該用戶的推薦得分,根據推薦得分將項目推薦給用戶。本發明的發明人對其進行分析後,認為該方法的缺點是:未充分利用項目的信息,只有用戶的歷史行為信息,而沒有用戶互動項目的信息,如項目的標題、描述,過於依賴連續項目序列提取出的信息。
[0026]

中南大學的專利「cnn-lstm開發者項目推薦方法」(專利號cn202010229547.4),是一種cnn-lstm開發者項目推薦方法,包括:步驟1,收集敏捷開發者項目數據,進行敏捷開發者項目數據清洗與篩選,將敏捷開發者項目數據按照時間序列進行排序得到的開發者項目集作為整個模型的輸入;步驟2,將獲取的敏捷開發者項目數據通過word2vec模型確定敏捷開發者項目數據在項目空間中的位置,並將敏捷開發者項目數據轉換為向量的形式,從而將輸入的開發者項目集轉換為開發者項目集矩陣的形式;步驟3,將得到的開發者項目集矩陣輸入cnn模型,通過卷積核卷積、池化操作得到敏捷開發者項目集空間特徵矩陣;步驟4,將得到的敏捷開發者項目集空間特徵矩陣作為lstm模型的輸入,通過lstm模型獲取基於上下文的開發者項目特徵;步驟5,通過softmax函數將得到的開發者項目特徵與開發者項目集進行比較,根據預測結果給開發者推薦top-k個項目,根據推薦準確率調整模型參數,不斷優化模型直至推薦效果最佳。本發明的發明人對其進行分析後,認為該方法的缺點是:無法提取出用戶隨時間變化的偏好信息,沒有使用到用戶互動項目序列的時間信息。
[0027]
鑑於上述技術問題,進一步的,本發明提出如下發明構思:使用卷積神經網絡和自注意力機制處理用戶的互動序列,有效地提取了用戶的動態偏好特徵,並通過使用門控循環單元和自注意力機制對用戶的互動項目序列中每個項目的文本描述信息進行了處理,最後將用戶的信息和項目的信息進行交互後通過分類器進行推薦,充分地利用了項目的信息,提高了項目推薦的精確性。
[0028]
更進一步的發明構思中,提出的新推薦模型,以用戶的項目序列和項目的文字描述為輸入,並且分別進行處理,整個模型的結構如圖1所示,圖1中代表矩陣乘法。
[0029]
對於用戶的項目序列,使用卷積神經網絡(cnn)捕獲聯合級和點級序列模式,對於項目的文本描述,採用門控循環單元(gru)和自注意力機制來捕獲項目本身的特徵。最後,
將從卷積層和描述處理層提取的特徵輸入到全連接層進行神經網絡運算,得到最終的預測輸出。接下來將詳細描述本發明提出的模型,使用到的關鍵符號的闡述如表1所示。
[0030]
表1 關鍵符號的含義本發明的推薦模型結構框架(srds,srds為自命令術語)包括嵌入層、文本描述層、卷積層和全連接層。
[0031]
(1)嵌入層嵌入層的作用主要是將項目和項目的文本描述嵌入(embedding)到高維空間,簡單來說,embedding就是用一個低維向量來表示一個對象,可以是一個詞,也可以是一個產品,也可以是一部電影等。embedding的本質是,與靠近的向量對應的對象具有相似的含義。例如,embedding(橘子)和embedding(橘子汁)之間的距離會很接近,但是embedding(香蕉)和embedding(橘子汁)之間的距離就會較遠。項目i的嵌入表示為,文本單詞i的嵌入表示為。本發明構思中,srds通過將前l個項目輸入到卷積層來提取項目的序列信息,而對於項目的文本描述,它們的每個單詞先由one-hot進行編碼,然後輸入到嵌入層將它們映射到高維語義空間,最後輸入到神經網絡以捕獲項目之間的聯繫。嵌入層嵌入之前的l個項目和l個項目文本描述並將它們堆疊到一起,得到用戶u在時間戳t的歷史行為項目的嵌入矩陣,同時也得到了項目p的文本描述嵌入矩陣,表示為:除了項目和項目的文本描述的嵌入矩陣外,本發明構思中,也使用了用戶的嵌入矩陣來代表用戶在高維語義空間的潛在特徵。這樣不僅捕捉了項目自身的深層次信息,同時也捕獲了用戶自身的潛在信息。
[0032]
(2)文本描述層
項目的文本描述是一個項目至關重要的特徵,這是顯而易見的,對於大部分開發者而言,他們在選擇一個項目是否是其感興趣的項目前必定會閱讀一遍項目的文本描述。為了從項目p的文本描述抽取到有用的特徵,本發明構思中,將組成文本描述的每個單詞通過one-hot編碼後再通過嵌入矩陣d映射到高維語義空間,得到結果,再通過門控循環單元(gru)和自注意力機制來進一步處理。接下來將詳細描述文本描述層的處理細節。
[0033]

gru 層門控循環單元(gaterecurrent unit)是循環神經網絡(recurrent neural network)的一種變種,它與rnn一樣擅長於處理序列數據。不同的是,隨著序列長度的增加,rnn容易出現梯度消失和梯度爆炸的現象,gru通過更新門和復位門的機制有效解決再反向傳播過程中的梯度消失和梯度爆炸這一問題,其內部結構如圖2所示。
[0034]
圖中代表哈達瑪積(hadamard product),代表矩陣加法。gru的輸入結構與rnn的輸入結構相同,都由當前輸入的和之前結點輸出的隱藏狀態決定,包含了之前節點的信息。在時間t復位門隨著和輸入,得到輸出為:並且更新門的輸出為:並且更新門的輸出為:是激活函數,然後使用更新門的輸出和當前的輸入得到輸出:然後最後一步是gru最關鍵的一步,稱為「更新記憶」的一步,在這一步實現了「遺忘」和「記憶」。得到最終的輸出為:門控信號的取值範圍是0到1,門控信號越接近於1,越多的信息被「記憶」,越接近於0,越多的信息則被「遺忘」。
[0035]
整個gru層由許許多多的gru單元組成,並且gru單元的數量由項目p的文本描述的長度決定。gru層的輸入輸出結構如圖3所示,定義gru層的輸出為,表示為:

自注意力層自注意力機制(attention)擅長處理具有連續性的數據,如機器翻譯和文本分類這種類型的任務。因此,本發明構思中使用自注意力機制(self-attention)來進一步處理經過gru後的序列數據。從本質上講,注意力是指從大量信息中過濾出少量重要信息的過程,使模型具有從海量信息中區分和找到關鍵點的能力。本發明構思中,項目的文本信息經
過gru處理後任然有大量的特徵信息,其中不乏有不少無用的噪聲,本發明利用注意力機制可以有效地從海量的信息中提取出重要的信息。縮放點積注意力(scaled dot-product attention)定義為:其中q代表查詢(queries),k代表鍵(keys),v代表值(values)。注意力機制首先根據查詢和鍵計算權重,然後根據權重對數值進行加權求和。比例因子是為了避免內積的數值過大,特別是維數較高的時候。自注意力機制是注意力機制的一種變體,不依賴外部信息,更善於捕捉數據或特徵的內部相關性。本發明構思中,自注意力操作將gru層的輸出作為輸入,然後通過線性投影將其轉換為三個矩陣,並將它們輸入到注意力層進行下一步操作,它可以描述為:其中是gru層的輸出,為變換矩陣。
[0036]

殘差連接雖然隨著網絡深度的增加,網絡提取的特徵更加抽象和語義化,但也會導致模型出現過擬合和退化的現象。為了保留深層網絡的深度,同時又具有淺層網絡的優勢來避免退化問題,本發明構思中,採取殘差連接的方法來解決這個問題:f代表線性變換,s是自注意力層的輸出,是自注意力層的輸入。layernorm是層標準化(layer normalization),它可以保證數據特徵分布的穩定性,同時也能加速模型的收斂,其定義為:收斂,其定義為:和分別代表s的均值和方差,是哈達瑪積(hadamard product),和分別是學習率和偏置。再得到殘差連接後的輸出後,接下來應用均值池化(avg pooling)來降低數據的維度,並去除冗餘數據中的冗餘信息。經過均值池化後得到了文本描述層的最終輸出,它高度濃縮了項目p的文本描述的所有特徵信息。由於文本描述層有兩個輸入,因此其輸出也有兩個。為了分辨這兩個輸出,本發明構思中,定義輸入為之前l個項目的文本描述的輸出為,輸入為之後t個項目的文本描述的輸出為。
[0037]
(3)卷積層正如圖1中所描述的卷積層,本發明構思中,在得到項目序列的嵌入矩陣之後,「水平卷積濾波器」和「垂直卷積濾波器」被用來抽取項目序列的序列化特徵。水平濾波器用於捕獲序列的聯合級特徵,而垂直過濾器用於捕獲序列的點級特徵。然後,本發明構思中利用自注意力機制來進行特徵增強。卷積層中額外添加了自注意力機制在卷積之後來提取有用的特徵。
[0038]

水平卷積層輸入嵌入矩陣之後,項目序列的聯合級特徵由n個水平濾波器提取。這n個水平濾波器的形狀為,它們會在嵌入矩陣上進行從上到下的滑動並進行相關卷積計算。每個過濾器都有不同的形狀,不同的形狀將提取不同的聯合特徵,例如:形狀為的水平過濾器可以按順序提取項目連續長度為3的特徵,如圖4所示。
[0039]
在經過卷積操作後可以得到3個值,因此一個形狀為的水平濾波器經過卷積後可以得到個值,其可表示為:其中是水平濾波器的輸出,是每一次滑動所產生的卷積值,它可以表示為:為:是水平卷積層的激活函數,是內積操作。為了獲得每個水平濾波器所提取出的最為顯著的特徵,本發明構思中,n個水平濾波器的所有輸出都會應用最大池化(max pooling),最後將結果連接起來得到水平卷積層的最終輸出:

垂直卷積層與水平卷積層類似,垂直卷積層也有相應的垂直濾波器。除了每個垂直濾波器的形狀為,以及每個垂直濾波器對嵌入矩陣的處理過程是從左向右滑動的,如圖5所示。
[0040]
同理,垂直濾波器的輸出為:與水平卷積層相似,代表所有垂直濾波器的輸出,並且代表每一步滑動所產生的卷積值,其可以表示為:因為每個垂直濾波器的形狀是相同的,因此每個垂直濾波器的輸出也是相同的。最後,垂直卷積層的輸出由n個垂直濾波器的輸出連在一起所組成,表示為:在得到水平卷積層的輸出和垂直卷積層的輸出後,本發明構思中再將它們連接在一起:再對結果進行最終一步處理:
代表自注意力機制和殘差連接,與文本描述層類似,將輸入到自注意力機制層來進一步進行特徵提取,然後再應用殘差連接。最後得到卷積層的最終輸出,它高度濃縮了項目的序列信息。
[0041]
(4)全連接層在得到卷積層和文本描述層的輸出後,本發明構思中將卷積層的輸出與文本描述層的輸出連接到一起,並將它們輸入到線性神經網絡以獲得更深層次的抽象特徵:連接到一起,並將它們輸入到線性神經網絡以獲得更深層次的抽象特徵:是激活函數,是將輸入轉換到d維隱藏層的權重矩陣,是偏置項。z包含之前的l個項目所有的序列特徵以及每個項目的文本特徵。為了捕捉用戶偏好,將用戶的嵌入矩陣和連接起來,同時為了捕捉之前l個項目和之後t個項目的聯繫,也將之後t個項目的嵌入矩陣和相應的文本描述層的輸出連接起來,最後進行最終的運算:連接起來,最後進行最終的運算:代表權重矩陣,是輸入矩陣,是偏置項。最終得到輸出,並且代表用戶u在時間戳t的情形下會與項目i互動的可能性。然後通過sigmod函數來將轉換為概率值,其可定義為:將接下來的t個項目,,作為待預測的項目,同時對每個項採取了負採樣,損失函數binary cross-entropy被用作目標函數:本發明通過梯度下降反向傳播的方法來不斷減少損失函數的值從而來達到模型不斷優化的效果,最終根據公式(20)、公式(21)來對所有項目進行預測推薦,將其中最高的概率值得項目推薦給用戶。
[0042]
驗證本發明的技術效果:srds為本發明的推薦模型,為了研究l和t的值對模型的影響,在實驗過程中通過改變l或t的值,而其他超參數不變,得到的結果如圖6,圖7,圖8所示。srds-1,srds-2,srds-3代表srds模型t的取值分別為1,2,3,通過改變t的值來研究跳躍行為的影響。可以看出l的取值對模型的影響較小且在的情形下模型的表現最好,且的情況下模型表現明顯比和要差。這個結果是合理的,當l增加到一個確定的水平的時候,這時已包含用戶的行為信息,因此再增加l的值對模型的影響便會不是那麼明顯。而t的大小則決定了用戶的跳躍行為信息的大小,只有t大於1的情況下,才會有用戶的跳躍行為信息。
[0043]
同時為了驗證srds模型的有效性,我們將其與經典的序列推薦模型來做對比,其比較結果如表2所示,可以看出,通過與經典序列模型gru4rec,gru4rec+,sasrec,caser,srds有著更高的準確性,可以為用戶提供更加準確的推薦。
[0044]
表2效果比較在srds中,自注意力機制不僅應用於文本描述層中的gru之後,而且應用於卷積層的水平卷積和垂直卷積之後。為了研究自注意力機制是否在模型中有那麼的有效果,將srds的文本描述層和卷積層的自注意力機制模塊移除,並將移除之後的模型命名為srds-ns,通過對比srds和srds-ns的實驗結果來驗證自注意力機制模塊的有效性。比較結果如表3所示。可以看出在移除自注意力機制之後,模型的表現大大下降了。這是預料之中的結果,因為自注意力機制可以有效地從大量信息中通過動態權重分配來抽取出真正有用的那部分信息,而在移除自注意力機制之後,所有信息隨著固定的權重都被輸入到全連接層,這些信息中不僅包含著有用的信息,而且包含著大量無用的信息,這使得模型無法很好地從海量信息之中學習到真正該注意到的那部分信息。
[0045]
表3 去除自注意力機制的前後結果比較根據以上分析,可以得出結論:不同的l和t的取值會對模型的性能有不同的影響。t取值過短會導致模型對用戶信息的提取不夠準確,適當長度的t能包含更多的信息,使得模型更加準確。同時針對項目的文本信息而言,由於文本信息數量之多,本發明採取門控循環單元和自注意力機制用來在這海量信息之中提取有效地信息,同時實驗也證明了自注意力機制能夠有效地從這些信息之中提取出真正有用的那部分信息,這對模型性能的提高有很大的意義。通過與其餘序列模型對比也證明了我們提出的模型對於用戶的項目推薦有著更高的準確性。
[0046]
需要說明的是,在本發明權利要求書中所限定的保護範圍內,以下實施例均可以從上述具體實施方式中,例如公開的技術原理,公開的技術特徵或隱含公開的技術特徵等,以合乎邏輯的任何方式進行組合和/或擴展、替換。
[0047]
實施例1一種面向用戶輸入的序列化推薦方法,包括步驟:對用戶的對象序列和對象的文本描述分別進行如下處理:對對象序列,使用卷積神經網絡捕獲聯合級和點級序列特徵,在卷積層中添加自注意力機制,用於在卷積之後提取特徵;對對象的文本描述,採用神經網絡和自注意力機制來捕獲對象本身的特徵;將捕獲的特徵進行神經網絡運算,得到最終的預測輸出,根據預測輸出確定面向用戶輸入的對象推薦。
[0048]
實施例2在實施例1的基礎上,所述對象為項目、商品和用戶中的任一種。
[0049]
實施例3一種面向用戶輸入的序列化推薦裝置,包括處理器和存儲器,在存儲器上存儲有程序,程序由處理器加載運行如實施例2所述的方法,以及程序由處理器加載運行一種序列化推薦模型;所述一種序列化推薦模型的結構框架包括嵌入層、文本描述層、卷積層和全連接層;所述嵌入層,用於將對象和對象的文本描述嵌入到高維空間,得到對象和對象的文本描述的嵌入矩陣;所述文本描述層,用於將組成文本描述的單詞通過編碼後,通過嵌入矩陣映射到高維語義空間,再通過神經網絡和自注意力機制來提取特徵;所述卷積層,用於在得到對象序列的嵌入矩陣之後,利用卷積濾波器抽取對象序列的序列化特徵,再利用自注意力機制來進行特徵增強;所述全連接層,用於在得到卷積層和文本描述層的輸出後,將卷積層的輸出與文本描述層的輸出連接到一起,並將它們輸入到線性神經網絡以獲得更深層次的抽象特徵。
[0050]
實施例4在實施例3的基礎上,在嵌入層中,除了對象和對象的文本描述的嵌入矩陣以外,還包括使用用戶的嵌入矩陣來代表用戶在高維語義空間的潛在特徵。
[0051]
實施例5在實施例3的基礎上,在文本描述層中,所述神經網絡包括gru、lstm和rnn中的任一種。
[0052]
實施例6在實施例3的基礎上,所述卷積層包括水平卷積層和垂直卷積層,且所述卷積濾波器包括水平卷積濾波器和垂直卷積濾波器,所述水平卷積濾波器用於捕獲序列的聯合級特徵,所述垂直卷積濾波器用於捕獲序列的點級特徵。
[0053]
實施例7在實施例4的基礎上,在所述全連接層中,還包括將用戶的嵌入矩陣和獲得的更深層次的抽象特徵連接起來,同時為了捕捉之前l個對象和之後t個對象的聯繫,還包括將之後t個對象的嵌入矩陣和相應的文本描述層的輸出連接起來,最後進行最終的運算;其中,l
表示歷史行為序列的長度,t表示目標序列的長度。
[0054]
實施例8在實施例3或實施例4的基礎上,在嵌入層中,所述將對象和對象的文本描述嵌入到高維空間,具體為將前l個對象輸入到卷積層來提取對象的序列信息,對於對象的文本描述,將它們的每個單詞先進行編碼,然後映射到高維語義空間,l表示歷史行為序列的長度。
[0055]
實施例9在實施例5的基礎上,所述神經網絡為gru時,整個gru層由多個gru單元組成,並且gru單元的數量由對象的文本描述的長度決定;所述通過神經網絡和自注意力機制來提取特徵具體為使用自注意力機制來處理經過gru層後的序列數據,自注意力操作將gru層的輸出作為輸入,然後通過線性投影將其轉換為多個矩陣,並將多個矩陣輸入到注意力層;再根據gru層的輸出、線性變換和層標準化處理應用殘差連接,得到殘差連接後的輸出後,應用池化處理來進行數據降維,去除冗餘數據中的冗餘信息;經過均值池化後得到了文本描述層的最終輸出,該最終輸出高度濃縮了對象的文本描述的所有特徵信息。
[0056]
實施例10在實施例6的基礎上,所述水平卷積濾波器為n個水平卷積濾波器,所述垂直卷積濾波器為n個水平卷積濾波器,n為正整數;在水平卷積層中,在輸入嵌入矩陣之後,對象序列的聯合級特徵由n個水平卷積濾波器提取,每個水平卷積過濾器都有不同的形狀,不同的形狀將提取不同的聯合特徵;n個水平濾波器的所有輸出都要應用池化處理,最後將結果連接起來得到水平卷積層的最終輸出;在垂直卷積層,在輸入嵌入矩陣之後,每個垂直濾波器的形狀都是相同的,每個垂直濾波器的輸出也是相同的,垂直卷積層的輸出由n個垂直濾波器的輸出連在一起所組成;在得到水平卷積層的輸出和垂直卷積層的輸出後,將它們連接在一起,再利用自注意力機制進行特徵提取,然後再應用殘差連接,最後得到卷積層的最終輸出,該最終輸出高度濃縮了對象的序列信息。
[0057]
描述於本發明實施例中所涉及到的單元可以通過軟體的方式實現,也可以通過硬體的方式來實現,所描述的單元也可以設置在處理器中。其中,這些單元的名稱在某種情況下並不構成對該單元本身的限定。
[0058]
根據本技術的一個方面,提供了一種電腦程式產品或電腦程式,該電腦程式產品或電腦程式包括計算機指令,該計算機指令存儲在計算機可讀存儲介質中。計算機設備的處理器從計算機可讀存儲介質讀取該計算機指令,處理器執行該計算機指令,使得該計算機設備執行上述各種可選實現方式中提供的方法。
[0059]
作為另一方面,本技術還提供了一種計算機可讀介質,該計算機可讀介質可以是上述實施例中描述的電子設備中所包含的;也可以是單獨存在,而未裝配入該電子設備中。上述計算機可讀介質承載有一個或者多個程序,當上述一個或者多個程序被一個該電子設備執行時,使得該電子設備實現上述實施例中所述的方法。本發明未涉及部分均與現有技術相同或可採用現有技術加以實現。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀