機器學習(十九)——PageRank演算法, KNN, loss function詳解
PageRank演算法
概述
在PageRank提出之前,已經有研究者提出利用網頁的入鏈數量來進行連結分析計算,這種入鏈方法假設一個網頁的入鏈越多,則該網頁越重要。早期的很多搜尋引擎也採納了入鏈數量作為連結分析方法,對於搜尋引擎效果提升也有較明顯的效果。 PageRank除了考慮到入鏈數量的影響,還參考了網頁質量因素,兩者相結合獲得了更好的網頁重要性評價標準。
對於某個網際網路網頁A來說,該網頁PageRank的計算基於以下兩個基本假設:
數量假設:在Web圖模型中,如果一個頁面節點接收到的其他網頁指向的入鏈數量越多,那麼這個頁面越重要。
質量假設:指向頁面A的入鏈質量不同,質量高的頁面會通過連結向其他頁面傳遞更多的權重。所以越是質量高的頁面指向頁面A,則頁面A越重要。
利用以上兩個假設,PageRank演算法剛開始賦予每個網頁相同的重要性得分,通過迭代遞迴計算來更新每個頁面節點的PageRank得分,直到得分穩定為止。 PageRank計算得出的結果是網頁的重要性評價,這和使用者輸入的查詢是沒有任何關係的,即演算法是主題無關的。
優點:
這是一個與查詢無關的靜態演算法,所有網頁的PageRank值通過離線計算獲得;有效減少線上查詢時的計算量,極大降低了查詢響應時間。
缺點:
1)人們的查詢具有主題特徵,PageRank忽略了主題相關性,導致結果的相關性和主題性降低
2)舊的頁面等級會比新頁面高。因為即使是非常好的新頁面也不會有很多上游連結,除非它是某個站點的子站點。
馬爾可夫鏈
Markov鏈的基本定義參見《機器學習(十六)》。
這裡補充一些定義:
定義1:設C為狀態空間的一個子集,如果從C內任一狀態i不能到C外的任何狀態,則稱C為閉集。除了整個狀態空間之外,沒有別的閉集的Markov鏈被稱為不可約的。
如果用狀態轉移圖表示Markov鏈的話,上面的定義表徵了Markov鏈的連通性。
定義2:如果有正整數d,只有當
這個定義表徵了Markov鏈各狀態的獨立性
定義3:
其中,
上式表示由i出發,首次到達j的概率,也叫首中概率。
相應的還有最終概率:
定義4:
如果
令
如果
常返態表徵Markov鏈的極限分佈。顯然如果長期來看,狀態i“入不敷出”的話,則其最終的極限概率為0。
根據上面的定義,還可得到Markov鏈的三個推論:
推論1:有限狀態的不可約非週期Markov鏈必存在平穩分佈。
推論2:若不可約Markov鏈的所有狀態是非常返或零常返的,則不存在平穩分佈。
推論3:若
簡易推導
上圖是一個Web圖模型的示例。其中的節點表示網頁,箭頭表示網頁連結。因此,從圖論的角度來說,這是一個有向圖。而從隨機過程的角度,這也可以看做是一個Markov鏈。
上圖中,A有兩個入鏈B和C,則:
然而圖中除了C之外,B和D都不止有一條出鏈,所以上面的計算式並不準確:
一般化,即:
其中,L表示外鏈個數。
更一般化,可得:
這裡有兩種異常情況需要處理。
1.網際網路中不乏一些沒有出鏈的網頁,為了滿足Markov鏈的收斂性,設定其對所有的網頁(包括它自己)都有出鏈。
2.網際網路中一個網頁只有對自己的出鏈,或者幾個網頁的出鍊形成一個迴圈圈。那麼在不斷地迭代過程中,這一個或幾個網頁的PR值將只增不減,顯然不合理。
對於這種情況,我們假定有一個確定的概率
由Markov鏈的收斂性可知,無論每個網頁的PR初始值如何設定,都不影響最終的PR值。
在實際計算中,由於網頁數量眾多,而其中的連結關係相對較少,因此這個計算過程,實際上是一個巨維稀疏矩陣的凸優化問題,此處不再贅述。
TextRank
TextRank演算法是PageRank演算法在NLP領域的擴充套件,被廣泛用於自動摘要和提取關鍵詞。
將原文字拆分為句子,在每個句子中過濾掉停用詞(可選),並只保留指定詞性的單詞(可選)。由此可以得到句子的集合和單詞的集合。
每個單詞作為TextRank中的一個節點。假設一個句子依次由下面的單片語成:
對該圖模型應用PageRank演算法,可得:
相關推薦
機器學習(十九)——PageRank演算法, KNN, loss function詳解
PageRank演算法 概述 在PageRank提出之前,已經有研究者提出利用網頁的入鏈數量來進行連結分析計算,這種入鏈方法假設一個網頁的入鏈越多,則該網頁越重要。早期的很多搜尋引擎也採納了入鏈數量作為連結分析方法,對於搜尋引擎效果提升也有較明顯
機器學習(十九)——拉普拉斯光順(Laplace smoothing)
我們已經描述過的樸素貝葉斯演算法能夠很好地解決許多問題,但是有一個簡單的改變使得它更好地工作,特別是對於文字分類。讓我們簡單地討論演算法在當前形式下的問題,然後討論如何修復它。考慮垃圾郵件/電子郵件分類,讓我們假設在完成CS229並完成了對專案的出色工作之後,您決定在2003
機器學習之python學習(十九)
今天來學習python中的檔案操作這是很關鍵的, 這次先學習檔案的讀寫,需要注意的是檔案的許可權的問題。 總結如下最常用的許可權: 許可權 數量 r 開啟只讀檔案,該檔案必須存在。
機器學習 (十五) 關聯分析之Apriori演算法
前言 目前隨著資料量迅速增多,從海量資料中尋找有價值的資訊帶來的成本也在不斷增加,傳統的搜尋資料方式已經不能滿足我們的需要,我們先來通過一個演算法看一下演算法時間複雜度快慢帶來的影響,通過計算耗時我們會有個感性
機器學習 (十二)讓你輕鬆理解K-means 聚類演算法
前言 你還記得菜市場賣菜的嗎?書店賣書的或者是平時去超市買東西時的物品,它們是不是都根據相似性擺放在一起了呢,飲料、啤酒、零食分佈在各自區域,像這樣各級事物的相似特點或特性組織在一起的方法,在機器學習裡面即成為
吳恩達機器學習(十一)K-means(無監督學習、聚類演算法)
目錄 0. 前言 學習完吳恩達老師機器學習課程的無監督學習,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心
吳恩達機器學習(十四)推薦系統(基於梯度下降的協同過濾演算法)
目錄 0. 前言 學習完吳恩達老師機器學習課程的推薦系統,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~ 0. 前言 在推薦系統中,主要有兩種方法,基於內容的推薦
演算法工程師修仙之路:吳恩達機器學習(十五)
吳恩達機器學習筆記及作業程式碼實現中文版 第十章 支援向量機 大間隔分類器的數學原理 假設我有兩個二維向量 u
演算法工程師修仙之路:吳恩達機器學習(十四)
吳恩達機器學習筆記及作業程式碼實現中文版 第十章 支援向量機 直觀上對大間隔的理解 人們有時將支援向量機看作是大間距分類器。 支援向量機模型的代價函式,在左邊這裡我畫出了關於 z 的代價函式
演算法工程師修仙之路:吳恩達機器學習(十二)
吳恩達機器學習筆記及作業程式碼實現中文版 第九章 機器學習系統設計 確定執行的優先順序 以一個垃圾郵件分類器演算法為例進行討論。 為了解決這樣一個問題,我們首先要做的決定是如何選擇並表達特徵向量
演算法工程師修仙之路:吳恩達機器學習(十一)
吳恩達機器學習筆記及作業程式碼實現中文版 第八章 應用機器學習的建議 決定下一步做什麼 獲得更多的訓練例項——通常是有效的, 但代價較大, 下面的方法也可能有效, 可考慮先採用下面的幾種方法: 嘗試減少特徵的數量; 嘗試獲得更多的特徵
機器學習(十四)——協同過濾的ALS演算法(2)、主成分分析
Kendall秩相關係數(Kendall rank correlation coefficient) 對於秩變數對(xi,yi),(xj,yj): (xi−xj)(yi−yj)⎧⎩⎨>0,=0,<0,concordantneither con
C++語言學習(十九)——C++類型識別
c++類 面向 字節 檢查 case include 指向 指針和引用 peid C++語言學習(十九)——C++類型識別 一、C++類型識別簡介 1、C++類型識別簡介 C++是靜態類型語言,其數據類型是在編譯期就確定的,不能在運行時更改。C++語言中,靜態類型是對象自身
GO語言學習(十九)Go 錯誤處理
錯誤處理 math println 接口 class int 處理機 nil sprintf Go 錯誤處理 Go 語言通過內置的錯誤接口提供了非常簡單的錯誤處理機制。 error類型是一個接口類型,這是它的定義: type error interface {
深度學習(十九)基於空間金字塔池化的卷積神經網路物體檢測
原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一、相關理論 本篇博文主要講解大神何凱明2014年的paper:《Spatial Pyramid Pooling in Dee
吳恩達機器學習(十六)機器學習流水線、上限分析
目錄 0. 前言 1. 流水線 2. 上限分析(Ceiling analysis) 學習完吳恩達老師機器學習課程的照片OCR,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注
JMeter學習(十九)JMeter測試MongoDB
JMeter測試MongoDB效能有兩種方式,一種是利用JMeter直接進行測試MongoDB,還有一種是寫Java程式碼方式測試MongoDB效能。 第一種方法 1.編寫Java程式碼,內容如下: package com.test.mongodb; im
機器學習 (十六)電商O2O優惠券使用預測-2
介紹 這篇文章是想繼續總結一遍優惠券預測,寫寫感受並進行一個記錄總結,零零散散以作為記錄整理之用。 本篇是選了三點本人覺得專案中重要的寫了一下,其它內容暫時略過 第一部分:資料清洗資料分析程式碼
機器學習 (十七)kaggle競賽之泰坦尼克號專案實戰-2
導航 想寫這篇部落格的由衷是做完幾個專案,有時對於圖的畫法和模型融合演算法原理理解還很膚淺,特此加深一下印象。 內容概覽 圖 pandas、matplotlib、seaborn 餅圖 直方圖
機器學習 (十四)輕鬆理解模型評價指標
篇首語 相信大家都知道下面的圖片是啥意思,每個無論在啥公司、無論哪個行業都有自己的KPI評價指標,公司會根據公司情況設定公司戰略KPI、部門KPI、以及每個人的指標,對於員工也是比較關心自己的KPI因為關係著你