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

?

基于矩陣分解的記憶網(wǎng)絡(luò)模型

2020-03-08 06:02:00朱馨培
現(xiàn)代計(jì)算機(jī) 2020年36期
關(guān)鍵詞:物品向量矩陣

朱馨培

(哈爾濱陸軍預(yù)備役炮兵旅,哈爾濱150000)

現(xiàn)有的兩類推薦模型(基于循環(huán)神經(jīng)網(wǎng)絡(luò)的推薦模型和基于協(xié)同過濾的推薦模型)將用戶編碼在一個(gè)低維想兩種,限制了用戶偏好的記憶能力。為增大模型記憶空間,匹配用戶需求,提出基于混合矩陣分解的記憶網(wǎng)絡(luò)模型,在基于矩陣分解的框架下混合使用深度神經(jīng)網(wǎng)絡(luò)和記憶網(wǎng)絡(luò),得到兩個(gè)層級(jí)的用戶表示。

矩陣分解;神經(jīng)網(wǎng)絡(luò);記憶網(wǎng)絡(luò);推薦模型

0 引言

矩陣分解技術(shù)廣泛應(yīng)用于協(xié)同過濾推薦模型中,該算法使用低維空間的向量編碼用戶和物品,并將向量的點(diǎn)積結(jié)果作為用戶對(duì)物品的喜好程度。對(duì)于用戶來說,他的喜好往往是復(fù)雜多變的,將用戶興趣壓縮到一個(gè)向量中既存在信息丟失的問題,又不能夠表示出用戶喜好的動(dòng)態(tài)性和復(fù)雜性。另外,現(xiàn)有研究表明,用物品向量和用戶向量之間的點(diǎn)積來表示結(jié)果的方式?jīng)]有考慮到用戶和物品之間的交互關(guān)系。所以,需要對(duì)用戶和物品之間的交互進(jìn)行建模,得到用戶的物品級(jí)別的表不。本文首先介紹了傳統(tǒng)的矩陣分解模型,然后介紹如何改進(jìn)矩陣分解的兩個(gè)缺陷,并在此基礎(chǔ)上提出混合矩陣分解和記憶網(wǎng)絡(luò)模型(下文簡(jiǎn)稱記憶網(wǎng)絡(luò)模型)。

1 算法實(shí)現(xiàn)

矩陣分解是基于隱因子模型的一種協(xié)同過濾算法。隱因子可以理解為用戶對(duì)物品喜好的潛在原因或者物品的潛在特征。該潛在特征可以通過學(xué)習(xí)物品-物品、用戶-用戶或用戶-物品的交互關(guān)系而得到。把每一個(gè)潛在特征作為用戶或物品編碼的一個(gè)維度,則用戶或物品就可以表示為一個(gè)大小為潛特征因子的向量。如果把隱因子數(shù)量設(shè)置為3,矩陣分解可以表示為:將已有的用戶-物品交互矩陣R分解為兩個(gè)低維的用戶隱矩陣P和物品隱矩陣Q,原矩陣中每一個(gè)單元格的數(shù)值由對(duì)應(yīng)行列的隱因子向量的點(diǎn)積所得。

上文中所述的用戶-物品交互矩陣是用戶的評(píng)分矩陣,它表示的就是在該系統(tǒng)中的用戶對(duì)于購(gòu)買過的物品的總體評(píng)分。評(píng)分在推薦系統(tǒng)中屬于顯示反饋,顯示反饋的信息往往會(huì)比較稀疏,所以只基于顯示評(píng)分的矩陣分解往往也不會(huì)有太好的效果。為了改進(jìn)這一點(diǎn),許多模型把矩陣中的顯示反饋信息改為隱式反饋,即把用戶的購(gòu)買、評(píng)分、瀏覽等不同的行為統(tǒng)一成一個(gè)反饋信號(hào)-用戶與該物品交互過。如果用戶和物品交互過,則對(duì)應(yīng)的單元格的值設(shè)置為1,否則設(shè)置為0。

對(duì)用戶和物品實(shí)體,使用大小為D維的向量來表示。對(duì)應(yīng)的M個(gè)用戶和N個(gè)物品分別可以表示為P∈?M*D和Q∈?N*D的矩陣,矩陣中的每一行表示一個(gè)用戶或物品,矩陣分解的表示方法為:

R?ui的內(nèi)容可以表示為PuQTi使用預(yù)測(cè)的矩陣中的值擬合原有矩陣中的已有數(shù)據(jù),并且基于平方損失函數(shù)等目標(biāo)函數(shù)對(duì)用戶和物品矩陣進(jìn)行優(yōu)化,加入L2正則項(xiàng)的目標(biāo)函數(shù)如下:

在目標(biāo)函數(shù)的基礎(chǔ)上,通過隨機(jī)梯度下降等優(yōu)化方法優(yōu)化P、Q矩陣。最后,使用相應(yīng)用戶向量和物品向量的點(diǎn)積作為該用戶對(duì)該物品的評(píng)分預(yù)測(cè),并根據(jù)評(píng)分的高低在未消費(fèi)物品中選擇最高的幾項(xiàng)推薦給用戶。

2 記憶網(wǎng)絡(luò)模型框架

為了解決引言中提出的原始矩陣分解算法的兩個(gè)缺點(diǎn),本文混合使用特征記憶網(wǎng)絡(luò)和多層全連接網(wǎng)絡(luò),得到記憶網(wǎng)絡(luò)模型。

模型結(jié)構(gòu)如圖1所示,模型的核心是得到用戶的物品級(jí)和特征級(jí)的向量表示,并將這兩者綜合起來求解用戶對(duì)物品的喜好。下面分別介紹求解這兩個(gè)向量表示對(duì)應(yīng)的模塊。

圖1 記憶網(wǎng)絡(luò)模型整體框架

2.1 MLP模塊

在上節(jié)介紹中,傳統(tǒng)矩陣分解將用戶和物品映射到同一個(gè)向量空間,再采用向量?jī)?nèi)積的方式求用戶和物品的相似度。向量?jī)?nèi)積可以看作是未歸一化的夾角余弦距離,即以向量之間夾角衡量向量的距離。該方式一方面不能夠表達(dá)用戶物品之間的交互關(guān)系,另一方面也會(huì)帶來距離求解上比較大的損失。表1是假設(shè)的用戶之間的相似度,可以知道s23(0.66)>s12(0.5)>s13(0.4)。根據(jù)該關(guān)系大小,可以將三個(gè)向量的位置關(guān)系表示在空間中如圖2所示。此時(shí)考慮新用戶u4,可以知道相似度排名是s41>s43>s42。在u4與u1最相近,需要放在離p1最近的前提下,無論怎么放p4,都會(huì)使得p4與p2的距離比與p3的距離近,這會(huì)導(dǎo)致巨大的排序損失。綜上,為了解決矩陣分解存在的這個(gè)問題,本文使用DNN來學(xué)習(xí)用戶物品之間的交互特征。由于該網(wǎng)絡(luò)學(xué)習(xí)的是用戶和物品的交互關(guān)系,所以將網(wǎng)絡(luò)最后一層的輸出作為用戶的物品級(jí)表示。

表1 用戶相似度

圖2 用戶向量分布形式

如圖1左半部分所示,該模塊的輸入是[mu;ei],“;”表示兩個(gè)向量首尾相連,將其輸入到多層全連接網(wǎng)絡(luò)之后,通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到用戶和物品的高階交互特征。最后將神經(jīng)網(wǎng)絡(luò)的最后一層輸出zL作為用戶的物品層的表示zui該神經(jīng)網(wǎng)絡(luò)的具體定義如下:

其中,Φ表示非線性激活函數(shù),在FMN中使用ReLU作為模型的激活函數(shù)。神經(jīng)網(wǎng)絡(luò)的激活函數(shù)包括sigmoid、tanh、ReLU等,其中sigmoid函數(shù)將每個(gè)神經(jīng)元的值x通過公式映射到0到1之間。一方面這種方式將值映射在一個(gè)小的數(shù)字區(qū)間會(huì)限制神經(jīng)元的表達(dá)能力,另一方面從該激活函數(shù)的函數(shù)圖像可以看出:在x的值非常大或非常小時(shí),該激活函數(shù)的梯度接近于0,此時(shí)神經(jīng)元停止學(xué)習(xí)。tanh激活函數(shù)是sigmmd激活函數(shù)的改進(jìn)版本。神經(jīng)元的輸出在-1和1之間,但是由于tanh(x/2)=2σ(x)-1它也只能在一定程度上緩解sigmoid飽和的問題,而不能消除。ReLU在負(fù)數(shù)區(qū)取0,正數(shù)區(qū)直接輸出原值,這種計(jì)算方式比前兩者收斂更快,且不存在飽和的問題(正數(shù)區(qū)梯度始終不變)。綜上,在隱藏層的激活函數(shù)選擇上選擇Re-LU效果會(huì)更好。Wx、bx是第x層隱藏層的權(quán)重和偏罝參數(shù)。本文使用最后一層的輸出結(jié)果作為用戶的表示,zui=zL,zui∈?d并使用和文獻(xiàn)中一樣的塔式結(jié)構(gòu)。塔式結(jié)構(gòu)是一種在最低隱藏層擁有最多神經(jīng)元數(shù)量,剩余每一層在前一層基礎(chǔ)上遞減的網(wǎng)絡(luò)結(jié)構(gòu)。通過在高層使用數(shù)量更少的神經(jīng)元的方式,可以學(xué)習(xí)到數(shù)據(jù)的高階交互特征。除了輸入層的向量大小為2d之外,隱藏層從低到高倍減神經(jīng)元數(shù)目。

2.2 特征記憶網(wǎng)絡(luò)模塊

在文獻(xiàn)[5]中,用戶、物品的向量的每一維度表示該實(shí)體的一個(gè)特征,使用一個(gè)低維空間的向量表示其潛在特征因子。該方法的缺點(diǎn)是:一個(gè)向量不能充分編碼所有用戶信息。一種解決方案是增大向量維度,但是有可能會(huì)導(dǎo)致對(duì)訓(xùn)練數(shù)據(jù)過擬合從而使模型的泛化能力降低。受文獻(xiàn)[2]啟發(fā),將每一個(gè)特征因子看作一個(gè)獨(dú)立的向量,用戶對(duì)物品的喜好表現(xiàn)的是用戶對(duì)物品存在的某些特征的喜好。這樣一來,通過預(yù)先定義好的總特征數(shù)量,每個(gè)物品的表示是由某幾個(gè)特征組成,而用戶的喜好表示則是對(duì)不同特征的喜好程度的累加。為了更好的存儲(chǔ)用戶對(duì)特征的喜好,該模塊使用記憶矩陣存儲(chǔ)用戶對(duì)特征的偏好,其整體結(jié)構(gòu)如圖2右半部分所示。

從整體上看,網(wǎng)絡(luò)中包含四個(gè)記憶矩陣:每個(gè)用戶的特征尋址矩陣、特征記憶矩陣、物品的表示矩陣和用戶的表示矩陣。具體地,用戶u的記憶矩陣為FKu∈?Kxd、FVu∈?Kxd和M∈?Pxd,其中K是定義的總特征數(shù),d是每個(gè)記憶片段的大小。在用戶額外的記憶矩陣M∈?Pxd中,P表示用戶數(shù)量,每一行表示一個(gè)用戶。物品的記憶矩陣為E∈?Pxd,Q表示數(shù)據(jù)集的物品數(shù)量大小,矩陣E中每一行表示一個(gè)物品。

數(shù)據(jù)的輸入形式為(用戶,物品)二元組,本文采用與文獻(xiàn)[34]中相似的方法得到用戶在該物品下對(duì)特征的喜好。對(duì)每一個(gè)輸入數(shù)據(jù)對(duì)(u,i)來說,物品i帶來的用戶u對(duì)每個(gè)特征的偏好表示為puij,它的計(jì)算方式

公式的第一項(xiàng)表示目標(biāo)用戶u對(duì)第j個(gè)特征的偏好。第二項(xiàng)表示物品i造成的用戶對(duì)該項(xiàng)特征的喜好程度的置信度的偏移。因此,整個(gè)尋址方式表明用戶u在物品i的影響下,對(duì)特征j的喜好程度。用戶對(duì)每個(gè)特征都有不同的偏好程度,在用特征記憶向量表示用戶時(shí),不能賦予每個(gè)特征相同的權(quán)重。模型中的注意力機(jī)制可以學(xué)習(xí)到一個(gè)動(dòng)態(tài)權(quán)重值,將注意力集中在特征集合的部分子集當(dāng)中,從而以加權(quán)和的形式表示用戶。

該公式生成了用戶在特征上的歸一化權(quán)重分布。注意力機(jī)制的引入,使得用戶在自己喜好的特征上獲得更高的分值,在無關(guān)的特征上投入更少的關(guān)注。接著模型再使用該權(quán)重得分乘以存儲(chǔ)的特征記憶單元得到用戶的特征級(jí)表示:

其中,(fv)uj尋址矩陣中對(duì)應(yīng)的特征記憶單元。這種外存機(jī)制允許模型在存儲(chǔ)用戶對(duì)特征的長(zhǎng)期喜好的同時(shí),還能根據(jù)存儲(chǔ)的內(nèi)容和當(dāng)前物品的信息動(dòng)態(tài)更新記憶。從另一個(gè)角度來講,模型首先通過制定的尋址方案,從尋址矩陣FKu中學(xué)習(xí)用戶對(duì)每個(gè)特征的偏好權(quán)重,再對(duì)存儲(chǔ)在特征記憶矩陣FV中的相關(guān)記憶進(jìn)行加權(quán)求和。記憶網(wǎng)絡(luò)動(dòng)態(tài)選取相關(guān)的特征子集,并將加權(quán)和的結(jié)果作為用戶的特征級(jí)表示向量。

在上面提到的工作中,用戶的權(quán)重偏好是由簡(jiǎn)單的(用戶,特征)向量點(diǎn)積加上(物品,特征)向量點(diǎn)積而得??紤]到該方式有可能不能一次性獲取到所有相關(guān)信息,本文采取多層記憶網(wǎng)絡(luò)的形式來獲取與用戶最相關(guān)的特征信息。將記憶網(wǎng)絡(luò)拓展為多層結(jié)構(gòu),每一層的記憶更新中,借助前一層給予的信息重新搜索整個(gè)特征集合,更新記憶的權(quán)重值。這種結(jié)構(gòu)一方面可以在較高層中修正在低層中由于對(duì)信息的錯(cuò)誤理解而導(dǎo)致的錯(cuò)誤結(jié)果,另一方面可以借助更多的先驗(yàn)知識(shí),提取出之前未發(fā)現(xiàn)的關(guān)鍵信息,每一層得到特征權(quán)重的方式如下:

其中,Wh、Uh是參數(shù)方陣,將上一層的信息和當(dāng)前層的輸出映射到同樣的向量空間,再通過非線性激活函數(shù)得到當(dāng)前層的候選輸出。然后將候選輸出作為尋址的查詢向量,將其與尋址向量做內(nèi)積得未歸一化的權(quán)重。記憶網(wǎng)絡(luò)的第一層的尋址輸入為

2.3 輸出模塊

前兩個(gè)模塊分別在物品級(jí)和特征級(jí)編碼用戶,最終的輸出模塊將兩者綜合起來得到用戶對(duì)物品的喜好預(yù)測(cè)。所以,對(duì)于給定的用戶u和物品i,物品的得分計(jì)算方式如下:

“;”表示向量連接,v∈?2d是在訓(xùn)練過程中需要學(xué)習(xí)的參數(shù)。

最后,本文選擇交叉熵?fù)p失函數(shù)作為模型的目標(biāo)方程。最小化該目標(biāo)方程,并且根據(jù)鏈?zhǔn)絺鲗?dǎo)法則去優(yōu)化模型中涉及到的各個(gè)參數(shù),

3 結(jié)語

本文從介紹傳統(tǒng)的矩陣分解算法開始,詳細(xì)介紹記憶網(wǎng)絡(luò)模型每個(gè)模塊的功能。綜上所述,本文提出的記憶網(wǎng)絡(luò)模型相比傳統(tǒng)協(xié)同過濾等推薦算法有以下優(yōu)勢(shì):

第一,用戶的物品級(jí)表示模塊可以通過MLP獲取用戶和物品之間的非線性交互關(guān)系,并且對(duì)相似用戶之間的距離有一個(gè)更好的度量方法。

第二,用戶的特征級(jí)表示由記憶網(wǎng)絡(luò)中存儲(chǔ)的特征進(jìn)行加權(quán)和得到,這種表示方法集成了多個(gè)特征的信息,解決了矩陣分解模型中使用單一向量表示用戶的問題。

猜你喜歡
物品向量矩陣
稱物品
向量的分解
聚焦“向量與三角”創(chuàng)新題
“雙十一”,你搶到了想要的物品嗎?
誰動(dòng)了凡·高的物品
初等行變換與初等列變換并用求逆矩陣
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
矩陣
南都周刊(2015年4期)2015-09-10 07:22:44
矩陣
南都周刊(2015年3期)2015-09-10 07:22:44
武山县| 黎平县| 昭苏县| 杭锦后旗| 会昌县| 孝感市| 霞浦县| 民和| 临湘市| 海宁市| 遵义县| 繁昌县| 青岛市| 腾冲县| 云林县| 保亭| 高阳县| 读书| 盐城市| 高邮市| 辽宁省| 乌拉特后旗| 新乡县| 同江市| 邯郸市| 探索| 剑阁县| 江源县| 库尔勒市| 易门县| 宁南县| 进贤县| 玛曲县| 县级市| 乐安县| 沾化县| 沙坪坝区| 康乐县| 临夏市| 江永县| 蒙阴县|