node2vec在社交網路推薦中的應用(二)

2021-10-02 19:45:54 字數 1684 閱讀 3034

在上一步中,我們已經獲得了點的序列樣本,那麼下一步我們需要解決的問題是,如何根據上點序列生成每個點的特徵向量,即我們前面提到的「座標」。我們先拋開這個問題,聚焦在word2vec演算法的意義上。

word2vec已成為現在主流的特徵構造方法。

word2vec是從大量文語料中以無監督的方式學習語義知識的一種模型。它被的大量的運用在自然語言處理(nlp)中。word2vec的核心目標是通過乙個嵌入空間將每個詞對映到乙個空間向量上,並且使得語義上很相近的詞在空間內距離很近。

舉個例子

「國王」這個單詞和「王子」屬於語義上很相近的詞,二「國王」和「公主」則不是那麼相近,「國王」和「小丑」則就差的更遠了。

通過word2vec的學習,可以得到每個詞的數值向量,例如(0.23,0.45,0.01…),我們希望「國王」和「王子」的數值向量比較接近,而「國王」和「小丑」的數值向量相差較遠。數值向量化的操作也能幫助我們得到一些有趣的結論,例如「國王」-「王子」=「女王」-「公主」。

word2vec模型中,主要有skip-gram和cbow兩種模型。

skip-gram模型實際上分為兩個部分。

第一部分為建立模型,第二部分是通過模型獲取嵌入詞向量。即先基於訓練資料構建乙個神經網路,當這個模型訓練好以後,我們並不會用這個訓練好的模型處理新的任務,我們真正需要的是這個模型通過訓練資料所學得的引數,例如隱層的權重矩陣,而他們正是我們希望得到的「word vectors"。訓練模型的真正目的是獲得模型基於訓練資料學得的隱層權重。為了得到這些權重,我們首先要構建乙個完整的神經網路作為我們的訓練資料。

通過乙個例項來幫我們理解

假如有乙個句子「when the whole world is about to rain,let』s make it clear in our heart together」。首先,我們選取句子中間的乙個詞作為我們的輸入詞,例如,我們選取「word」作為(input word)。有了input word以後,我們在定義乙個叫做skipwindow的引數,它代表著我們從當前input word的兩側獲取到的詞。如果我們設定skipwindow=2,那麼我們可以得到乙個訓練樣本(world)–>(the ,whole,is,about).類似的我們還可以得到乙個訓練樣本的onehot編碼輸入到skip-gram模型中,最終模型的輸出是乙個概率分布。

那為什麼「國王」和「王子」的數值向量比較接近,而「國王」和「小丑」的數值向量相差較遠呢???

正如上面提到的word2vec模型的輸出是乙個概率分布,基於大量的語料資料,「國王」和「王子」前後的詞出現的概率比較接近,所以訓練得到的詞向量也會比較接近,而「國王」和「小丑」的前後文往往不一樣,所以得到的詞向量也會不一樣。

cbow:

cbow模型與skip-gram正好相反,skip-gram 模型的輸入是中心詞,輸出是上下文,而cbow是通過上下文來**中心詞,並且拋棄了詞序資訊。

這樣我們就基本了解了word2vec的訓練過程

回到node2vec的訓練

其思路和word2vec基本一致。我們從上一步獲得的訓練樣本是使用者節點串,形如a->b->f->c->h->…,每乙個節點其實對應了word2vec中的單詞,模型的輸入是某個使用者的one-hot編碼,輸出是該使用者在節點串中前後的節點。例如輸入是f的編碼,輸出是a,b,c,h的概率分布。最後得到的輸出是每個節點(即使用者)的word2vec向量。

有了數值化的向量,對於任意兩個使用者的相似度,我們就可以用相似度或霍氏距離計算這兩個使用者的相似度。然後選k個進行推薦。

社交網路演算法在金融反欺詐中的應用

網際網路和金融的結晶 個人對個人的信用貸款 極速信任 自動化信用評估 客戶獲取 信用評估 交易促成 客戶服務 網際網路金融行業中的欺詐 欺詐交易 反欺詐中可應用到多種社交網路演算法 社交網路演算法在金融反欺詐中的優勢 構建金融知識圖譜fingraph 包含 身份證.銀行卡,信用卡,ip,裝置號,地理...

JWT在node中的簡單應用

json web token 縮寫 jwt 是目前最流行的跨域認證解決方案。是為了在網路應用環境間傳遞宣告而執行的一種基於json的開放標準 rfc 7519 該token被設計為緊湊且安全的,特別適用於分布式站點的單點登入 sso 場景。secreate key 是我們儲存再服務端服務端的隨機字串...

SVD在推薦系統中的應用

其實說參考也不準確,準確地說應該是半翻譯半學習筆記。仔細整理一遍,感覺還是收穫很大的。任意乙個m n的矩陣a m行 n列,m n 可以被寫成三個矩陣的乘機 1.u m行m列的列正交矩陣 2.s m n的對角線矩陣,矩陣元素非負 3.v n n的正交矩陣的倒置 即a u s v 注意矩陣v需要倒置 直...