科技內幕 – 解決多語言與語義搜尋的挑戰

貴團隊目前面臨的最大技術挑戰是什麼?
大約一年前,Roblox 的搜尋功能還採用詞彙系統來將結果與用戶的搜尋內容進行比對,也就是說,它僅專注於文字比對。但搜尋行為正迅速改變,這種做法已不足以向用戶提供相關內容。同時,部分 Roblox 用戶在查詢時可能會拼寫錯誤。因此,我們必須能夠建議符合他們搜尋意圖的結果,這意味著必須理解他們的搜尋意圖。
搜尋系統面臨的另一大難題,是跨語言訓練資料的匱乏。在導入語義搜尋之前,我們的第一步是利用 Roblox 系統內的機器翻譯功能。我們會將翻譯結果建立索引,再進行文字比對。但這並不足以始終向用戶展示相關內容。因此,我們採用了一種更先進的機器學習技術,稱為「師生模型」:教師模型會從特定情境下最大的語境來源中學習。
英語是 Roblox 上使用最廣泛的語言,因此我們會盡可能在英語中學習盡可能多的語義關係——這便是「教師模型」——接著透過將其擴展至其他語言,將這些知識提煉並傳遞給「學生模型」。這有助於我們解決特定語言數據匱乏的問題。此舉已使日本地區透過搜尋產生的遊玩次數增加了 15%。
我們近期致力於更好地支援「đua xe(賽車)」這類目錄查詢。但用戶更常提交長篇自由式查詢,例如:「嘿,我記得玩過一款遊戲,裡面有條龍和一個女孩在對抗它。你能幫我找到那款遊戲嗎?」這帶來了更多技術挑戰,我們正持續沿此方向改進系統。
在整合更多語境與語義搜尋方面,有哪些創新的做法?
我們建置了一套混合搜尋系統,將詞彙搜尋與機器學習技術結合,並運用語義搜尋及查詢意圖理解模型。我們持續優化系統,以建立語境理解能力、處理複雜查詢,並回傳相關內容。
語義搜尋的奧妙在於嵌入向量,這些向量是我們從 Roblox 各處獲取的各種訊號所構成的豐富表徵。例如,我們會整合用戶人口統計資料、用戶的查詢內容、查詢長度,或是其獨特之處等訊號。
我們同時關注內容相關的訊號,例如體驗內容、虛擬角色裝備以及用戶參與度——例如某款遊戲的遊玩頻率、用戶數量,以及這些用戶來自哪些國家?此外還包含變現能力與留存率等指標,以及體驗內容的標題、描述或創作者等元資料。 我們將所有這些資料輸入基於 BERT 的 Transformer 架構,並在最後使用多層感知器(MLP)生成嵌入向量,這些嵌入向量便成為我們的「最終真相」。
另一項創新是我們的自建相似度搜尋系統。當使用者提出搜尋查詢時,我們會檢索出高度相關的嵌入向量,並進行排序以確保其與使用者需求相符,最後將結果回傳給使用者。
在進行這項技術工作時,您學到了哪些關鍵經驗?
每種語言都帶來獨特的挑戰。特別是在搜尋領域,我們必須理解世界各地用戶的搜尋意圖,才能向他們展示最相關的結果。我們必須掌握各種語言元素。例如,預訓練的 Transformer 模型對於理解日語的多種方言至關重要。
其次,搜尋查詢模式變化相當大,我們必須持續進化技術架構以跟上步伐。同時,我們需要向使用者說明平台上的功能,因為他們可能尚未察覺。例如,我們可以告訴使用者,搜尋功能支援自由式查詢(如賽車遊戲或熱門美食遊戲),且系統能理解人們的搜尋意圖並回傳適當的結果。
貴團隊最認同 Roblox 的哪項核心價值?
長遠規劃是我們團隊的核心精神,這也是我熱愛在 Roblox 工作的原因之一。
以我的團隊為例,我們的技術堆疊包含基於機器學習(ML)與自然語言處理(NLP)的搜尋系統——運用預訓練的大型模型實現語義搜尋、自動完成及拼寫修正。
我們在建構時便考量到可重複利用性,以滿足數千萬日活躍用戶進行各類搜尋的需求。這意味著我們可以接入不同類型的資料(例如,將體驗替換為虛擬角色道具),且僅需極少調整即可運作。
我們已將語義搜尋整合至體驗功能中,並將其分享給市集(Marketplace)等其他垂直領域,讓他們能直接採用現有的架構。雖然並非完全即插即用,但經過一些微調,我們就能將其適應於不同的使用情境。
對於 Roblox 和您的團隊未來的發展方向,最令您感到興奮的是什麼?
搜尋是使用者表達明確意圖的唯一管道。這意味著我們必須理解他們的需求,並提供最相關的結果。因此,致力於解析這些意圖,並在某些情況下甚至在使用者意識到之前,就向他們展示各種可能性,對我來說非常令人振奮。
無論身處何國,用戶提出任何問題,我們都能精準提供他們真正想要且最相關的內容。這能建立信任,進而提升用戶留存率。我非常樂於迎接這項挑戰,透過優化搜尋功能來建立信任,並協助 Roblox 實現「十億用戶」的目標。


