庫和工具,用於在網絡上啟用數據驅動的用戶體驗。
對於WebPack用戶:
安裝和配置猜測Pluesplugin-猜測。
如果您希望嘗試單獨提供的模塊,則packages目錄包含三個包:
ga一個用於從Google Analytics(分析)API獲取結構化數據的模塊,以了解用戶導航模式。parser - 提供JavaScript框架解析的模塊。這為在Guess Webpack插件中實現的路由功能提供動力。webpack用於在應用程序中設置預測性獲取的WebPack插件。它消耗了ga和parser模塊,並提供了大量選項,用於配置預測性獲取在應用程序中的工作方式。對於非webpack用戶:
我們對網站工作流程的預測性提示提供了一組步驟,您可以遵循使用Google Analytics(分析)API集成預測性提取的步驟。
此存儲庫使用Google Analytics(分析)數據來確定用戶主要可能從給定頁面訪問哪個頁面。客戶端腳本(您將添加到應用程序中)將請求發送到服務器以獲取該頁面的URL,以獲取該請求,然後預取資源。
Guess.js提供了庫和工具,以簡化預測性數據分析驅動的方法來改善網絡上的用戶體驗。這些數據可以從任何數量的來源驅動,包括分析或機器學習模型。 Guess.js旨在降低消費和將這種思維應用於所有現代站點和應用程序的摩擦,包括為流行工作流構建庫和工具。
將預測性數據分析思維應用於網站可以在多種情況下應用:
通過在可以輕鬆應用數據驅動方法的生態系統中的不同接觸點之間進行協作,我們希望概括常見的基礎架構,以最大程度地利用它們在不同技術堆棧中的適用性。
<link rel=prefetch>用於將來導航的開發人員在很大程度上依靠手動閱讀描述性分析來告知他們的預摘要的決策。<link rel=prefetch>目前用於總鉻pageloads的5%,但這可能更高。Guess.js的第一個大型優先級將通過預測的內容提高Web性能。
通過構建用戶可能會訪問的頁面模型,鑑於任意輸入頁,解決方案可以計算用戶將在用戶仍在查看其當前頁面時訪問給定的下一頁或一組頁面的可能性。這有可能改善以後的頁面訪問的頁面加載性能,因為在用戶的緩存中,頁面很有可能。
為了預測用戶可能會訪問的下一頁,解決方案可以使用Google Analytics(分析)API。 Google Analytics(分析)會話數據可用於創建模型,以預測用戶將要在網站上訪問的最可能的頁面。本會話數據的好處是它可以隨著時間的推移而發展,因此,如果特定的導航路徑發生變化,預測也可以保持最新。
有了這些數據的可用性,引擎可以插入<link rel="[prerender/prefetch/preload]">標籤,以加快下一頁請求的加載時間。在某些測試中,例如馬克·埃德蒙森(Mark Edmondson)使用R的增壓頁面載荷,這導致頁面加載時間提高了30%。他的研究中使用的方法標記涉及使用GTM標籤和機器學習來訓練模型以進行頁面預測。這是機器學習中持續的想法標記,符合雲 - 智能預取。
儘管這種方法是正確的,但所使用的方法可以認為有些複雜。可以採用的另一種方法(更簡單)是嘗試從Google Analytics(分析)API獲取準確的預測數據。如果您運行了頁面和上一頁路徑維度的報告,並結合了頁面瀏覽量和退出指標,則應提供足夠的數據來連接大多數流行頁面的預取。
ML可以幫助提高解決方案預測的總體準確性,但不需要初始實施。可以通過在用戶可能會隨著時間的推移訪問和改進的頁面上的模型來實現預測性提取。
深度神經網絡特別擅長挑逗可能導致用戶選擇一個頁面而不是另一個頁面的複雜性,如果我們想嘗試嘗試迎合個人用戶可能訪問的頁面的解決方案版本,而“通用/中位數”用戶可能會訪問接下來。固定的頁面序列(上一個,當前,下一個)可能是最初開始處理的最簡單的。這意味著建立一個模型,該模型是您一組文檔的獨特模型。
模型更新往往會定期進行,因此可能會根據新的用戶行為設置每晚/每週工作以刷新。這可能是實時完成的,但可能很複雜,因此定期這樣做可能就足夠了。可以想像一個通用模型代表站點上用戶的行為模式,該模型可以由訓練有素的狀態集,Google Analytics(分析)或您使用新層插入路由器中的自定義描述來驅動,從而使網站能夠預測地獲取未來頁面,從而提高頁面負載性能。
投機性預取的可能會在頁面加載上導航。這假設存在有關概率的知識的存在,一個頁面將需要某個下一頁或一組頁面,或者可以提供數據驅動方法來確定此類概率的方法。
從延期到UA,可以通過多種方式來完成頁面加載的預摘要,以決定何時預取資源(例如,在<link rel=prefetch>的<link rel = prefetch>),在頁面空閒時間(通過requestIdlecallback())或其他某些間隔。用戶不需要進一步的互動。
當頁面中的鏈接在視口中可見時,一個頁面可以推測開始預摘要內容,這表明用戶可能有更高的機會需要單擊它們。
這是Gatsby(使用React和React路由器)使用的一種方法。他們的具體實現如下:
<Link>組件變得不可見時,鏈接到預取票的頁面的鏈接“投票”每次都值得較小,因此頁面頂部的鏈接優先於較低的鏈接。當用戶表明他們對某些內容感興趣時,頁面可以開始推測預取資源。這可以採用多種形式,包括當用戶選擇懸停在鏈接或UI的某些部分時,將它們導航到單獨的頁面。一旦有清楚的跡象表明,瀏覽器可以立即開始獲取鏈接的內容。這是JavaScript庫(例如InstantClick)採用的一種方法。
與提前預取內容的任何機制一樣,需要非常仔細地接觸此內容。在受限制的數據計劃上的用戶可能不會從提前獲取頁面中欣賞或受益,尤其是如果他們開始吞噬數據。站點/解決方案可能需要注意這種問題,例如尊重保存數據標頭。
預取向“註銷”頁面的鏈接可能是不可取的。對於觸發頁面載荷措施的任何頁面也可以說(例如,一鍵式購買)。解決方案可能希望包含一個從未預拿的URL的黑名單,以增加預取頁頁面有用的可能性。
過去實現類似建議的一些嘗試依賴於<link rel=prerender> 。 Chrome團隊目前正在探索RER = Prerender,以支持NostatePrefetch-這種機制的更輕版本,該機制僅預取到HTTP緩存,但沒有使用Web平台的其他狀態。解決方案應考慮是否依靠替代品來替換rel = prerender或使用預摘要/預緊/其他方法。
Nostateprefetch和預摘要之間有兩個關鍵區別:
Nostate-prefetch是一種機制, <link rel=prefetch>是一個API。可以通過其他入口點請求Nostate-prefetch:OmniBox預測,自定義選項卡, <link rel=prerender> 。
實現是不同的: <link rel=prefetch>預拿一個資源,但在此基礎上,nostate-prefetch在資源上運行了預加載掃描儀(在新的新渲染器中),發現了子資源並將其預摘(不再重新填充預裝掃描儀)。
在這個問題空間中,值得了解的數據分析有三種主要類型:描述性,預測性和規定性。每種類型都是相關的,並幫助團隊利用各種見解。
描述性分析總結了原始數據,並將其變成人類可解釋的東西。無論事件何時發生,它都可以查看過去的事件。描述性分析使團隊可以從過去的行為中學習,這可以幫助他們影響未來的成果。描述性分析可以確定網站用戶以前已查看的網站上的哪些頁面以及給定任何給定的輸入頁面所採用的導航路徑。
預測分析“預測”接下來會發生什麼。預測分析有助於我們了解未來,並為團隊使用數據提供可行的見解。它提供了對未來結果有用的可能性的估計。重要的是要記住,很少有算法可以完全準確地預測未來的事件,但是我們可以使用盡可能多的信號來幫助提高基線準確性。預測分析的基礎是基於我們從數據中確定的概率。預測分析可以預測用戶可能會訪問任意輸入頁面的下一頁或一組頁。
規定分析可以開處方不同的可能措施來指導解決方案。規範性分析提供建議,試圖量化未來決策的影響可能必須在做出這些決定之前就可能的結果提供建議。規定分析的目的不僅是預測將要發生的事情,而且要進一步發展。告知為什麼會發生並提供有關可以利用此類預測的行動的建議。規範性分析可以預測用戶將訪問的下一頁,但也建議採取措施,例如通知您可以自定義他們的體驗以利用這些知識的方式。
預取問題空間中預測模型的關鍵目標是確定給定特定頁面請求的用戶可能需要的後續請求。這允許服務器或客戶端預先提取下一組頁面,並嘗試在直接導航到頁面之前確保它們在用戶的緩存中。這個想法是減少整體加載時間。當謹慎地實現此功能時,該技術可以減少頁面訪問時間和延遲,從而改善整體用戶體驗。
馬爾可夫模型已被廣泛用於研究和理解隨機(隨機概率分佈)過程[參考,參考]。已證明它們非常適合建模和預測用戶的瀏覽行為。這些問題的輸入往往是用戶或用戶集(網站範圍內)訪問的網頁的順序,其目標是構建Markov模型,我們可以用來建模並預測用戶接下來很可能訪問的頁面。馬爾可夫進程具有代表訪問的頁面和邊緣的狀態,代表了狀態之間從分析日誌中給定序列計算的狀態之間的過渡概率。受過訓練的馬爾可夫模型可用於預測下一個k先前狀態的下一個狀態。
在某些應用程序中,一階馬爾可夫模型在預測用戶瀏覽行為方面並不那麼準確,因為這些模型並不總是研究過去以區分已經觀察到的不同模式。這是經常使用高階模型的原因之一。這些高階模型具有局限性,具有狀態空間的複雜性,範圍較大,有時降低了預測準確性。
克服這個問題的一種方法是訓練不同的訂單馬爾可夫模型,然後我們在預測階段使用。這是在此參考文獻中提出的全級馬爾可夫模型中嘗試的。但是,這會使州空間的複雜性變得更糟。另一種方法是識別頻繁的訪問模式(最長的重複子序列),並使用此組序列進行預測。儘管這種方法可以降低狀態空間複雜性的數量級,但它可以降低預測準確性。
選擇性馬爾可夫模型(SMM)也僅在模型中存儲某些狀態,以解決狀態空間複雜性權衡的解決方案。它們以全級馬爾可夫模型開頭 - 然後使用一種後固定方法來修剪預期的預測指標。結果是一個模型,其具有相同的全訂單模型的預測能力,其空間複雜性較小,預測準確性較高。在Deshpane和Karpis中,在預測(頻率,置信度,誤差)之前,在模型中對修剪狀態的不同標準。
在Mabroukeh和Ezeife中,研究了語義豐富的一階和第二階馬爾可夫模型的性能,並將其與高階SMM和語義延伸的SMM進行了比較。他們發現語義封閉的SMM的尺寸比頻率鍵入的SMM小16%,並且提供了幾乎相等的精度。
觀察導航模式可以使我們能夠分析用戶行為。這種方法需要訪問用戶會議識別,將會話聚集到相似的群集中,並使用當前和早期的訪問模式開髮用於預測的模型。該領域的以前許多工作都依賴於聚類方案,例如具有歐幾里得距離的K均值聚類技術,以提高預測的信心。使用K均值的缺點之一是很難確定簇數,選擇初始隨機中心和頁面訪問順序並不總是考慮。 Kumar等人對此進行了研究,提出了一種層次聚類技術,使用訪問時間長度,頻率和高階Markov模型進行預測,使用了修改的Levenshtein距離,Pagerank。
下一節中引用的許多論文圍繞Markov模型,協會規則和聚類。我們的重點是強調與模式發現相關的相關工作的論文,這是我們的重點。
使用一階馬爾可夫模型來建模用戶要求的網頁序列,以預測他們可能訪問的下一頁。馬爾可夫鏈使系統能夠根據先前狀態在導航日誌中動態建模URL訪問模式。為每個用戶培訓了“個性化”馬爾可夫模型,並用於預測用戶的未來會議。實際上,為每個用戶構建一個獨特的模型非常昂貴,並且當網站擁有大型用戶基礎時,擴展的成本變得更具挑戰性。
第一張紙,研究隱藏的馬爾可夫模型(HMM)。作者收集了Web服務器日誌,修剪了數據並修補了通過的路徑。基於HMM,作者構建了一個用於Web瀏覽的特定模型,該模型可以預測用戶是否有意實時購買。相關措施,例如研究在購買模式時加快操作及其影響。
提出了一個框架,以根據其先前的排名來預測頁面的排名位置。假設一組連續的TOP-K排名,作者根據不同的方法來確定預測因子。預測質量被量化為預測和實際排名之間的相似性。詳盡的實驗是在全球和基於查詢的TOP-K排名的現實世界大型數據集上進行的。用於比較Top-K排名列表的各種現有相似性措施,包括在論文中捕獲的新穎列表。
建議使用N-Hop Markov模型來預測下一個網頁用戶可能訪問的網頁。模式將用戶的當前訪問順序與用戶的歷史Web訪問序列相匹配,以提高預取預約準確性。
提出了基於動態聚類的方法,以提高Markov模型的準確性,以表示代表Web導航會話的集合。使用狀態克隆概念以一種將相應二階概率差異的鏈接分開的方式來複製狀態。提出的方法包括一種聚類技術,該聚類技術確定了一種分配與同一克隆相似的二階概率的鏈接的方法。
擴展了具有許多導航屬性的頁面級算法的使用:頁面的大小,頁面的持續時間,過渡持續時間(依次兩個頁面訪問),頁面的頻率和過渡。定義基於持續時間的等級(DPR)和基於受歡迎程度的頁面等級(PPR)。作者使用持續時間信息,使用頁面大小和訪問頻率來研究過渡和頁面的普及。使用頁面的普及值,本文試圖改善傳統的頁面級算法,並在給定的TOP-N值下建模下一頁預測。
![]() Minko Gechev | ![]() Addy Osmani | ![]() 凱蒂·亨普尼烏斯(Katie Hempenius) | ![]() 凱爾·馬修斯(Kyle Mathews) |