新聞
模型
產品
keyboard_arrow_down
深度搜索
搜索、讀取並推理直到找到最佳答案。
讀取器
讀取URL或搜索為大模型提供更好的依據。
向量模型
世界一流的多模態多語言向量模型。
重排器
世界一流的重排器,最大限度地提高搜索相關性。
更多的
keyboard_arrow_down
分類器
圖片和文本的零樣本和少樣本分類。
切分器
將長文本切分成塊或詞元。

API 文檔
為您的AI 編程助手 IDE 或大模型自動生成代碼
open_in_new


公司
keyboard_arrow_down
關於我們
聯繫銷售
實習生計劃
加入我們
open_in_new
下載Logo
open_in_new
條款及條件


登錄
login
動機
實驗設置
方法論
實作
結果
發現
最終思考
技術文章
七月 18, 2024

不,你不能用 Reranker 來改善 SEO

但如果你從事 SEO 工作,從搜尋引擎的角度來看會很有趣;了解 embeddings 和 rerankers 在現代搜尋系統中扮演的角色。
Abstract background with dynamic green particles and lines on a black backdrop, emitting a sense of motion and energy.
Han Xiao
Han Xiao • 11 分鐘的讀取量

隨著最近 jina-reranker-v2-multilingual 的發布,我在 ICML 出差前有一些空閒時間,所以我決定寫一篇關於我們重排序模型的文章。在網上搜尋靈感時,我發現一篇在搜尋結果排名靠前的文章,聲稱重排序器可以提升 SEO。聽起來很有趣,對吧?我也這麼認為,因為在 Jina AI 我們研發重排序器,而且作為公司網站的管理員,我一直對提升 SEO 很感興趣。

Screenshot of Google search results for "reranker seo" showing articles on enhancing search with reranking models.
一篇聲稱 Reranker 可以提升 SEO 的 ChatGPT 生成文章。從"in the realm of"這樣的措辭立刻就能看出來。

然而,閱讀完整篇文章後,我發現它完全是 ChatGPT 生成的。整篇文章只是不斷重複闡述"重排序對你的業務/網站很重要"的觀點,卻從未解釋如何實現、背後的數學原理,或如何實作。這完全是浪費時間。

你無法將 Reranker 和 SEO 結合在一起。搜尋系統的開發者(或一般來說是內容消費者)關心重排序器,而內容創作者關心 SEO 以及他們的內容在該系統中的排名是否更高。他們基本上坐在談判桌的對立面,很少交換想法。要求重排序器提升 SEO,就像要求鐵匠升級你的火球術,或是在中餐館點壽司一樣。它們並非完全不相關,但明顯是錯誤的目標。

想像一下,如果 Google 邀請我去他們的辦公室,詢問我對他們的重排序器是否正確排序 jina.ai 的意見。或者如果我完全控制 Google 的重排序算法,每當有人搜尋 "information retrieval" 時,就硬編碼將 jina.ai 排在最前面。這兩種情況都毫無意義。那麼,為什麼會有這樣的文章呢?好吧,如果你問 ChatGPT,就會很明顯看出這個想法最初來自哪裡。

Informational content on improving SEO using reranker, highlighting content optimization, keyword relevance, and content qual

tag動機

如果那篇 AI 生成的文章在 Google 上排名第一,我想寫一篇更好、更高品質的文章來取代它。我不想誤導人類或 ChatGPT,所以我在這篇文章中的觀點很明確:

不,你不能使用重排序器來提升 SEO。然而,如果你從事 SEO 工作,從另一個角度看問題並了解嵌入模型和重排序器在現代搜尋系統中扮演的角色可能會很有趣。這些知識可能幫助你更策略性地優化內容。

具體來說,在這篇文章中,我們將查看從 Google Search Console 匯出的真實搜尋查詢,看看它們與文章的語意關係是否能說明在 Google 搜尋中的展示次數和點擊率。我們將通過三種不同的方式來評分語意關係:詞頻(term frequency)、嵌入模型(jina-embeddings-v2-base-en)和重排序模型(jina-reranker-v2-multilingual)。像任何學術研究一樣,讓我們先列出我們想研究的問題:

  1. 語意分數(查詢,文檔)是否與文章的展示次數或點擊量有關?
  2. 更深層的模型是否能更好地預測這種關係?或者詞頻就足夠了?

tag實驗設置

在這個實驗中,我們使用來自 jina.ai/news 網站的真實數據,這些數據是從 Google Search Console (GSC) 匯出的。GSC 是一個網站管理員工具,可讓你分析來自 Google 用戶的自然搜尋流量,例如有多少人通過 Google 搜尋打開你的部落格文章以及搜尋查詢是什麼。從 GSC 可以提取許多指標,但對於這個實驗,我們專注於三個:查詢(queries)、展示次數(impressions)和點擊量(clicks)。查詢是用戶在 Google 搜尋框中輸入的內容。展示次數衡量 Google 在搜尋結果中顯示你的連結的次數,讓用戶有機會看到它。點擊量衡量用戶實際打開它的次數。請注意,如果 Google 的"檢索模型"根據用戶查詢為你的文章分配較高的相關性分數,你可能會獲得許多展示次數。然而,如果用戶發現結果列表中的其他項目更有趣,你的頁面可能仍然得不到任何點擊。

Google Search Console dashboard interface displaying performance graphs and various analytics overviews, such as queries and
GSC 界面和我們 ColBERT 部落格文章的查詢、點擊、展示數據。注意右上角的"匯出"按鈕,點擊它會給你一個 zip 檔案。這個檔案是我們這個實驗需要的。另外,由於我們對排名前 7 的部落格文章感興趣,我們需要重複匯出 7 次。

我匯出了 jina.ai/news 中 7 個最常被搜尋的部落格文章過去 4 個月的 GSC 指標。每篇文章有大約 1,000 到 5,000 次點擊和 10,000 到 90,000 次展示。因為我們想查看每個搜尋查詢相對於其相應文章的查詢-文章語意關係,你需要在 GSC 中點擊每篇文章,並點擊右上角的 匯出 按鈕來匯出數據。它會給你一個 zip 檔案,解壓後,你會找到一個 Queries.csv 檔案。這就是我們需要的檔案。

舉例來說,匯出的 Queries.csv 對我們的 ColBERT 部落格文章來說如下所示。

Analytical table displaying website query metrics sorted by position with columns for clicks, impressions, and CTR.
我們 ColBERT 部落格文章的一些最高點擊量 Google 搜尋查詢。根據 GSC,過去 4 個月內與這篇部落格文章相關的查詢總共有 481 個。

tag方法論

好的,數據都準備好了,我們又想做什麼呢?

我們想檢查查詢和文章之間的語意關係(表示為 Q(q,d)Q(q,d)Q(q,d))是否與它們的展示次數和點擊量相關。展示次數可以被視為 Google 的秘密檢索模型 G(q,d)G(q,d)G(q,d)。換句話說,我們想用詞頻、嵌入模型和重排序模型等公開方法來模擬 Q(q,d)Q(q,d)Q(q,d),看看它是否能近似這個私有的 G(q,d)G(q,d)G(q,d)。

那點擊量呢?點擊量也可以被視為 Google 秘密檢索模型的一部分,但受到不確定的人為因素影響。直觀上來說,點擊量更難模擬。

但無論如何,讓 Q(q,d)Q(q,d)Q(q,d) 對齊 G(q,d)G(q,d)G(q,d) 是我們的目標。這意味著當 G(q,d)G(q,d)G(q,d) 高時我們的 Q(q,d)Q(q,d)Q(q,d) 應該得分高,當 G(q,d)G(q,d)G(q,d) 低時得分低。這可以通過散點圖更好地可視化,將 Q(q,d)Q(q,d)Q(q,d) 放在 X 軸,G(q,d)G(q,d)G(q,d) 放在 Y 軸。通過繪製每個查詢的 QQQ 和 GGG 值,我們可以直觀地看到我們的檢索模型與 Google 的檢索模型的對齊程度。疊加趨勢線可以幫助揭示可靠的模式。

讓我在展示結果之前總結一下方法:

  • 我們想檢查查詢和文章之間的語意關係是否與 Google 搜尋中的文章曝光和點擊相關。
  • Google 用來判斷文檔對查詢相關性的演算法是未知的 (G(q,d)G(q,d)G(q,d)),點擊背後的因素也是未知的。然而,我們可以從 GSC 觀察這些 GGG 值,即每個查詢的曝光量和點擊數。
  • 我們的目標是看看公開的檢索方法 (Q(q,d)Q(q,d)Q(q,d)) 如 詞頻、嵌入模型 和 重排序模型 是否是 G(q,d)G(q,d)G(q,d) 的良好近似。這些方法都提供了獨特的查詢-文檔相關性評分方式。從某種程度上說,我們已經知道它們不是很好的近似;否則,每個人都可以成為 Google。但我們想了解它們相差多遠。
  • 我們將在散點圖中視覺化結果進行定性分析。

tag實作

完整實作可以在以下 Google Colab 中找到。

Google Colab

我們首先使用 Jina Reader API 爬取部落格文章的內容。查詢的詞頻是通過基本的不區分大小寫計數來確定的。對於嵌入模型,我們將部落格文章內容和所有搜尋查詢打包成一個大請求,如: [[blog1_content], [q1], [q2], [q3], ..., [q481]],然後發送到 Embedding API。在得到回應後,我們計算第一個嵌入與所有其他嵌入之間基於餘弦的相似度,以獲得每個查詢的語意分數。

對於重排序模型,我們以一種略微技巧性的方式構建請求: {query: [blog1_content], documents: [[q1], [q2], [q3], ..., [q481]]} 並將這個大請求發送到 Reranker API。返回的分數可以直接用作語意相關性。我稱這種構建方式為技巧性是因為,通常重排序器是用於給定查詢對文檔進行排序。在這種情況下,我們 顛倒 了文檔和查詢的角色,使用重排序器來給定文檔對查詢進行排序。

請注意,在 Embedding 和 Reranker API 中,你不用擔心文章的長度(查詢總是很短,所以沒什麼大不了的),因為這兩個 API 都支援高達 8K 的輸入長度(實際上,我們的 Reranker API 支援「無限」長度)。所有這些都可以在幾秒鐘內迅速完成,你可以從 我們的網站 獲得一個免費的 1M token API 金鑰來進行這個實驗。

tag結果

最後是結果部分。但在我展示之前,我想先展示基準線圖的樣子。由於我們將使用散點圖和 Y 軸的對數尺度,可能很難想像完美好的和非常差的 Q(q,d)Q(q,d)Q(q,d) 會是什麼樣子。我構建了兩個簡單的基準線:一個是 Q(q,d)Q(q,d)Q(q,d) 等於 G(q,d)G(q,d)G(q,d) (真實值),另一個是 Q(q,d)∼Uniform(0,1)Q(q,d) \sim \mathrm{Uniform}(0,1)Q(q,d)∼Uniform(0,1) (隨機)。讓我們看看它們的視覺化效果。

tag基準線

Blue curve graph on black background, plotting "Impressions (Log Scale)" vs "Groundtruth" from 0.0 to 1.0.
真實值基準線,其中語意分數 Q(q,d)Q(q,d)Q(q,d) 是基於曝光量值的最小-最大標準化。這被視為 G(q,d)G(q,d)G(q,d) 的完美良好預測器。
Black scatter plot with purple dots, logarithmic axes labeled "Impressions (Log Scale)" and "10º," and a horizontal line labe
隨機基準線,其中語意分數 Q(q,d)Q(q,d)Q(q,d) 是從 (0,1) 均勻分佈中抽取的隨機數。多次運行會得到略微不同的結果。這被視為 G(q,d)G(q,d)G(q,d) 的非常差的預測器。

現在我們對「完美好的」和「非常差的」預測器有了直觀認識。記住這兩張圖以及以下對視覺檢查很有用的幾點說明:

  • 好的預測器的散點圖應該從左下到右上遵循對數趨勢線。
  • 好的預測器的趨勢線應該完全跨越 X 軸和 Y 軸(我們稍後會看到某些預測器並不是這樣表現的)。
  • 好的預測器的變異區域應該很小(表現為趨勢線周圍的不透明區域)。

接下來,我會一起展示所有圖表,每個預測器有兩個圖:一個顯示它預測曝光量的表現,一個顯示它預測點擊數的表現。請注意,我匯總了所有 7 篇部落格文章的數據,所以總共有 3620 個查詢,即每個散點圖中有 3620 個數據點。

請花幾分鐘上下滾動並檢視這些圖表,比較它們並注意細節。讓這些資訊慢慢沉澱,在下一節中,我將總結發現。

tag詞頻作為預測器

Graph showing relationship between 'Term Frequency' and 'Impressions' on a log scale, with values and a visible trend curve o
Black background graph with a curved line, plotting Term Frequency on x-axis and Clicks on a logarithmic y-axis.

tag嵌入模型作為預測器

Scatterplot with logarithmic Impressions vs. Embedding Score, points in shades of purple, and a labeled axis.
Scatter plot graph with an x-axis labeled 'Embedding Score' and a y-axis as 'Clicks (Log Scale)', displaying a power-law dist

tag重排序模型作為預測器

Scatterplot with a black background, labeled axes 'Reranker Score' and 'Impressions (Log Scale)', and lines of best fit among
Graph with black background, 'Reranker Score' on x-axis, 'Clicks (log scale)' on y-axis, and scattered data points.

tag發現

讓我們把所有圖表放在一起以便比較。以下是一些觀察和解釋:

不同預測器對曝光量的預測。每個點代表一個查詢,X 軸代表查詢-文章語意分數;Y 軸是從 GSC 匯出的曝光數。

不同預測器對點擊次數的分析。每個點代表一個查詢,X 軸代表查詢與文章的語義分數;Y 軸是從 GSC 匯出的點擊次數。

  • 總的來說,所有點擊的散點圖比其曝光圖更稀疏,儘管兩者都基於相同的數據。這是因為如前所述,高曝光率並不保證會有點擊。
  • 詞頻圖比其他圖更稀疏。這是因為來自 Google 的大多數實際搜索查詢並未在文章中完全出現,所以它們的 X 值為零。但它們仍然有曝光和點擊。這就是為什麼你可以看到詞頻趨勢線的起點不是從 Y 軸零點開始。人們可能會認為當某些查詢在文章中多次出現時,曝光和點擊可能會增加。趨勢線確實證實了這一點,但趨勢線的變異也在增加,表明缺乏支持數據。總的來說,詞頻不是一個好的預測指標。
  • 將詞頻預測器與嵌入模型和重排序模型的散點圖相比,後者看起來好得多:數據點分布更好,趨勢線的變異看起來也較為合理。但是,如果你將它們與上面顯示的真實趨勢線比較,你會注意到一個顯著的差異 — 兩條趨勢線都不是從 X 軸零點開始的。這意味著即使你從模型中獲得很高的語義相似度,Google 很可能會給你零曝光/零點擊。在點擊散點圖中這一點變得更加明顯,其起點甚至比相應的曝光圖更靠右。簡而言之,Google 並沒有使用我們的嵌入模型和重排序模型—這真是個大驚喜!
  • 最後,如果我必須在這三個預測器中選擇最好的一個,我會選擇重排序模型。原因有二:
    • 與嵌入模型的趨勢線相比,重排序模型在曝光和點擊上的趨勢線在 X 軸上分佈得更好,具有更大的「動態範圍」,這使它更接近真實趨勢線。
    • 分數在 0 到 1 之間分布良好。請注意,這主要是因為我們最新的 Reranker v2 模型經過了校準,而我們在 2023 年 10 月發布的早期 jina-embeddings-v2-base-en 則沒有,所以你可以看到它的值分布在 0.60 到 0.90 之間。話說回來,這第二個原因與其對 G(q,d)G(q,d)G(q,d) 的近似程度無關;只是在 0 到 1 之間有一個經過良好校準的語義分數更容易理解和比較。

tag最終思考

那麼,這對 SEO 有什麼啟示呢?這如何影響你的 SEO 策略?說實話,影響不大。

上面這些花哨的圖表表明了一個你可能已經知道的基本 SEO 原則:撰寫用戶正在搜尋的內容,並確保它與熱門查詢相關。如果你有一個像 Reranker V2 這樣好的預測器,也許你可以把它當作某種「SEO 副駕駛」來指導你的寫作。

或者不必如此。也許只是為了知識而寫作,寫作是為了提升自己,而不是為了取悅 Google 或任何人。因為如果你不寫作就思考,你只是以為自己在思考。

類別:
技術文章
rss_feed
辦公室
location_on
加利福尼亞州桑尼維爾
710 Lakeway Dr, Ste 200, 桑尼維爾, CA 94085, 美國
location_on
德國柏林(總部)
Prinzessinnenstraße 19-20,10969 柏林,德國
location_on
中國北京
中國北京市海淀區西大街48號6號樓5層
location_on
中國深圳
中國深圳市賦安科技大廈4樓402
搜索底座
深度搜索
讀取器
向量模型
重排器
分類器
切分器
API 文檔
獲取 Jina API 密鑰
速率限制
API 狀態
公司
關於我們
聯繫銷售
新聞
實習生計劃
加入我們
open_in_new
下載Logo
open_in_new
條款
安全
條款及條件
隱私
管理 Cookie
email
Jina AI © 2020-2025.