『壹』 百度搜索引擎的演算法是怎樣的
衡量網頁質量的維度
網路搜索引擎在衡量網頁質量時,會從以下三個維度綜合考慮給出一個質量打分。下面會一一介紹這些影響網頁質量判斷的維度特徵:
• 內容質量
• 瀏覽體驗
• 可訪問性
一個訪問流暢,內容質量高且瀏覽體驗好的網頁具有較高的質量;反之,任何一個維度出現問題,都會影響網頁的整體質量。下面我們具體介紹下這三個維度。
衡量網頁質量的維度——內容質量
網頁主體內容是網頁的價值所在,是滿足用戶需求的前提基礎。網路搜索引擎評價網頁內容質量主要看其主體內容的好壞,以及主體內容是否可以讓用戶滿意。 不同類型網頁的主體內容不同,網路搜索引擎判斷不同網頁的內容價值時,需要關注的點也有區別,如:
• 首頁:導航鏈接和推薦內容是否清晰、有效。
• 文章頁:能否提供清晰完整的內容,圖文並茂更佳。
• 商品頁:是否提供了完整真實的商品信息和有效的購買入口。
• 問答頁:是否提供了有參考價值的答案。
• 下載頁:是否提供下載入口,是否有許可權限制,資源是否有效。
• 文檔頁:是否可供用戶閱讀,是否有許可權限制。
• 搜索結果頁:搜索出來的結果是否與標題相關。
網路搜索引擎考量網頁內容質量的維度非常多,最為重要的是:成本;內容完整;信息真實有效以及安全。下面我們通過舉例來感受一下網路搜索引擎是如何對網頁的內容質量進行分類的,請站長對比自己站點的頁面,站在搜索引擎和用戶的角度為自己打分:
1、內容質量好:
網路搜索引擎認為內容質量好的網頁,花費了較多時間和精力編輯,傾注了編者的經驗和專業知識;內容清晰、完整且豐富;資源有效且優質;信息真實有效;安全無毒;不含任何作弊行為和意圖,對用戶有較強的正收益。對這部分網頁,網路搜索引擎會提高其展現在用戶面前的機率。例如:
• 專業醫療機構發布的內容豐富的醫療專題頁面;
• 資深工程師發布的完整解決某個技術問題的專業文章;
• 專業視頻網站上,播放清晰流暢的正版電影或影視全集頁面;
• 知名B2C網站上,一個完整有效的商品購買頁;
• 權威新聞站原創或經過編輯整理的熱點新聞報道;
• 經過網友認真編輯,內容豐富的詞條;
• 問答網站內,回答的內容可以完美解決提問者的問題。
實例參考:
示例
內容質量
說明
case 3.1.1-1
好
專業醫療網站發布的豐富醫療專題頁面
case 3.1.1-2
好
資深工程師發布的完整解決某個技術問題的專業文章
case 3.1.1-3
好
專業視頻網站上,播放清晰流暢的正版影視全集頁面
case 3.1.1-4
好
京東的一個完整有效的商品購買頁
case 3.1.1-5
好
權威新聞站原創的熱點新聞的報道
case 3.1.1-6
好
經過網友認真編輯,內容豐富的網路詞條
case3.1.1-7
好
網路知道上,完美解決用戶問題的問答頁
2、內容質量中:
內容質量中等的網頁往往能滿足用戶需求,但未花費較多時間和精力進行製作編輯,不能體現出編者的經驗和專業知識;內容完整但並不豐富;資源有效但質量欠佳;信息雖真實有效但屬採集得來;安全無毒;不含作弊行為和意圖。在互聯網中,中等質量網頁其實是一個比較大的數量集合,種類面貌也繁雜多樣,網路搜索引擎在評價這類網頁時往往還要考慮其它非常多因素。在這里,我們僅部分舉例來讓各位感受一下:
• 論壇類網站里一個普通的帖子;
• 一個普通的問答網頁;
• 沒有進行任何編輯,直接轉載其它網站的新聞;
• 無版權信息的普通電影播放頁
• 採集知名小說網站的盜版小說頁。
實例參考:
示例
內容質量
說明
case 3.1.2-1
中
網易直接轉載了中國新聞網的一篇新聞。
case 3.1.2-2
中
文庫上網友上傳的「國慶放假安排」新聞
case 3.1.2-3
中
採集起點小說網的盜版小說站
case 3.1.2-4
中
網路貼吧里一個普通的帖子
3、內容質量差:
網路搜索引擎認為主體內容信息量較少,或無有效信息、信息失效過期的都屬於內容質量差網頁,對用戶沒有什麼實質性的幫助,應該減少其展現的機會。同時,如果一個網站內該類網頁的佔比過大,也會影響網路搜索引擎對站點的評級,尤其是UGC網站、電商網站、黃頁網站要尤其重視對過期、失效網頁的管理。例如:
• 已下架的商品頁,或已過期的團購頁;
• 已過有效期的招聘、交易頁面;
• 資源已失效,如視頻已刪除、軟體下載後無法使用等。
4、沒有內容質量可言:
沒有內容質量可言的網頁指那些製作成本很低,粗製濫造;從別處採集來的內容未經最起碼的編輯整理即放置線上;掛木馬等病毒;含有作弊行為或意圖;完全不能滿足用戶需求,甚至含有欺騙內容的網頁。例如:
• 內容空短,有很少量的內容,卻不能支撐頁面的主要意圖;
• 問答頁有問無答,或回答完全不能解決問題;
• 站內搜索結果頁,但沒有給出相關信息
除上述網頁外,欺騙用戶和搜索引擎的網頁在無內容質量可言集合里占很高比例。網路搜索引擎對作弊網頁的定義是:不以滿足用戶需求為目的,通過不正當手段欺騙用戶和搜索引擎從而獲利的網頁。目前互聯網上這部分網頁還屬少數,但作弊網頁的價值是負向的,對用戶的傷害非常大,對這類網頁,搜索引擎持堅決打擊態度。
衡量網頁質量的維度——瀏覽體驗
不同質量的網頁帶給用戶的瀏覽體驗會有很大差距,一個優質的網頁給用戶的瀏覽體驗應該是正向的。用戶希望看到干凈、易閱讀的網頁,排版混亂、廣告過多會影響用戶對網頁主體內容的獲取。在網路搜索引擎網頁質量體系中,用戶對網頁主體內容的獲取成本與瀏覽體驗呈反比,即獲取成本越高,瀏覽體驗越低。面對內容質量相近的網頁,瀏覽體驗佳者更容易獲得更高的排位,而對於瀏覽體驗差的網頁,網路搜索引擎會視情況降低其展現的機率甚至拒絕收錄。
影響用戶瀏覽體驗好壞的因素很多,目前網路搜索引擎主要從內容排版、廣告影響兩方面對網頁進行考量:
內容排版:用戶進入網頁第一眼看到的就是內容排版,排版決定了用戶對網頁的第一印象,也決定了用戶對內容獲取的成本。
廣告影響:網路搜索引擎理解網站的生存發展需要資金支持,對網頁上放置正當廣告持支持態度。網頁應該以滿足用戶需求為主旨,最佳狀態即「主體內容與廣告一起滿足用戶需求,內容為主,廣告為輔」,而不應讓廣告成為網頁主體。
下面我們通過舉例來感受一下網路搜索引擎是如何對網頁的瀏覽體驗進行分類的,站長可以據此對比檢驗自己站點的瀏覽體驗如何:
1、瀏覽體驗好:
頁面布局合理,用戶獲取主體內容成本低,一般具有以下特徵:
• 排版合理,版式美觀,易於閱讀和瀏覽;
• 用戶需要的內容占據網頁最重要位置;
• 能夠通過頁面標簽或頁面布局十分清楚地區分出哪些是廣告;
• 廣告不搶佔主體內容位置,不阻礙用戶對主要內容的獲取;
實例參考:
示例
瀏覽體驗
說明
case 3.2.1-1
好
招聘、房產等網站首頁也有很多廣告,但都是招聘相關的,瀏覽體驗是ok的。
case 3.2.1-2
好
文章頁,頁面布局合理,無廣告,排版好,結構合理
case 3.2.1-3
好
游戲首頁,排版美觀,布局合理,無廣告,瀏覽體驗優
2、瀏覽體驗差:
頁面布局和廣告放置影響了用戶對主體內容的獲取,提高了用戶獲取信息的成本,令用戶反感。包括但不僅限於以下情況:
• 正文內容不換行或不分段,用戶閱讀困難;
• 字體和背景顏色相近,內容辨別困難;
• 頁面布局不合理,網頁首屏看不到任何有價值的主體內容;
• 廣告遮擋主體內容;或者在通用解析度下,首屏都是廣告,看不到主體內容;
• 彈窗廣告過多;
• 影響閱讀的浮動廣告過多
• 點擊鏈接時,出現預期之外的彈窗;
• 廣告與內容混淆,不易區分;
衡量網頁質量的維度——可訪問性
用戶希望快速地從搜索引擎獲取到需要的信息,網路搜索引擎盡可能為用戶提供能一次性直接獲取所有信息的網頁結果。網路搜索引擎認為不能直接獲取到主體內容的網頁對用戶是不友好的,會視情況調整其展現機率。
網路搜索引擎會從正常打開、許可權限制、有效性三方面判斷網頁的可訪問性,對於可以正常訪問的網頁,可以參與正常排序;對於有許可權限制的網頁,再通過其它維度對其進行觀察;對於失效網頁,會降權其展現機制甚至從資料庫中刪除。
1、可正常訪問的網頁
無許可權限制,能直接訪問所有主體內容的網頁。
2、有許可權限制的網頁
此類網頁分為兩種:打開許可權和資源獲取許可權
1)打開許可權:指打開網頁都需要登錄許可權,沒有許可權完全無法看到具體內容,普通用戶無法獲取或獲取成本很高,網路搜索引擎會降低其展現機率。不包括以登錄為主要功能的網頁。
2)資源獲取許可權:指獲取網頁主要內容,如文檔、軟體、視頻等,需要許可權或者需要安裝插件才能獲得完整內容。此時會分三種情況:
• 提供優質、正版內容的網站,由於內容建設成本很高,盡管查看全文或下載時需要許可權或安裝插件,但屬於用戶預期之內,網路搜索引擎也不認為許可權行為對用戶造成傷害,給予與正常可訪問頁面相同的對待。
• 對於一些非優質、非正版的資源,來自於用戶轉載甚至機器採集,本身成本較低,內容也不獨特,用戶獲取資源還有許可權限制——需要用戶注冊登錄或者付費查看,網路搜索引擎會根據具體情況決定是否調整其展現。
• 還有一些視頻、下載資源頁,也許自身資源質量並不差,但需要安裝非常冷門的插件才能正常訪問,比如要求安裝「xx大片播放器」,網路搜索引擎會懷疑其有惡意傾向。
實例參考:
示例
可訪問性
說明
case 3.2-1
好
CNKI上的一篇論文,收費才能下載,但有版權,瀏覽體驗好
case 3.2-2
好
優酷上一部新電影,需要付費才能觀看,瀏覽體驗好。
case 3.2-3
中
內容是來,但是需要登錄才能看更多
case 3.2-4
差
入黨申請書,本身就是轉載的,網上到處都是,但這個頁面仍然要求收費才能下載。
3、失效網頁
往往指死鏈和主體資源失效的網頁。網路搜索引擎認為這部分網頁無法提供有價值信息,如果站點中此類網頁過多,也會影響網路搜索引擎對其的收錄和評級。建議站長對此類網頁進行相應設置,並及時登錄網路站長平台,使用死鏈提交工具告知網路搜索引擎。
失效網頁包括但不僅限於:
• 404、403、503等網頁;
• 程序代碼報錯網頁;
• 打開後提示內容被刪除,或因內容已不存在跳轉到首頁的網頁;
• 被刪除內容的論壇帖子,被刪除的視頻頁面(多出現在UGC站點)
具體請參閱《網路搜索引擎網頁質量白皮書》,望採納!
『貳』 海量數據排序,內存足夠大,用哪種排序演算法好為什麼
海量數據排序,內存足夠大,那麼,一般來說用歸並排序比較好,因為他的讀取次數會比較少,但是如果,內存空間不足,就自然要減少次數了,所以也可以用快速排序。
『叄』 雲計算的海量數據挖掘工作是怎樣實現的
雲計算屬於新興技術領域,群英雲計算轉一篇關於問題的學術報告吧。對您應該有所幫助。
1引言
目前,人們正處於一個「無處不網、無時不網,人人上網、時時在線」的時代,圖靈獎獲得者吉姆·格雷(Jim Gray)認為,網路環境下每18個月產生的數據量等於過去幾千年的數據量之和。目前互聯網的數據具有海量增長、用戶廣泛、動態變化等特徵。2010年,QQ同時在線的用戶超過1億人,淘寶一年交易次數比上年增長150%,視頻服務Animoto在3天內通過Amazon將其服務能力迅速擴展至75萬用戶。
數據挖掘能夠發現隱含在大規模數據中的知識,提高信息服務的質量。如伊朗事件中twitter快速傳播假消息的識別、Amazon和淘寶網中商品關聯關系分析,以及優酷網中視頻個性化推薦等。海量數據挖掘在國家安全、國民經濟和現代服務業中具有廣泛應用,有助於提升網路環境下信息服務的質量,實現以人為本的信息服務。
從數據挖掘技術的發展歷史看,隨著互聯網的蓬勃發展,數據的規模越來越大,從KB級發展到TB甚至PB級海量數據;數據挖掘的對象也變得越來越復雜,從資料庫、到多媒體數據和復雜社會網路;數據挖掘的需求也從分類、聚類和關聯到復雜的演化和預測分析;挖掘過程中的交互方式從單機的人機交互發展到現在社會網路群體的交互。這種發展給數據挖掘帶來了巨大的挑戰:對於網路環境下產生的TB級和PB級的復雜數據,需要有高效的海量數據挖掘演算法;網路環境下大眾的廣泛參與,需要在數據挖掘演算法中能夠融入群體智慧;同時社會網路的迅速發展使得信息服務的個性化成為必然,要求能夠滿足即時組合的個性化挖掘服務。
雲計算是一種基於互聯網的、大眾參與的計算模式,其計算資源(包括計算能力、存儲能力、交互能力等)是動態、可伸縮、被虛擬化的,並以服務的方式提供 [1] 。具體表現在:雲計算的動態和可伸縮的計算能力為高效海量數據挖掘帶來可能性;雲計算環境下大眾參與的群體智能為研究集群體智慧的新的數據挖掘方法研究提供了環境;雲計算的服務化特徵使面向大眾的數據挖掘成為可能。同時,雲計算發展也離不開數據挖掘的支持,以搜索為例,基於雲計算的搜索包括網頁存儲、搜索處理和前端交互三大部分。數據挖掘在這幾部分中都有廣泛應用,例如網頁存儲中網頁去重、搜索處理中網頁排序和前端交互中的查詢建議,其中每部分都需要數據挖掘技術的支持。
因此,雲計算為海量和復雜數據對象的數據挖掘提供了基礎設施,為網路環境下面向大眾的數據挖掘服務帶來了機遇,同時也為數據挖掘研究提出了新的挑戰性課題。
下面將對並行編程模型、基於並行編程模型高效海量數據挖掘演算法,以及基於雲計算的海量數據挖掘服務相關研究進行綜述。
2並行編程模型相關方法
為了使用戶能夠通過簡單的開發來方便地達到並行計算的效果,研究人員提出了一系列的並行計算模型。並行計算模型在用戶需求和底層的硬體系統之間搭建橋梁使得並行演算法的表示變得更加直觀,對大規模數據的處理更加便捷。根據用戶使用硬體環境的不同,並行編程模型又可以分為在多核機器、GPU計算、大型計算機以及計算機集群上的多種類型。目前比較常用的並行編程介面和模型包括:
pThread介面[2]。pThread是在類Unix系統上進行多線程編程的通用API,為用戶提供了一系列對線程進行創建、管理和各類操作的函數,使用戶能夠方便地編寫多線程程序。
MPI模型[3]。MPI的全稱為消息傳遞介面(Message Passing Interface),它為用戶提供了一系列的介面,使用戶利用消息傳遞的方式來建立進程間的通信機制,從而方便地對各種演算法進行並行實現。
MapRece模型[4]。MapRece模型是由谷歌公司提出的並行編程框架,它首先為用戶提供分布式的文件系統,使用戶能方便地處理大規模數據;然後將所有的程序運算抽象為Map和Rece兩個基本操作,在Map階段模型將問題分解為更小規模的問題,並在集群的不同節點上執行,在Rece階段將結果歸並匯總。MapRece是一個簡單,但是非常有效的並行編程模型。
Pregel模型[5]。Pregel同樣是由谷歌公司提出的專門針對圖演算法的編程模型,能夠為大規模數據的圖演算法提供並行支持。一個典型的Pregel計算過程將在圖上進行一系列的超級步驟(SuperSteps),在每個超級步驟中,所有頂點的計算都並行地執行用戶定義的同一個函數,並通過一個「投票」機制來決定程序是否停止。
CUDA模型①。CUDA是由NVIDIA公司提出的一個基於GPU的並行計算模型。由於GPU在設計需求上與普通CPU不同,GPU通常被設計為能較慢地執行許多並發的線程,而不是較快的連續執行多個線程,這使得GPU在並行計算上有先天的優勢。CUDA為用戶提供了利用GPU計算的各種介面,使程序員能夠像在普通電腦上進行CPU編程那樣進行GPU程序的編寫。
此外還有OpenMP、PVM、OpenCL等各種並行編程模型和方法。這些並行編程和方法一般都提供了主流編程語言的實現,從而使得用戶能根據自身編程習慣來選用。
另一方面,隨著雲計算的不斷推廣,還出現了各種商用的並行計算/雲計算平台,為用戶提供並行計算服務。這其中比較著名的包括微軟的Azure平台、Amazon公司的EC2平台、IBM公司的藍雲平台、谷歌公司的Google App Engine等。各大IT公司也紛紛開發自己的並行計算模型/框架作為自身技術服務的基本平台,這使得並行計算技術得到了更加快速的發展。
3基於並行編程模型高效海量數據挖掘演算法研究
為了實現海量數據上的數據挖掘,大量分布式並行數據挖掘演算法被提出。Bhari et al[6]整理了一個十分詳盡的並行數據挖掘演算法文獻目錄,包含了關聯規則學習、分類、聚類、流數據挖掘四大類分布式數據挖掘演算法,同時還包括分布式系統、隱私保護等相關的研究工作。
MapRece並行編程模型具有強大的處理大規模數據的能力,因而是海量數據挖掘的理想編程平台。數據挖掘演算法通常需要遍歷訓練數據獲得相關的統計信息,用於求解或優化模型參數。在大規模數據上進行頻繁的數據訪問需要耗費大量運算時間。為了提高演算法效率,斯坦福大學Chu et al[7]提出了一種適用於大量機器學習演算法的通用並行編程方法。通過對經典的機器學習演算法進行分析可以發現,演算法學習過程中的運算都能轉化為若干在訓練數據集上的求和操作;求和操作可以獨立地在不同數據子集上進行,因此很容易在MapRece編程平台上實現並行化執行。將大規模的數據集分割為若乾子集分配給多個Mapper節點,在Mapper節點上分別執行各種求和操作得到中間結果,最後通過Rece節點將求和結果合並,實現學習演算法的並行執行。在該框架下,Chu et al實現了十種經典的數據挖掘演算法,包括線性回歸、樸素貝葉斯、神經網路、主成分分析和支持向量機等,相關成果在NIPS 2006會議上發表。
Ranger et al[8]提出了一個基於MapRece的應用程序編程介面Phoenix,支持多核和多處理器系統環境下的並行程序設計。Phoenix能夠進行緩存管理、錯誤恢復和並發管理。他們使用Phoenix實現了K-Means、主成分分析和線性回歸三種數據挖掘演算法。
Gillick et al[9]對單程學習(Single-pass)、迭代學習(Iterative Learning)和基於查詢的學習(Query-based Learning)三類機器學習演算法在MapRece框架下的性能分別做了評測。他們對並行學習演算法涉及到的如何在計算節點之間的共享數據、如何處理分布式存儲數據等問題進行了研究。
Mahout①是APS(Apache Software Foundation)旗下的一個開源數據挖掘項目,通過使用Apache Hadoop庫,可以實現大規模數據上的並行數據挖掘,包括分類、聚類、頻繁模式挖掘、回歸、降維等演算法,目前已經發布了四個版本。
4基於雲計算的海量數據挖掘服務研究
雲計算除了給用戶提供通用的並行編程模型和大規模數據處理能力之外,另一個重要的特點是為用戶提供開放的計算服務平台。在數據挖掘方向,現在也有一系列的系統被開發出來,面向公眾提供數據挖掘服務雲計算平台。
Talia et al[10]提出可以從四個層次提供雲計算數據挖掘服務:底層為組成數據挖掘演算法的基本步驟;第二層為單獨的數據挖掘服務,例如分類、聚類等;第三層為分布式的數據挖掘模式,例如並行分類、聚合式機器學習等;第四層為之前三層元素構成的完整的數據挖掘應用。在此設計基礎上,他們設計了基於雲計算的數據挖掘開放服務框架,並開發了一系列的數據挖掘服務系統,例如Weka4WS、Knowledge Grid、Mobile Data Mining Services、Mining@home等,用戶可以利用圖形界面定義自己的數據挖掘工作流,然後在平台上執行。
PDMiner[11]是由中國科學院計算技術研究所開發的基於Hadoop的並行分布式數據挖掘平台,該系統現在已經用於中國移動通信企業TB級實際數據的挖掘。PDMiner提供了一系列並行挖掘演算法和ETL操作組件,開發的ETL演算法絕大多數達到了線性加速比,同時具有很好的容錯性。PDMiner的開放式架構可以使用戶將演算法組件經過簡單配置方便地封裝載入到系統中。
此外,商業智能領域的各大公司也提供面向企業的大規模數據挖掘服務,例如微策略、IBM、Oracle等公司都擁有自己的基於雲計算的數據挖掘服務平台。
5總結和展望
通過雲計算的海量數據存儲和分布計算,為雲計算環境下的海量數據挖掘提供了新方法和手段,有效解決了海量數據挖掘的分布存儲和高效計算問題。開展基於雲計算特點的數據挖掘方法的研究,可以為更多、更復雜的海量數據挖掘問題提供新的理論與支撐工具。而作為傳統數據挖掘向雲計算的延伸和豐富,基於雲計算的海量數據挖掘將推動互聯網先進技術成果服務於大眾,是促進信息資源的深度分享和可持續利用的新方法、新途徑。