《數學之美》提到搜尋引擎用餘弦定理確定查詢和網頁的相關性,搜尋引擎有如此多的網頁,怎麼能在這麼短的時間內做到計算每個網頁的余弦值並降序顯示的?(還不考慮PageRank什麼的)

時間 2021-06-03 00:03:48

1樓:子翎

剛看數學之美沒多久,只能試著回答一下,答得太傻的話求莫拍。書中提到的余弦值演算法個人認為是相對比較簡單的Vector Space Model(VSM),從理論上符合向量相似度的計算模型,但是因為特徵向量的維度太大,VSM在實際使用中計算速度很慢,所以要在損失盡量小的精確度的前提下對於資料進行降維。一種我接觸到的簡化模型是Latent Semantic Indexing Model(LSI),利用奇異值分解(Singular Value Decomposition(SVD))的方法,將向量矩陣轉換為M=UΣ V^的模式,之後保留對角矩陣Σ的K個最大元素,並對應Σ中保留的元素所在的位置,選取U和V中相應的列/行保留。

然後將原來的特徵矩陣(A)和待搜尋的語句(Query(q))以Σ'^-1 U'^T A和Σ'^-1 U'^T q 的形式轉化到降維後的空間裡,並在這個降維到K的空間內進行余弦計算。通過調整下降到的維度K,可以在計算成本和精確度之間達到乙個平衡。

具體可參看LSI和SVD的wiki。

除了使用一些特殊的模型降維之外,在計算本身的過程中,由於網頁的特徵量不隨查詢語句而變動,所以在網頁不變動的前提下,對於特徵矩陣本身進行計算這部分工作不是重複性的,可以提前計算好並儲存起來。同時,去除and, the , some之類的stop word也可以降低計算量並提高準確性。而且個人覺得常用搜尋語句應該都會預存結果吧。。

最後這點是猜的

搜尋引擎怎樣建立索引?

大灰狼 索引在搜尋引擎中泛指用於檢索的資料庫檔案總稱。每一次檢索資料均為訪問和讀取索引檔案,每一次更新資料則是對索引檔案的修改。主要的三種建立索引的方法。此方法在記憶體裡完成索引的建立過程。要求記憶體要足夠大。第一遍 收集一些全域性的統計資訊。包括文件集合包含的文件個數N,文件集合內所包含的不同單詞...

知名學術搜尋引擎有哪些?

計算機領域 dblp Proquest Computer Science Google scholar ACM 的資料庫 待更 學術搜尋的話我主要是用Google學術 別問我怎麼上去 https www.iproxier.com promote zhihu 只能幫你到這裡了 陳童 補充一下楊逍,生物...

程式設計師該如何使用搜尋引擎?

忘川觀鶴飲 高薪的IT作業是很多年輕人的作業願望,但是,一旦身入其間卻發覺沒有想像中那麼誇姣。被稱為IT藍領的程式設計員,作業強度大,像個編碼 機器 技能更新換代快,飯碗不穩定。跟著年齡的增加,IT程式設計員該何去何從。做IT的搞不好就被挨踢。你提這個問題就了解你是才搞程式沒多久。等你真正進入這個作...