推薦系統算法白話

基本模型

詞袋模型

詞袋模型(Bag of Words,簡稱BoW)。

這種文本表示的方法,稱之爲詞袋標識符。

詞袋模型假設咱們不考慮文本中詞與詞之間的上下文關係,僅僅只考慮
全部詞的權重。而權重與詞在文本中出現的頻率有關。

從詞的角度進行文本數據挖掘是衆多挖掘方式中的一種。

詞袋模型的步驟:
    分詞(tokenizing):
        
    
    統計修訂詞特徵值(counting):

        統計每一個詞在文本中出現的次數,咱們就能夠獲得該文本基
        於詞的特徵,若是將各個文本樣本的這些詞與對應的詞頻放
        在一塊兒,就是咱們常說的向量化。
        
        向量化完畢後通常也會使用TF-IDF進行特徵的權重修正,
        由於,若是語料是有不少篇文本組成,那麼一個詞在一篇文
        本中出現的次數每每不夠科學,要把全部文本一塊兒考慮。
        
    標準化(normalizing):

        將特徵進行標準化,以便於挖掘。

詞袋模型算法有哪些

Tfidf詞頻逆文檔頻率
    
    LDA隱含狄利克雷分佈 :從詞語層面看,主題是一種詞彙分佈,並不涉及到詞與詞的順序關係,也屬於BOW(bag of words)
                        的一種。
                        
    VSM向量空間模型: 單詞向量空間模型
    
    LSA潛在語義分析(Laten Semantic Analysis):話題向量空間模型,經過矩陣分解(SVD或者NMF),來發現文本與單
                                                詞之間的基於話題的語義關係。
    
    PLSA:

TextRank 算法

也屬於一種詞袋模型。

與pageRank算法

image.png

PR(Vi)表示結點Vi的rank值,
    In(Vi)表示結點Vi的前驅結點集合,
    Out(Vj)表示結點Vj的後繼結點集合,
    d爲damping factor用於作平滑。

    白話:一個節點i的PR值經過i的全部前驅節點的PR值求和獲得,
         節點i的PR值能夠分得前驅節點j出度數分之一的PR(j)值,
         換句話說j的出度越多,出度目標分得PR(j)越少。
    
 TextRank與pageRank算法一致,pageRank是網頁之間的關係,
 TextRank換成了詞語之間的關係。
 
 pageRank用來計算每一個頁面的PR值,也叫rank值或頁面排名值。
 搜索結果的權重根據rank值決定。
 
 pageRank的思想是,每一個頁面的rank值是由指向他的頁面的rank值所決定。
 
 
 pageRank也稱爲隨機遊走算法,屬於一種圖算法。
 
 好比有頁面A,只有頁面B和C指向A,B頁面只指向A,C頁面同時僅指向A和D,那麼PR(A)=PR(B)+P(C)/2。
 其它頁面也按照這種方式計算。
 若是有N個頁面,就會有N個上例的計算等式。
 
 公式:
    PR(A) = 「全部指向A頁面集合{T0,T1....,Ti}的PR值PR(Ti)除於Ti的出度數量,而後求和」。
    
  
 求解:
    變換成矩陣求解,把PR當作係數,使用迭代求解,求出每一個頁面的PR值,就能夠獲得每一個頁面的rank值。

概念

滑動窗口:

  通俗的講,一篇文檔在某個詞語位置左右截取固定詞語長度的一
  段,這一段就是滑動窗口的一個實例。
  
  全部詞語以此截取,每一個位置詞語都有本身的窗口,所以稱之爲滑
  動窗口。
  
共現關係 co-occurrence :
    通常咱們認爲,在一篇文章中近鄰出現的兩個詞語之間,必定
    具備某種關聯。
    
    咱們能夠先作分詞,將文檔中的詞語抽取出來,而後
    統計某兩個詞語同時出現的出現次數,並把結果存在一個二維矩
    陣之中。
    
 與pageRank區別:
    TextRank相比pageRank邊是無向的,由於詞語相鄰便可,不考慮指向,而pageRank中的網頁則不一樣。
    
    TextRank公式相比PageRank公式,每個求和項中增長了兩個詞關係的權重。這個權重就是共現次數?

執行過程

經過詞之間的相鄰關係構建網絡,而後用PageRank迭代計算每一個節點
的rank值,排序rank值便可獲得每一個詞語的權重。

迭代過程:
    迭代收斂原理 todo
    https://hunglish.github.io/2018/05/31/20180531TextRank提取關鍵詞實現原理/

公式

image.png

公式僅僅比PageRank多了一個權重項Wji,用來表示兩個節點之間的邊鏈接有不一樣的重要程度。

tf-idf VS textrank

相同:
    TextRank與TFIDF均嚴重依賴於分詞結果。
    歸屬於詞袋模型。
    
不一樣:
    TextRank有圖構建的過程,效率相比更低。
    TextRank的範圍是一篇文章,而Tf-id範圍是全部文章。

機率圖模型

機率與圖

機率:
    不少現實事情具備不肯定性,人們但願從不肯定性的事情中提取肯定知識信息。
    因此人們建立了機率這一律念來描述事情的不肯定性。

機率的加法乘法準則:

image.png

機率圖:
    原本不存在,是一個組合概念,由圖論和機率論結合的產物。
    
    做用:
        一、使得機率模型可視化了,便於直觀觀測變量之間的關係
        
        二、圖上的信息傳遞有助於理解機率上的複雜的計算
        
        總結就是便於觀測關係和複雜的計算。
        
    因此不要被表面的東西迷惑,更重要的是關注基本的數學邏輯。

邊:
   兩個結點,a指向b,有向邊用p(b|a)表示,並稱a是b的父結點。
   
   若是a沒有父結點,沒有輸入的箭頭,它直接對應於p(a)。

有向圖聯合機率分佈

機率論的鏈式法則

2個事件同時發生的機率:

image.png

3個事件同時發生的機率:

image.png

n個事件同時發生的機率:

image.png

事件相互獨立

一個事件的發生與否,不會影響另一個事件的發生。

a和b兩個事件互相獨立時:
    **P(a | b) = P(a)**
    
    b跟a沒有任何關係,因此a b構不成條件。
    
    在引入一個事件c:
        **P(a | b, c) = P(a | c)**
        
        b也能夠省略,由於b構不成a的條件。

貝葉斯網絡

有向圖模型也叫貝葉斯網絡(Bayesiannetworks)或信念網絡(BeliefNetworks)

貝葉斯網絡是和聯合機率分佈是等價的。同時貝葉斯網絡的計算效率提升很多。

有向機率圖聯合機率分佈例子

image.png

全部結點只與他們的父節點有關係。
也就是不相鄰的結點沒有關係。

根據機率鏈式調用法則:
    逐步展開能夠獲得如下式子。

image.png

最後一步的長式子能夠根據是否相互獨立繼續精簡:
        1.  E只與B有關,則 P(E | B, D, C, A) = P(E | B)
        2.  B只和AC有關,則 P(B | D, C, A) = P(B | C, A)
        3.  D只與C有關, 則 P(D | C, A) = P(D | C)
        4.  C與A無關,則 P(C | A) = P(C)
    
    最後精簡的公式:

image.png

無向圖聯合機率分佈

基本概念

團的定義:
    圖中節點x={x1,x2,...,xn}構成的一個子集,
    若是本身的任意兩點之間都存在邊相連,
    則這個子集中的全部節點構成了一個團。

最大團的定義:
    子集中加入任意其餘節點,都不能構成一個團,
    稱這樣的子集構成了一個最大團。


勢函數:
    一個團對應一個勢函數
    勢函數做用在團上,團是由結點(機率)組成的。
    勢函數的值與機率成正比。
    
獨立定義:
    局部馬爾科夫性:

        兩個節點集A、B都與給定的第三個節點集C相互條件獨立,
        A、B節點之間的路徑都被C中的節點分開。

        每一個步驟「停」時先後狀態相互獨立(馬爾科夫模型(鏈)的性質)。

        在已知 「如今」的條件下,「將來」與「過去」彼此獨立的特性就被稱爲馬爾科夫性。
    
    全局馬爾科夫性:
        最大團與最大團之間的獨立性。

馬爾科夫隨機場

無向圖模型也叫馬爾科夫隨機場(MarkovRandomFields)或馬爾科夫網絡(MarkovNetwork)

隱馬爾可夫模型

常見的兩種問題

針對HMM不一樣的輸出,咱們能夠定義以下兩類問題:  
HMM評估問題:
    在給定模型中出現觀察序列的可能性(機率值);  
    
HMM解碼問題            
    經過觀察序列找出最大可能的隱狀態序列

基本術語和問題設定

機器學習領域內不少常見問題都涉及到對彼此相互獨立的孤立數據點進行分類。好比:預測給定圖像中是否包含汽車或狗,或預測圖像中的手寫字符是 0 到 9 中的哪個。

事實證實,不少問題都不在上述範圍內。好比說,給定一個句子「I like machine learning」,而後標註每一個詞的詞性(名詞、代詞、動詞、形容詞等)。正如這個簡單例子所表現出的那樣:咱們不能經過單獨處理每一個詞來解決這個任務——「learning」根據上下文的狀況既能夠是名詞,也能夠是動詞。這個任務對不少關於文本的更爲複雜的任務很是重要,好比從一種語言到另外一種語言的翻譯、文本轉語音等。

機率圖模型(PGM/probabilistic graphical model)是一種用於學習這些帶有依賴(dependency)的模型的強大框架。

機率圖模型(或簡稱圖模型)在形式上是由圖結構組成的。圖的每一個節點(node)都關聯了一個隨機變量,而圖的邊(edge)則被用於編碼這些隨機變量之間的關係。根據圖是有向的仍是無向的,咱們能夠將圖的模式分爲兩大類——貝葉斯網絡( Bayesian network)和馬爾可夫網絡(Markov networks)。

LDA 隱含狄利克雷分佈

LDA(Latent Dirichlet Allocation)是一種文檔主題生成模型,也稱爲一個三層貝葉斯機率模型,
包含詞、主題和文檔三層結構。
所謂生成模型,就是說,咱們認爲一篇文章的每一個詞都是經過「以必定機率選擇了某個主題,並從這個主題中以必定機率選擇
某個詞語」這樣一個過程獲得。

文檔到主題服從多項式分佈,主題到詞服從多項式分佈。

屬於一種文本淺層語義分析主題模型。

LDA是怎麼看待詞彙文章和主題?

LDA經過詞彙的機率分佈來反映主題。

一個詞的出現不必定會反應某篇文章必定就是某個主題,而是在某稱程
度上反應了某個主題的可能性。其實就是從機率角度來看待詞語
和主題的相關度。LDA把詞彙的機率分佈彙總成一個主題結論。
具體是這樣的,體育主題表示爲:
    {科比:0.3,籃球:0.3,足球:0.3,奧巴馬:0.03,希拉
    裏:0.03,克林頓:0.04}

每一個文檔都會對應一個主題分佈。

LDA認爲,文章和主題之間並不必定是一一對應的,也就是說,文章可
以有多個主題,一個主題也能夠在多篇文章之中。

數學知識

Gamma函數,二項分佈,Gamma分佈,Beta/Dirichlet分佈/共軛,
隨機模擬,馬氏鏈以及平穩分佈,MCMC(Markov Chain Monte Carlo) ⁄Gibbs Sampling。

這些數據知識對於通常工程人員比較難以理解,建議專門抽時間進行系統學習而且各個擊破。
不建議貿然進入,不然很容易挫敗。

基於內容的推薦

基於內容(包含LDA),基於用戶行爲,LMF能夠當作推薦算法的三大類。

邏輯迴歸

邏輯迴歸(Logistic Regression)是一種用於解決二分類(0 or 1)問題的機器學習方法,
    用於估計某種事物的可能性。  

    注意,這裏用的是「可能性」,而非數學上的「機率」,
    logisitc迴歸的結果並不是數學定義中的機率值,不能夠直接當作機率值來用。

假設函數:

image.png

假設函數圖形描述:
        關鍵座標,(0,0.5);
        正無窮趨近於1,負無窮趨近於0;
        
    假設函數解讀:
        x 是輸入,theta爲咱們要求取的參數。

邏輯迴歸推導過程

一、假設函數(「機率」函數)
    在線性迴歸函數基礎上增長一層sigmoid函數,表示可能性。
    
    此公式是對事件發生可能性的假設,僅僅是對全部特徵對應機率的一個通用表達。
    
    

二、機率分佈函數
        把上面的「機率」函數套用入伯努利分佈公式

        伯努利公式中底是機率,冪是隨機變量,因變量獲得的也是機率。
    
    伯努利公式以下:

image.png

上面公式x表明隨機變量,取值(1,0)
        
    
    套用以後的公式以下:

image.png

上面公式中y對應伯努利公式中的隨機變量x。(h theta) 對應伯努利公式中的機率。
    機率分佈是對事件發生機率的描述:即在特定的特徵和超參數下事件發生的機率。
    
三、似然函數
        使用該步驟的前提是:機率分佈函數的參數能夠用似然函數進行求解。

        似然函數使用的是「集體智慧」, 
        把全部已知樣本發生的機率相乘,就能夠獲得全部樣本同時發生的機率。
    
    公式以下:

image.png

m表明樣本個數,i表明每一個樣本。
 
 四、損失函數
        
        爲了得出損失函數而且處於計算方便的目的:
            似然函數取對數,再取反即爲咱們的損失函數。

    公式以下:

image.png

邏輯迴歸與線性迴歸區別

邏輯迴歸(Logistic Regression)與線性迴歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。

邏輯迴歸假設因變量 y 服從伯努利分佈,而線性迴歸假設因變量 y 服從高斯分佈。

去除Sigmoid映射函數的話,邏輯迴歸算法就是一個線性迴歸。

邏輯迴歸是以線性迴歸爲理論支持的,可是邏輯迴歸經過Sigmoid函數引入了非線性因素,所以能夠輕鬆處理0/1分類問題。

多分類迴歸

假設函數:

image.png

隨機變量Y的取值是(1,2, ... K) , 
    該公式表示樣本在每個分類取值{1,2,...k}的佔比,exp是以e爲底的對數。

似然函數:

image.png

每一個樣本在k類別下全部的機率乘積,而後m個樣本的乘積再乘積。

基於熱度的推薦

熱度特徵,在冷啓動頗有效,冷啓動的概念是說系統裏面並無你的相關畫像數據,好比遊客登陸了頭條,會怎麼推薦呢,能夠經過熱度特徵,即根據當前社會熱點呀、文章閱讀量高低排名呀等一些能表明廣泛羣體感覺的指標進行推送選擇

關聯規則

Apriori

FP-growth

協同過濾

基於用戶行爲的推薦,屬於近鄰算法。
能夠解決越推越窄的問題。

基於用戶的協同推薦(User-based Collaborative Filtering)

兩個關鍵點:
    找到類似用戶,
    計算類似用戶對物品的平均評分。

當一個用戶A須要個性化推薦 時,能夠先找到和他有類似興趣的其餘用戶,而後把那些用戶喜歡的、而用戶A沒有據說過的物
品推薦給A。

步驟:

一、找出用戶u類似的用戶集合
        
        經過行爲的類似度計算用戶類似度。
         
        某個用戶v跟u用戶的類似度 = 兩個用戶興趣物品集合交集 / 兩個用戶興趣物品集合並集
        
    二、給用戶u推薦物品
         經過前一步的結果能夠找到跟用戶u類似的前K個用戶,
         這一步要在這兒K個用戶裏喜歡的物品裏尋找用戶u喜歡的物品。

         推薦物品以前咱們要先預測用戶u對物品i的評分。
         
         把用戶u與K個類似用戶的類似度做爲權重,K個用戶分別對物品i的評分做爲被乘數,
         而後把以上乘法表達式做爲求和項,得出的就是u對i的加權評分,能夠表明用戶u對物品i的感興趣程度。
         
 算法表明的意思:與某個用戶類似的用戶都是這麼評分的,那麼他們對某個物品的加權平均分就應該是我給這個物品的評分。

 注意兩點:
    用戶u對物品i是要預測的,用戶u沒有對物品i直接評價過。
    K個類似用戶中不是全部用戶都對物品i進行過評分。

如何下降求用戶類似度時的時間複雜度

咱們在計算全部用戶之間的類似度時,每每兩個用戶之間沒有任何類似。
    爲了下降時間複雜度,todo

類似用戶如何求

場景

新聞網站:
     某中興趣的新聞不經常使用,而類似的用戶老是存在。
     技術上item新聞更新很快,維護一張item表有難度。
原理:
    UserCF給用戶推薦那些和他有共同興趣愛好的用戶喜歡的物品。
    UserCF的推薦結果着重於反映和用戶興趣類似的小羣體的熱點。
    UserCF的推薦更社會化,反映了用戶所在的小型興趣羣體中物品的熱門程度。

基於項目的協同推薦(Item-Based Collaborative Filtering)

關鍵點:
    找到類似物品,
    計算用戶對類似物品的平均評分。

步驟

一、計算物品的類似度
         全部用戶對兩個物品的評分向量是橋樑。
         
         經過計算用戶評分向量之間的類似度。
         
    二、預測某個用戶u對物品j的評分
        經過前一步的結果能夠找到跟物品j類似的前K個物品,
        這一步要用用戶對這K個物品的評分去預測對物品j的評分。
        
        把物品j與K個物品的類似度做爲權重,用戶對這個K個物品的評分做爲乘數,
        而後把以上乘法表達式做爲求和項,得出的就是u對j的加權評分,能夠表明用戶u對物品j的感興趣程度。
        
 算法表明的意思:某用戶對對某個物品的評分,可使用用戶對與該物品類似的其它物品的加權平均評分計算。

 注意兩點:
    要預測用戶u對物品j的評價,用戶u沒有對物品i直接評價過。
    用戶u不是對K個類似物品全都進行過評分,計算前要與u用戶的評價物品集合求交集。

場景

ItemCF給用戶推薦那些和他以前喜歡的物品相似的物品。
ItemCF 的推薦結果着重於維繫用戶的歷史興趣。
 ItemCF的推薦更加個性化,反映了用戶本身的興趣傳承。
 
 
 用於電商推薦:用戶興趣通常不會變化很快,

基於模型的協同過濾

**(model based)** CF

**具體基於模型的方法有:**  
用關聯算法作協同過濾(Apriori算法、FP Tree算法)  
用聚類算法作協同過濾(針對基於用戶或者基於模型,Kmeans,DBSCAN)  
用分類算法作協同過濾(設定評分閾值,高於推薦,低於不推薦,邏輯迴歸和樸素貝葉斯,解釋性很強)  
用迴歸算法作協同過濾(Ridge迴歸,迴歸樹)  
用矩陣分解作協同過濾(因爲傳統的奇異值分解SVD要求矩陣不能有缺失數據,必須是稠密的,而用戶物品評分矩陣是一個典型的稀疏矩陣,主要是SVD的一些變種,好比FunkSVD,BiasSVD和SVD++。這些算法和傳統SVD的最大區別是再也不要求將矩陣分解爲UΣVT的形式,而變是兩個低秩矩陣PTQ的乘積形式。)  
用神經網絡作協同過濾(限制玻爾茲曼機RBM)

矩陣分解推薦

svd是奇異值分解,分解成三個矩陣相乘。
 「svd變種」只須要分解成兩個低秩矩陣,又稱隱式分解模型。
 
 svd計算複雜度很高,因此很難在實際系統上有所應用。
 
 原始svd原理與推薦系統中矩陣分解的原理不相同,
 一個是經過求奇異矩陣,一個是經過優化算法求解。

隱式分解模型 LFM

Latent factor model
原理:
    

公式:

111.png

p(u,k) 度量了用戶u的興趣和第k個隱類的關係。
    q(i,k) 度量了第k個隱類和物品i之間的關係。
步驟:
    一、準備用戶—物品集 K={(u, i)}
        主要是負樣本的採樣
    二、 優化損失函數(隨機梯度降低法)

image.png

後兩項是正則化項, 
        
 參數:
        隱特徵的個數F;  
        學習速率alpha;  
        正則化參數lambda;
        負樣本/正樣本比例 ratio
 參數影響:
        固定前三個參數,ration對性能影響最大,
        ration增長推薦物品的流行度不斷增長, 說明ratio參數控制了推薦算法發掘長尾的能力。

隱性反饋數據集

在選取用戶對物品的負反饋數據上:
    對每一個用戶,要保證正負樣本的平衡(數目類似)。
    對每一個用戶採樣負樣本時,要選取那些很熱門,而用戶卻沒有行爲的物品。

原始SVD

原理:
   分解成三個矩陣相乘,USV矩陣。
   U矩陣保留原矩陣行的信息。
   V矩陣保留原矩陣列的信息。
   對角陣用來控制保留信息的比例。
                                    
步驟:
   A(m,n)原始矩陣。
   計算U(m,m),AA(T)矩陣(m,m) 的特徵向量組成的矩陣。
   計算V(n,n),A(T)A矩陣(n,n) 的特徵向量組成的矩陣。
   計算∑(m,n), 前兩步中非零特徵值從大到小排列後開根號的值組成的矩陣(n,n)
   https://www.cnblogs.com/marsggbo/p/10155801.html
   https://www.cnblogs.com/pinard/p/6251584.html

推薦系統中使用流程:
   一、選擇對角陣r的個數。
   二、U矩陣是用戶的評分信息
   三、V矩陣是物品評分的信息
   四、使用U、V矩陣能夠用更少的計算來計算用戶或者物品的類似度
      U(m,k), V的轉置(k,n)                                  五、而後求出用戶喜歡但未評分的物品

svd++

加入偏置項後的LFM:

image.png

3個偏置項目的含義:
        一、評分系統有些 固有屬性和用戶物品無關,
        二、用戶也有些屬性和物品無關
        三、物品也有些屬性和用戶無關。
    
        μ:訓練集中全部記錄的評分的全局平均數。它能夠表示網站自己對用戶評分的影響。  
        b(u): 用戶偏置項。這一項表示了用戶的評分習慣中和物品沒有關係的那種因素。  
        b(i): 物品偏置項。這一項表示了物品接受的評分中和用戶沒有什麼關係的因素。


考慮鄰域影響的LFM:
       顯式地考慮用戶的歷史行爲對用戶評分預測的影響。

image.png

PCA 主成分分析

用處

解決降維問題。
                                                                            對特徵進行降維(而不是數據)

原理

犧牲少許的信息以下降特徵數量。
                                                                            最大化方差理論:保留特徵之間協方差最大的特徵
                                                                            一、下降的維度如何選擇,
     根據特徵值的佔比來選擇,
     能夠計算出信息保留的百分比。                                              二、降維後的信息沒法知道確切含義。
      最後獲得了一個m x k的矩陣,k是新的特徵個數,並不知道每一個具體含義是什麼。

流程

X(m,n) 訓練集,m條數據,n個特徵。
 
 一、求特徵之間的協方差矩陣C(n,n),協方差矩陣爲N x N 維度,N是特徵數。
 二、求協方差矩陣C的特徵值,特徵向量U矩陣(n,k)
 三、用原始矩陣和特徵向量求降維後的矩陣Z(m, k) = X U。
 
                                                                            https://blog.csdn.net/u012421852/article/details/80458340

算法辨析

基於內容推薦與基於項目的協同過濾區別

一、數據維度方面
    後者側重使用用戶對於商品的歷史行爲記錄,即用戶-商品二維矩陣。
    用戶/商品表示能夠看作特殊的基於內容的表示,只不過是把用戶的具體內容屬性換爲了用戶的歷史行爲特徵。
二、核心思想
    協同是集體智慧,尋找隱含的模式。
    基於內容是某個屬性進行匹配。
三、訓練參數
    協同是用戶-商品評分二維矩陣當作輸入。
    基於內容側重將用戶或者商品的特徵信息做爲輸入特徵。
四、推薦算法好壞的決定因素
    協同依賴行爲數據多少。
    前者更多依賴特徵工程+屬性完整+領域知識。

基於用戶和項目的協同過濾的區別

基於用戶的協同過濾從用戶類似的角度出發。
基於項目的協同過濾從物品類似的角度出發。

基於用戶的協同過濾使用的是類似用戶對同一個物品的加權平均。
基於項目的協同過濾使用的是該用戶對類似物品的加權平均。

兩者都是使用行爲數據來求用戶或者物品的類似度。
在進行預測時兩者本質上是一種迴歸。

協同過濾場景區別

todo

協同過濾與LFM隱含語義模型區別

理論基礎:
      LFM具備是一種學習方法,經過優化一個設定的指標 創建最優的模型。
      鄰域的方法更多的是一種基於統計的方法,並無學習過程。

離線計算的空間複雜度:
      協同過濾:
        用戶表: O(M*M)  物品表:O(N*N)
      LMF:
        存儲空間:F*(M+N)
     
       LMF更節省內存。
時間計算複雜度:
        在通常狀況下,LFM的時間複雜度要 稍微高於UserCF和ItemCF,這主要是由於該算法須要屢次迭代。
        但沒有本質區別。
 
在線實時推薦:
        對比的是用戶有一個新的行爲發生(喜歡了某個物品)的前提下。兩種算法可否及時做出反應。
        
        LFM經過公式可知道,用戶新行爲不能及時計算進去,須要維護一個推薦列表。
        
        協同過濾能夠幾乎實時的查詢。
 
  
  推薦解釋:
        cf更好的解釋語義。

LMF PCA

模型的劃分

生成與判別

todo

標註問題

NLP序列標註

本質上是對線性序列中每一個元素根據上下文內容進行分類。

過程是對於一個一維線性輸入序列(詞語序列),每一個元素打上標籤集合中的某個標籤。

常見應用:分詞,詞性標註,命名實體識別。

詞性標註

如何使用隱馬爾可夫模型進行詞性標註建模:

    狀態集合:
        詞性。

    狀態轉移機率矩陣:
        詞性轉移矩陣,(舉例,動詞後面是名詞的機率)。

image.png

觀測生成機率矩陣:
        某個詞性的條件下是某個詞的機率(舉例,P(like|N)=0.012)。

image.png

觀測序列:
        也就是咱們要進行詞性標註問題的已知句子。(舉例, Flies like a flower)
    
    解碼問題:
        已知觀測序列,求最合理的隱狀態序列。
        
        觀測序列是原始句子的一組詞組成的有序列表,
        
        隱狀態序列是原始句子的每一個詞對應的詞性。
    
    說明:
        從語料庫中訓練獲得的詞性轉移機率矩陣和詞語生成機率矩陣

集成學習

前向分步算法

(forward stagewise algorithm)

是boost算法中用的方法。

加法模型(假設函數):

image.png

弱分類器線性組合。
    b表示基分類器,
    beta基分類器的參數。

損失函數:

image.png

此問題比較複雜,
    咱們分隔成一系列的子問題求解。
    從前日後,每一步學習一個基函數及其係數

梯度提高樹GBTD

核心思想概述

上一輪的強學習器(模型):

image.png

上一輪的損失函數:

image.png

樣本標籤與強學習器的差值

本輪的弱學習器:

image.png

本輪的損失函數:

image.png

與上一輪損失函數不一樣的是,強學習器增長了本輪的弱學習器。

模型損失函數的負梯度

todo

殘差與損失函數負梯度近似

損失函數:

image.png

T表示本輪的殘差。
    
    此處的m表示第m個模型,與前一節中的t對應。
    
    f做爲自變量。


損失函數的參數更新:

image.png

弱分類器定義:

image.png

大概推出負梯度是殘差的近似。

參考
一文讀懂機器學習機率圖模型
條件機率分佈與機器學習html

PageRank算法原理與實現
淺入淺出:PageRank算法
(九)通俗易懂理解——TF-IDF與TextRank (pageRank vs TextRank)
LDA(Latent Dirichlet Allocation)主題模型
LDA數學八卦
協同過濾算法與基於內容推薦算法的不一樣
推薦系統 - 4 - LMF基於隱變量的推薦、PCA(主成分分析) 實現
邏輯迴歸原理小結
詳解機率圖模型——概述
機率圖模型簡單介紹
機率論的鏈式法則
PRML讀書會第八章 Graphical Models(圖的聯合機率分解)
條件隨機場入門(一) 機率無向圖模型(全局局部獨立性)
圖論之極大團(maximal clique)
天然語言處理之序列標註問題
天然語言處理NLP(4)——序列標註a:隱馬爾科夫模型(HMM)
梯度提高樹(GBDT)原理小結(劉建平Pinard)
前向分步算法
GBDT的負梯度爲何近似於提高樹的殘差
利用 SVD 實現協同過濾推薦算法
SVD++推薦系統
相關文章
相關標籤/搜索