購物網站的商品推薦演算法有哪些?
我看過京東、噹噹等網站的推薦感覺不是關聯規則做的哦,比如買過此商品的人,百分之多少還買過其他啥啥商品
歷史上,關聯規則是最先被想到的推薦方法,啤酒和尿布的例子大家應該耳熟,不過某次去中科大參加龍星課程,據老師講,當時IBM那幫人做關聯規則苦於沒有數據集,於是杜撰了一個數據集,結果跑出了啤酒和尿布這一奇葩,最後竟然大家都相信了。關聯規則最重要的就是發現共現關係(挖掘頻繁項目集),經典演算法有Apriori演算法、FP-GROWTH演算法。關聯規則的應用場景是大量的用戶購買了A之後還會接著購買了B和C,於是一旦發現用戶購買了A,系統就會給用戶推薦B和C。這個應用場景放在購物上是非常合適的,因為我們購物往往是根據當前的需求,也就是說用戶購物的興趣點是隨著時間在變化的。關聯規則可以給用戶推薦完全不相似的物品,比如購買了數碼相機,系統會推薦SD卡、數碼相機電池等,在推薦系統領域專業的術語叫做推薦結果的多樣性。計算複雜度是關聯規則挖掘最嚴重的缺點,隨著頻繁項目集大小的增加,挖掘的代價越來越高,尤其在數據集比較大的情況下,這就促使人們去尋找更加高效的方法。協同過濾方法是一大類方法的統稱,包括近鄰方法,降維方法等等,所謂協同過濾簡單來講就是要給用戶推薦和其相似的用戶購買過的物品。
大家很熟悉的基於物品的相同過濾方法就屬於近鄰方法,基於物品的相同過濾首先由Amazon(電子商務領域運用推薦系統的代表,據其某位前科學家在博客中披露,2006年,推薦系統對Amazon營業額的貢獻在35%左右)提出來,其基本思想是預先根據所有用戶的歷史偏好數據計算物品之間的相似性,然後把與用戶喜歡的物品相類似的物品推薦給用戶,舉個例子,物品a和c非常相似,因為喜歡a的用戶同時也喜歡c,而用戶A喜歡a,所以把c推薦給用戶A。和基於物品的協同過濾方法相對應的是基於用戶的協同過濾方法,其基本思想是如果用戶A喜歡物品a,用戶B喜歡物品a、b、c,用戶C喜歡a和c,那麼認為用戶A與用戶B和C相似,因為他們都喜歡a,而喜歡a的用戶同時也喜歡c,所以把c推薦給用戶A。該演算法用最近鄰居(nearest-neighbor)演算法找出一個用戶的鄰居集合,該集合的用戶和該用戶有相似的喜好,演算法根據鄰居的偏好對該用戶進行預測。
除了近鄰模型,降維模型也應用的非常普遍,具體的模型如Netflix比賽中Simon使用的由矩陣奇異值分解改造而來的隱因子模型(Netflix Update: Try This at Home),受限玻爾茲曼機模型等等,降維模型的共同特點就是要將數據使用更加抽象的低維特徵表示,從而能夠避免原始數據大量的干擾信息。談到降維模型,不得不說最近很火的深度學習,深度學習可以自動學習數據的抽象特徵,本人的碩士論文題目就是基於深度學習的個性化推薦系統,這裡就不多少說了。暫時就寫這麼多了,有時間補充上基於內容推薦、混合推薦、基於上下文推薦等。註:以下內容非原創,為本人2年前整理自網上多種來源,但來源當時未標記,時過境遷,也許推薦引擎不再是當初的模樣。——————我-是-分-隔-線,我是辛勤的搬運工,我是變態的整理俠——————————
與購物網站內部的搜索對應,購物網站一般還會有推薦引擎。因為在很多情況下,用戶其實並不明確自己的需要,或者他們的需求很難用簡單的關鍵字來表述。又或者他們需要更加符合他們個人口味和喜好的結果。最早將推薦引擎投入大規模使用的是亞馬遜,它採用了一種關聯推薦機制:當用戶購買了一本書之後,頁面上會出現這樣一個框:你可能對這幾本書也有興趣。
根據推薦引擎是否為不同的用戶推薦不同的數據可分為基於大眾行為的推薦引擎(千人一面)和個性化推薦引擎(類似千人千面),題主說的應該主要是個性化的推薦引擎。
a1. 根據大眾行為的推薦引擎,對每個用戶都給出同樣的推薦,這些推薦可以是靜態的由系統管理員人工設定的,或者基於系統所有用戶的反饋統計計算出的當下比較流行的物品。
a2.個性化推薦引擎,對不同的用戶,根據他們的口味和喜好給出更加精確的推薦,這時,系統需要了解需推薦內容和用戶的特質,或者基於社會化網路,通過找到與當前用戶相同喜好的用戶,實現推薦。
一、推薦引擎的工作原理
一般情況下,推薦引擎所需要的數據源包括:
要推薦物品或內容的元數據,例如關鍵字,基因描述等;
系統用戶的基本信息,例如性別,年齡等
用戶對物品或者信息的偏好,根據應用本身的不同,可能包括用戶對物品的評分,用戶查看物品的記錄,用戶的購買記錄等。
——其實這些用戶的偏好信息可以分為兩類:
顯式的用戶反饋:這類是用戶在網站上自然瀏覽或者使用網站以外,顯式的提供反饋信息,例如用戶對物品的評分,或者對物品的評論(UGC內容);隱式的用戶反饋:這類是用戶在使用網站是產生的數據,隱式的反應了用戶對物品的喜好,例如用戶購買了某物品,用戶查看了某物品的信息等等(行為內容)。顯式的用戶反饋能準確的反應用戶對物品的真實喜好,但需要用戶付出額外的代價,而隱式的用戶行為,通過一些分析和處理,也能反映用戶的喜好,只是數據不是很精確,有些行為的分析存在較大的噪音。但只要選擇正確的行為特徵,隱式的用戶反饋也能得到很好的效果,只是行為特徵的選擇可能在不同的應用中有很大的不同,例如在電子商務的網站上,購買行為其實就是一個能很好表現用戶喜好的隱式反饋。
二、個性化推薦引擎的分類
主要根據不同的數據源發現數據相關性的方法可以分為以下幾種:
1. 基於人口統計學的推薦(Demographic-based Recommendation)
根據系統用戶的基本信息發現用戶的相關程度區分【基於人的背景上的相似度】
好處是適合新用戶、不依賴物品本身數據,
缺點是粗糙且涉及一些敏感個人信息。
2. 基於內容的推薦(Content-based Recommendation)
根據推薦物品或內容的元數據,發現物品或者內容的相關性,【有點愛屋及烏的意思】
這是在推薦引擎出現之初應用最為廣泛的推薦機制,核心思想是根據推薦物品或內容的元數據,發現物品或者內容的相關性,然後基於用戶以往的喜好記錄,推薦給用戶相似的物品。
【根據物品的相關性和用戶的喜好記錄推薦相似物品】
即如甲喜歡金庸的武俠,而古龍的書和金庸的武俠像,那麼把古龍的書也推薦給甲。
這種基於內容的推薦機制的好處在於它能很好的建模用戶的口味,能提供更加精確的推薦。也很適用於新產品。
但它也存在以下幾個問題:
·需要對物品進行分析和建模,推薦的質量依賴於對物品模型的完整和全面程度(關鍵詞和標籤Tag被認為是描述物品元數據的一種簡單有效的方法)——需設定物品的關鍵詞和標籤化
·分析僅僅依賴於物品本身的特徵,沒有考慮人對物品的態度;
·因為需要基於用戶以往的喜好歷史做出推薦,所以對於新用戶有「冷啟動」的問題,
雖然這個方法有很多不足和問題,但他還是成功的應用在一些電影,音樂,圖書的社交站點,有些站點還請專業的人員對物品進行基因編碼。
3.基於協同過濾的推薦(Collaborative Filtering-based Recommendation)【有點志趣相投的意思】
根據用戶對物品或者信息的偏好,發現物品或者內容本身的相關性,或者是發現用戶的相關性,然後再基於這些關聯性進行推薦,這種被稱為基於協同過濾的推薦。
可以分為三個子類:基於用戶的推薦、基於商品的推薦和基於模型的推薦。
3.1基於用戶的協同過濾推薦(User-based Recommendation)
基於用戶的協同過濾推薦的基本原理是,根據所有用戶對物品或者信息的偏好,發現與當前用戶口味和偏好相似的「鄰居」用戶群,在一般的應用中是採用計算「K- 鄰居」的演算法;然後,基於這K 個鄰居的歷史偏好信息,為當前用戶進行推薦。【基於個體偏好而非背景上的人的相似度】
甲乙愛好相似(「鄰居」),且甲喜歡AB,乙喜歡ABC,那麼把C推薦給A(C可能和AB毫無關係)。
——與基於人口統計學的推薦的區別:基於人口統計學的機制只考慮用戶本身的特徵,而基於用戶的協同過濾機制可是在用戶的歷史偏好的數據上計算用戶的相似度,它的基本假設是,喜歡類似物品的用戶可能有相同或者相似的口味和偏好。
3.2基於商品的協同過濾推薦(Item-based Recommendation,又稱基於項目的)
基於商品的協同過濾推薦的基本原理也是類似的,只是說它使用所有用戶對物品或者信息的偏好,發現物品和物品之間的相似度,然後根據用戶的歷史偏好信息,將類似的物品推薦給用戶。【基於全體偏好發現物的相似度,再根據個體偏好推薦】
——與基於內容的推薦的區別:基於內容的推薦僅根據物的相似度,不考慮個體偏好。
即如:發現金庸和古龍的武俠比較相似,甲喜歡金庸和古龍的武俠,而乙喜歡金庸的武俠,那麼把古龍的武俠也推薦給乙(甲乙可能毫無關係)
——與機遇用戶的協同過濾推薦的對比:其實基於商品的協同過濾推薦機制是Amazon 在基於用戶的機制上改良的一種策略,因為在大部分的Web 站點中,物品的個數是遠遠小於用戶的數量的,而且物品的個數和相似度相對比較穩定,同時基於商品的機制比基於用戶的實時性更好一些。但如在一些新聞推薦系統則相反。
3.3基於模型的協同過濾推薦(Model-based Recommendation)
基於模型的協同過濾推薦就是基於樣本的用戶喜好信息,訓練一個推薦模型,然後根據實時的用戶喜好的信息進行預測,計算推薦。【降維建模,有點高大上的AI向】
基於用戶和基於商品的協同過濾推薦有一個大問題:它們太死了,就是說,它們能發現都喜歡同一樣東西的人,但卻忽略了愛好非常相似的潛在用戶組合。比如說你喜歡莫奈的睡蓮。那麼,在這個法國印象派大師畫的 250 幅睡蓮中,你最喜歡哪一幅?在一群喜歡莫奈的人當中,完全可能每個人喜歡的睡蓮都不相同,而基本的演算法就有可能識別不出這些人都有著共同的愛好。【基於屬性的表象而非內涵?】
此時需要降維(Dimensionality Reduction)的方法。我們來看看你愛吃的東西,以及如何把它跟其他一百萬人愛吃的東西做比較。你可以把這些信息用一個巨型矩陣表示出來,每一條豎線代表一樣食物,每個人愛吃什麼東西就自然形成了一行。在你的這一行上面或許會顯示你給了烤牛排 5 顆星、紅燒小排 4 星半、烤雞翅 2 顆星、凍豆腐卷 1 顆星、乳酪烤蘑菇 5 顆星、鹽水毛豆 4 顆星,等等。
然而,使用這個矩陣的推薦演算法並不關心你給哪種食物評了多少顆星。它想要了解的是你一般而言的喜好,這樣它可以將這個信息應用到更豐富多樣的食物上。比如說,基於你上面給出的信息,演算法可能會認為你喜歡牛肉、鹹的東西和烤制菜品,不喜歡雞肉和任何油炸的東西,不喜歡也不討厭蔬菜,依此類推【降維找到本質!】。你愛吃的食物所擁有的特點或者說維度,它的數量和符合你要求的食物的數量比起來要小得多——至多可能 50 或 100。通過查對這些維度,推薦演算法可以迅速決定你是否會喜歡一種新的食物(比方說鹽焗排骨),方法就是把這種食物的各項維度(鹹的、牛肉做的、不是雞肉、不是炒的、不是蔬菜、不是烤的)同你的資料進行比對。這種更為一般性的呈現使得推薦演算法能準確的發現有著相似但不同喜好的用戶。而且,它大幅壓縮了矩陣的規模,使演算法變得更加高效。
不過,你愛吃的食物的維度該上哪兒去找呢?肯定不是去問廚師。推薦系統會使用一種稱為奇異值分解的數學方法來計算維度,這種方法涉及到創建兩個保存原始數據的巨型矩陣,這也是這種方法的主要缺點。創建矩陣所需要的時間會隨著客戶和產品數量的增多而飛速增長——創建一個擁有 2.5 億名客戶和 1000 萬種產品的矩陣,需要花上創建一個 25 萬名客戶和 1 萬種產品的矩陣 10 億倍那麼多的時間。而且這一過程還需要經常重複。一旦收到新的評分,矩陣就已經過時;在像亞馬遜這樣的公司,每一秒鐘都會收到新的評論。幸運的是,就算略微過時,矩陣仍然能以一個挺不錯的水平運作。研究人員們也已經在設計新的演算法,為奇異值分解提供可用的近似值並顯著縮短計算時間。
基於協同過濾的推薦應用最廣泛,而它也存在以下幾個問題:
方法的核心是基於歷史數據,所以對新物品和新用戶都有「冷啟動」的問題。
推薦的效果依賴於用戶歷史偏好數據的多少和準確性。
在大部分的實現中,用戶歷史偏好是用稀疏矩陣進行存儲的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等。
對於一些特殊品味的用戶不能給予很好的推薦。
由於以歷史數據為基礎,抓取和建模用戶的偏好後,很難修改或者根據用戶的使用演變,從而導致這個方法不夠靈活。
三、個性化推薦引擎的應用
其實在現在的推薦系統中,很少有隻使用了一個推薦策略的推薦引擎,一般都是在不同的場景下使用不同的推薦策略從而達到最好的推薦效果。3.1 Amazon
Amazon 作為推薦引擎的鼻祖,其推薦的核心是通過數據挖掘演算法和比較用戶的消費偏好與其他用戶進行對比,藉以預測用戶可能感興趣的商品。Amazon 採用的是分區的混合的機制,並將不同的推薦結果分不同的區顯示給用戶。
今日推薦(Today"s Recommendation For You): 通常是根據用戶的近期的歷史購買或者查看記錄,並結合時下流行的物品給出一個折中的推薦。
新產品的推薦(New For You): 採用了基於內容的推薦機制(Content-based Recommendation),將一些新到物品推薦給用戶。在方法選擇上由於新物品沒有大量的用戶喜好信息,所以基於內容的推薦能很好的解決這個「冷啟動」的問題。
捆綁銷售(Frequently Bought Together): 採用數據挖掘技術對用戶的購買行為進行分析,找到經常被一起或同一個人購買的物品集,進行捆綁銷售,這是一種典型的基於項目的協同過濾推薦機制。
別人購買/ 瀏覽的商品(Customers Who Bought/See This Item Also Bought/See): 這也是一個典型的基於項目的協同過濾推薦的應用,通過社會化機制用戶能更快更方便的找到自己感興趣的物品。
另外,Amazon 很多推薦是基於用戶的profile 計算出來的,用戶的profile 中記錄了用戶在Amazon 上的行為,包括看了那些物品,買了那些物品,收藏夾和wish list 里的物品等等,當然Amazon 里還集成了評分等其他的用戶反饋的方式,它們都是profile 的一部分,同時,Amazon 提供了讓用戶自主管理自己profile 的功能,通過這種方式用戶可以更明確的告訴推薦引擎他的品味和意圖是什麼。
3.2 豆瓣
豆瓣的推薦是通過「豆瓣猜」,官方介紹——"你的個人推薦是根據你的收藏和評價自動得出的,每個人的推薦清單都不同。你的收藏和評價越多,豆瓣給你的推薦會越準確和豐富。每天推薦的內容可能會有變化。隨著豆瓣的長大,給你推薦的內容也會越來越准。」
這一點讓我們可以清晰明了的知道,豆瓣必然是基於社會化的協同過濾的推薦,這樣用戶越多,用戶的反饋越多,那麼推薦的效果會越來越準確。
相對於Amazon 的用戶行為模型,豆瓣電影的模型更加簡單,就是「看過」和「想看」,這也讓他們的推薦更加專註於用戶的品味,畢竟買東西和看電影的動機還是有很大不同的。
另外,豆瓣也有基於物品本身的推薦,當你查看一些電影的詳細信息的時候,他會給你推薦出「喜歡這個電影的人也喜歡的電影」,這是一個基於協同過濾的應用。
關聯規則是實現推薦引擎的一種方式,「買過此商品的人,百分之多少還買過其他啥啥商品」這種形式的應該不能看出是用哪種方式實現的。
這種形式一般可以按推薦引擎的演算法分,主要有基於協同過濾、基於內容推薦等演算法。
「買過此商品的人,百分之多少還買過其他啥啥商品」:協同過濾item-based filtering「和你興趣相似的人,還買過其他啥啥商品」:協同過濾 user-based filtering「相關商品推薦」:基於內容推薦content-based「猜你喜歡」 一般混合使用推薦演算法。參考:探索推薦引擎內的秘密系列文章:http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html下面貼了一張全局圖(見圖一),基本可以參考演算法層的那幾個常見演算法(強化、遷移、深度學習也慢慢走入推薦演算法的架構中),每個演算法的存在基本都是以產品功能、形態導向,並且以某個演算法主導,並輔之以其它演算法(來解決主演算法的不足,或優化主演算法),如冷啟動、商品深度、零結果率等問題。
常見各個資源位,根據產品定位,不同演算法選取邏輯(見圖二),來自一位前輩的分享
圖一
圖二
推薦系統讓用戶更容易的發現其所感興趣的信息,讓信息更便捷的傳達給其所適合的用戶。對於電商系統而言,推薦系統不僅能幫助企業提高銷售業績,而且可以很好的改善用戶體驗、增加用戶粘性。另外,很重要的一點事可以幫助企業有效解決商品的「長尾」問題。
常見的推薦演算法主要有以下幾種:
- 基於內容的推薦
主要過程是將用戶的信息特徵和物品對象的特徵相匹配的過程,從而得到待推薦的物品集合。通過用戶模型中的類別、標籤、品牌等各維度的偏好數據,在全量物品列表中尋找與之匹配的用戶感興趣的物品列表,並給出用戶感興趣的程度。根據挖掘的興趣點,對部分用戶進行有針對性的推薦,為其「量身定製」推薦結果,滿足其特有的需求。
基於內容的推薦方法,優點是能保證推薦內容的相關性,並且根據內容特徵可以解釋推薦結果,而且對新物品的推薦是也能有很好的考量。缺點是由於內容高度匹配,導致推薦結果的驚喜度較差,而且對新用戶不能提供可靠的推薦結果。
另一個重要的優勢,是基於內容的推薦能很好的解決推薦系統的「冷啟動」問題,因為這類推薦演算法不需要依賴用戶行為的積累,當待推薦的物品是新出現時,基於內容的推薦演算法往往是最有效的方法。
- 協同過濾
協同過濾方法主要基於群體智慧,認為相似的用戶對新物品的喜好也是相似的,相似的物品對於同一用戶來說,喜好程度也是相似的。這種方法克服了基於內容方法的一些弊端,最重要的是可以推薦一些內容上差異較大但是又是用戶感興趣的物品。大致分為兩類:基於近鄰的方法(Neighbour-based)和基於模型的方法(Model-based)。
基於近鄰的方法,在數據預測中直接使用已有數據進行預測,將用戶的所有數據載入到內存中進行運算。基於用戶的協同過濾是,獲取和當前用戶相似的用戶列表,將這些用戶喜歡的物品推薦給當前用戶。基於物品的協同過濾,獲取當前用戶偏好的物品列表,將和這些物品相似的物品加入到推薦的候選集當中。
基於模型的方法則是通過數據進行模型訓練,然後為用戶預測新的物品,主要包括:pLSA(Probabilistic Latent Semantic Analysis)、LDA(Latent Dirichlet Allocation)、SVM(Support
Vector Machines)、SVD(Singular Value Decomposition)等。
推薦系統效果提升的一個有效方式是用戶反饋數據的使用,包括顯示反饋和隱式反饋。SVD++在SVD的基礎上引入隱式反饋,將用戶的點擊反饋數據等作為新的參數加入到模型中。
具體實現可以參考SVDFeature、LibFM、GraphLab。
- 基於知識的推薦
當用戶的行為數據較少同時又有明確的需求時,協同過濾和基於內容的推薦效果不盡人意,但是基於知識的推薦(Knowledge-based Recommendation)可以幫助我們解決這類問題。這種方法不需要用戶行為數據就能推薦,依賴人工的先驗經驗,所以也能較好的處理冷啟動問題。
基於知識的推薦其基礎是知識庫,或稱為Ontology。與其相關聯的技術包括自然語言處理、語義分析等。例如「手機」和「手機殼」,「筆記本電腦」和「macbook」,在知識庫概念里存在「本體」、「實例」、「關係類型」等抽象概念,利用知識庫的延伸或拓展可以形成若干規則、或相互關係,並進而形成推薦體系。推薦結果主要依賴兩種形式,一是用戶需求跟物品之間相似度,一種是明確的推薦規則。實際應用主要是以強規則為主。
- 推薦補足演算法
當用戶歷史數據比較局限或者在冷啟動的時候,導致待推薦物品的數量不足沒有達到預定要求時,根據用戶模型的數據,結合挖掘的各種榜單進行補足,如全局熱門、分類熱門、潛力物品、潮流物品等。
推薦補足的出發點有很多,第一是確保推薦結果的多樣性,因為用戶的偏好往往是多樣的,因此需要多樣的結果來分別滿足。單一的推薦演算法往往推出的結果較為單調,而通過特定的補足策略可以照顧到多樣性的需求。第二是解決推薦的新穎性問題。通常較為小眾的物品往往難以得到有效的曝光,或者新出現的內容由於積累的用戶行為數據少,往往被壓制,適當的進行這類結果的補足可以較好的提高推薦結果的新穎性。
- 多演算法融合
前面提到單一演算法有各自的優缺點,並不能滿足實際的線上需求。所以為了提供最優質的個性化推薦服務,保證推薦結果的多樣性、新穎性和驚喜度,需要融合多個推薦演算法,進行混合推薦。常見的混合方法有以下幾種:
a)
加權式混合
主要是對每個演算法賦予不同的權重,通過將多個推薦演算法的結果進行加權組合在一起,最後排序得到推薦結果。
不同推薦演算法的結果需要歸一化在相同的範圍內,並且各個演算法的權重之和為1。
b)
交叉式混合
主要是直接將不同的推薦演算法的結果組合在一起推薦給用戶,從而每個推薦演算法的優質結果都會被展示給用戶。
c)
切換式混合
主要是根據不同應用場景決定使用哪一種推薦演算法,應用場景改變的話則切換推薦演算法。例如在新聞推薦時,首先使用基於內容的推薦,當找不到合適的內容時,接著使用協同過濾演算法進行跨內容的推薦,最後使用樸素貝葉斯分類器找到與用戶長期興趣匹配的結果。
d)
串聯混合
主要是將不同的推薦演算法進行排序,後面的推薦演算法對前面的不斷優化,最終得到一個多級優化下的推薦結果。
e)
分級混合
主要是先界定不同的演算法的好壞,優先使用好演算法的推薦結果,得不到結果時再使用次好的,依次類推。
在實踐中充分利用了各種混合方法來提高推薦效果,並取得了優異的成效。例如基於加權式和分級混合的流程是,首先通過權重的大小來衡量每種推薦演算法結果的好壞,產生待推薦的物品集合,在合併的時候,將優先使用好的推薦演算法的結果。關於演算法權重的設置,基於用戶反饋數據,簡單的方法可以使用LR(Logistic Regression)。實踐中則是各種指標綜合權衡,整個過程也要複雜很多。
經過多個推薦演算法的處理,最終得到待推薦物品的結合,使用少量維度的特徵進行排序過於簡單,效果也大打折扣。基於推薦演算法得到的相關特徵,結合物品和用戶的特徵進行組合,可以得到各種特徵,並且有些特徵是正相關有些是負相關,需要不斷優化。藉助機器學習方法得到了最終的物品排序,呈現給用戶。
方法多,要看具體的適用場景。
基於神經網路的數據挖掘演算法也能找到用戶對商品的偏好關係,也可以向用戶推薦合適的商品,為什麼很少有人使用這個方法呢
推薦閱讀:
※為什麼github和stackoverflow這兩個網站在google trends中中國熱度會最高?
※Google在中國地區訪問困難,長期來看會導致它的搜索結果質量變差嗎?
※必應pk谷歌,微軟作假?
※喬布斯說「除了搜索引擎,谷歌的產品,包括安卓和 Google Docs,都是狗屎」,這句話有道理么?
※如何編寫搜索引擎,應該有怎麼樣的思路,分哪些模塊?或者有沒有適合初學者的書籍呢