推薦系統概述(二)

2022-09-18 22:24:32 字數 2313 閱讀 7752

如何在沒有大量使用者資料的情況下設計個性化推薦系統並且讓使用者對推薦結果滿意從而願意使用推薦系統,就是冷啟動的問題。

冷啟動問題(cold start)主要分3類。

使用者冷啟動

物品冷啟動

系統冷啟動

1)使用者冷啟動可以利用使用者註冊資訊,也可以選擇合適的物品啟動使用者的興趣(基於nlp方向的推薦)

2)物品冷啟動可以利用物品的內容資訊

3)系統冷啟動可以發揮專家的作用

本文重點介紹文字處理(基於使用者冷啟動的nlp推薦演算法)。

演算法涉及到了:

文字預處理流程:

jieba 分詞api:

nltk工具包:

去除停用詞:各種計算框架均有stopword

詞的向量化方法: bag of word, n-grame, tf-idf, word2vec

詞的向量化表示:bag of word, n-gram, tf-idf, word2vec.

bag of word:

詞頻統計技術預設出現頻率越高的詞權重越大。

api:

sklearn.feature_extraction.text import countvectorizer

問題:1.基於統計的,維度會非常大,計算會出現維度災難

2.預設為各個詞之間獨立不相關的,無關聯的,沒有語義關聯,實際中應用無法提公升,只能適用於小語料計算。

n-gram:

通過n-gram 方式在把前後關聯的詞進行了組合,增加了前後此的語義關聯性,同時增大了資料集,但是這也就造成了兩個影響:

1.資料維度瞬間增大,通常情況下,我們最多使用到4-gram組合即可,因為分詞後再前後語義關聯,造成的維度太大,計算不僅影響了速度。

注:因為關聯詞的n-gram的方法,思維啟發,後面針對於時間序列的關聯和推算的演算法有hmm-隱馬爾科夫模型 / rnn-迴圈神經網路模型, hmm模型常用來自然語言的分詞,jieba分詞api就是用hmm模型做的演算法

2.資料維度瞬間增大的同時,不僅增加了新詞的發現能力,造就了新詞,增加了特徵的資料量,同時也造成了乙個不可避免的事實就是句子中那些關鍵的比較重要的詞,在詞袋作用下,比例會非常小,本身是關鍵語義,但是卻成了不關鍵的語義了,大大損失了句子的真實性,二破壞了本來的特徵重要性,這樣就到了我們資料處理常用的「資料平滑技術」

資料平滑是對頻率為0的n元對進行估計,典型的平滑演算法有加法平滑、good-turing平滑、katz平滑、插值平滑,等等。

n-gram模型的解碼演算法

為什麼n-gram模型需要解碼演算法呢?舉個例子來說,對於音字轉換問題,輸入拼音nixianzaiganshenme,可能對應著很多轉換結果,對於這個例子,可能的轉換結果如下圖所示(只畫出部分的詞語節點),各節點之間構成了複雜的網路結構,從開始到結束的任意一條路徑都是可能的轉換結果,從諸多轉換結果中選擇最合適的結果的過程就需要解碼演算法。

常用的解碼演算法是viterbi演算法,它採用動態規劃的原理能夠很快地確定最合適的路徑。這裡就不詳細介紹該演算法了。

sklearn.feature_extraction.text import countvectorizer(ngram_range =(1,1))

問題:1.基於統計的,維度會非常大,計算會出現維度災難

2.預設為各個詞之間設定了n相關的,實際中最多n=3,維度會非常大,計算會出現維度災難

tf-idf:

tf-idf是「詞頻-逆文字頻率」。由兩部分組成,tf和idf。

tf標表示的是「詞頻」,句子向量化就是做了文字中各個詞的出現頻率統計,並作為文字特徵關鍵

idf即「逆文字頻率」。idf就是來幫助我們來反應這個詞的重要性的,進而修正僅僅用詞頻表示的詞特徵值。 idf反應了乙個詞在所有文字**現的頻率,如果乙個詞在很多的文字**現,那麼它的idf值應該低,反之,如果乙個詞在比較少的文字**現,那麼它的idf值應該高。

api:

sklearn.feature_extraction.text.tfidftransformer

sklearn.feature_extraction.text.tfidfvectorizer

問題:1.基於統計的,維度減小,語義表達輕量化,訓練計算快

2.依舊是基於統計型別的,依舊是條件獨立假設,不過思維方式變化成了跟總文件做對比,增加了可靠性,依舊沒有語義推斷性,依舊沒有考錄基於序列的準確性。

word2vec:

word2vec來解決句子中詞的先後語義關聯和減低維度,來提公升「特徵」的表達能力

一般分為cbow(continuous bag-of-words)與skip-gram兩種模型。

推薦系統概述

物品 關注物品集的屬性和特徵 使用者 關注使用者基本屬性,年齡,性別等 事務 使用者的行為記錄,分為顯示行為和隱式行為 推薦系統的分類 基於內容 content based 為使用者推薦與過去興趣相似的物品,物品的相似性是基於被比較物品的特徵來計算的 協同過濾 cf collaborative fi...

推薦系統 概述

好久沒有更新了!最近一直在研究推薦相關的知識,也算是有一點感悟吧,暫且打算寫一系列推薦入門的文章,一為分享,共同學習。二為對知識做乙個系統的整理。這是第一篇,不打算說太多關於技術的問題,我們就來隨便聊聊推薦系統,然後本篇文章也作為該系列的乙個導航文章吧!我想大家應該都對推薦系統不會陌生,不管你是逛 ...

推薦系統概述

利用使用者和物品的特徵資訊,給使用者推薦那些具有使用者喜歡的特徵的物品。利用使用者喜歡過的物品,給使用者推薦與他喜歡過的物品相似的物品。利用和使用者相似的其他使用者,給使用者推薦那些和他們興趣愛好相似的其他用 戶喜歡的物品。根據實時性分類 離線推薦 實時推薦 根據推薦原則分類 基於相似度的推薦 基於...