大語(yǔ)言模型在推薦系統(tǒng)的實(shí)踐應(yīng)用
一、背景和問(wèn)題
傳統(tǒng)的推薦模型網(wǎng)絡(luò)參數(shù)效果較小(不包括embedding參數(shù)),訓(xùn)練和推理的時(shí)間、空間開(kāi)銷較小,也能充分利用用戶-物品的協(xié)同信號(hào)。但是它的缺陷是只能利用數(shù)據(jù)集內(nèi)的知識(shí),難以應(yīng)用open domain 的知識(shí),缺乏此類語(yǔ)義信息和深度推理的能力。
大語(yǔ)言模型從這幾個(gè)角度來(lái)看,正好跟推薦模型有一定取長(zhǎng)補(bǔ)短的能力。它能夠引入外部知識(shí),能夠有跨域的能力,但是它沒(méi)有推薦場(chǎng)景下所需要的協(xié)同信號(hào),另外它的計(jì)算成本(不管是訓(xùn)練還是推理)都非常高。
本次報(bào)告會(huì)嘗試解答推薦模型和大模型如何取長(zhǎng)補(bǔ)短。具體分兩個(gè)角度:
- 在整個(gè)推薦流程中,可以在哪些地方運(yùn)用大模型?
- 如何運(yùn)用大模型?
本文視角是將大模型引入傳統(tǒng)的推薦流程來(lái)做一些輔助,當(dāng)然以 LLM 作為backbone 也是另外一個(gè)非常值得探索的方向。本次報(bào)告中關(guān)于現(xiàn)有工作的調(diào)研分析也可以從我們的綜述里找到:"How Can Recommender Systems Benefit from Large Language Models: A Survey"。
二、何處運(yùn)用大語(yǔ)言模型(Where)
首先來(lái)解答第一個(gè)問(wèn)題,在推薦系統(tǒng)流程中的何處運(yùn)用大語(yǔ)言模型。
傳統(tǒng)的推薦流程包括:數(shù)據(jù)采集,特征工程,特征編碼,打分排序,還有整個(gè)的流程控制。上圖中列出了近期(從2021年開(kāi)始)的將大語(yǔ)言模型用于推薦系統(tǒng)相關(guān)工作。下面我會(huì)在每個(gè)流程中選擇一個(gè)代表性工作進(jìn)行介紹,讓大家感受LLM在推薦流程中的作用。
特征工程主要聚焦于三方面:一是用戶畫像,是對(duì)于用戶側(cè)的理解;第二是物品畫像,是對(duì)于物品內(nèi)容的理解;第三是樣本的擴(kuò)充。已經(jīng)有不同工作用 LLM 來(lái)對(duì)它們進(jìn)行增強(qiáng)。
該工作(GENRE)在新聞推薦的場(chǎng)景下,用 LLM 構(gòu)造了三個(gè)不同的prompts,分別來(lái)進(jìn)行新聞?wù)母膶懀脩舢嬒竦臉?gòu)建,還有樣本增強(qiáng)。
首先可以看到它把新聞的title, abstract 還有category 當(dāng)作輸入,然后要求大語(yǔ)言模型來(lái)生成一個(gè)摘要,把這個(gè)摘要當(dāng)作這個(gè)新聞的 new feature輸入下游。
然后是用戶畫像,根據(jù)用戶過(guò)去觀看過(guò)的新聞的標(biāo)題,嘗試去問(wèn)大語(yǔ)言模型是否知道這個(gè)用戶的一些感興趣的topic,也就是用戶的喜好和他所在的位置。
另外,因?yàn)橛幸恍┯脩艨催^(guò)的新聞非常少,所以用大語(yǔ)言模型來(lái)做一些樣本的擴(kuò)充。這里是把用戶看過(guò)的一些新聞的category,還有 title 輸入到大語(yǔ)言模型里面去,希望大語(yǔ)言模型能夠根據(jù)他看過(guò)的這些新聞,生成出來(lái)一些用戶并沒(méi)有看過(guò),但可能感興趣的“偽新聞”,然后把這些“偽”交互數(shù)據(jù)也當(dāng)作訓(xùn)練集的一部分來(lái)進(jìn)行訓(xùn)練。
實(shí)驗(yàn)表明這些手段都可以增強(qiáng)原始推薦的效果。
第二部分是用語(yǔ)言模型來(lái)做特征編碼,豐富語(yǔ)義信息。這里的語(yǔ)言模型其實(shí)都不大,類似于 Bert ,因?yàn)樗獌?nèi)嵌進(jìn)推薦模型一起去訓(xùn)練和推理,在實(shí)時(shí)性要求比較高和海量訓(xùn)練樣本的情況下,語(yǔ)言模型的大小不會(huì)大。這里就聚焦在兩塊,一是如何用語(yǔ)言模型來(lái)豐富用戶特征的表征,二是如何用語(yǔ)言模型來(lái)豐富物品特征的表征。
U-BERT這個(gè)工作是用語(yǔ)言模型做用戶特征表示,把用戶寫過(guò)的 review 信息經(jīng)過(guò)一個(gè)類似 Bert 的結(jié)構(gòu)編碼出來(lái)。這個(gè)用戶的 encoder 里的另一塊輸入是用戶原始的 ID embedding,加上當(dāng)前推薦 domain 的 embedding 這兩部分,與用戶review信息的編碼一起形成用戶的個(gè)性化表征,然后送到下游的推薦任務(wù)里面去。
UniSRec這個(gè)工作使用語(yǔ)言模型做物品特征表示,把物品的 title 描述通過(guò)類似 Bert 的結(jié)構(gòu)編碼之后,得到物品文本信息的編碼。之后經(jīng)過(guò)一個(gè)預(yù)訓(xùn)練階段,通過(guò)構(gòu)建兩個(gè)對(duì)比學(xué)習(xí)任務(wù),將用戶-物品的序列信息加入到物品的文本表征中。
第一個(gè)對(duì)比任務(wù)是把所有的用戶,在不同場(chǎng)景下的不同類型的歷史行為(如瀏覽、點(diǎn)擊、下載等),全部拼成一個(gè)很長(zhǎng)的序列,然后在這個(gè)序列里面做類似于 next token prediction 的任務(wù);另一個(gè)對(duì)比任務(wù)就是sequence to sequence 的對(duì)比任務(wù),從一個(gè) sequence 里面通過(guò) mask 或者采樣的方式采樣出來(lái)多個(gè)sequences。如果兩個(gè) sequence 是從同一個(gè)原始 sequence 里構(gòu)造出來(lái)的,就是一對(duì)正例,否則就是負(fù)例。
通過(guò)這種預(yù)訓(xùn)練的方式,把序列信息和文本信息 encode 到一起,到了下游某一個(gè)具體場(chǎng)景做推薦的時(shí)候,做進(jìn)一步基于next item prediction的fine tuning。
打分和排序階段可以分成以下三種不同的任務(wù),第一種是直接給 item 來(lái)進(jìn)行打分;第二種是物品生成任務(wù),直接生成用戶感興趣的下一個(gè)物品或者物品列表;第三種混合任務(wù),用多任務(wù)的方法來(lái)建模。
這是一個(gè)發(fā)表在今年的 arxiv 上的工作,它是分別在三個(gè)不同的場(chǎng)景下直接用語(yǔ)言模型來(lái)進(jìn)行打分,三個(gè)場(chǎng)景分別是 Zero shot、Few shot和微調(diào)。
Zero shot 場(chǎng)景,構(gòu)造的prompt包括用戶的歷史行為包括觀看的電影名稱,題材和歷史打分。給出某一電影的名字和題材,詢問(wèn)大語(yǔ)言模型,用戶會(huì)給這部電影打多少分。
Few shot跟 Zero shot 形式略有不同,但大體思想一樣,只不過(guò)是給出了一些打分的例子,把這些question和answer的pair也注入到prompt中去。
第三個(gè)場(chǎng)景就是微調(diào)的場(chǎng)景,不僅把用戶-電影的交互數(shù)據(jù)當(dāng)作prompt的一部分,而且通過(guò)實(shí)際分?jǐn)?shù)和預(yù)測(cè)分?jǐn)?shù)的殘差去更新模型。這個(gè)工作提出了利用多任務(wù)的架構(gòu),一邊做回歸任務(wù),一邊是做多分類的任務(wù),然后這兩個(gè)loss合并后更新模型。在實(shí)驗(yàn)里面看到微調(diào)的方法比 Zero shot 和Few shot 效果要好很多。
下面一個(gè)工作是直接進(jìn)行物品生成推薦。它把整個(gè)推薦任務(wù)拆成了兩部分,第一部分是來(lái)做用戶畫像的生成,把用戶所有看過(guò)的電影全部輸入當(dāng)作input,然后 output 是問(wèn)這個(gè)用戶喜歡什么類型的電影;第二部分把第一部分的用戶畫像當(dāng)作 prompt 的一部分輸進(jìn)去,同時(shí)把歷史交互過(guò)的電影和待推薦候選集也輸入給大語(yǔ)言模型,用大語(yǔ)言模型來(lái)生成推薦列表。
大家可以思考一下為什么要把看似是一體的推薦任務(wù)拆成兩部分?其實(shí)一個(gè)原因是因?yàn)橥ㄟ^(guò)這種拆解能夠把它認(rèn)為推薦系統(tǒng)里面最重要的一部分提示大語(yǔ)言模型。用LLM進(jìn)行一步到位的推薦效果很有可能是不好的,因此用比較直接的方式來(lái)提示大語(yǔ)言模型來(lái)分步進(jìn)行。第一步把用戶畫像輸出來(lái),然后顯式地輸入到第二步的商品推薦的 prompt 里面去,這樣可能會(huì)達(dá)到更好的效果。這也提供了一個(gè)LLM做推薦的思路,有點(diǎn)類似于思維鏈。做推薦不一定要一步到位,因?yàn)橥扑]的過(guò)程還是比較復(fù)雜的,可以用人為的經(jīng)驗(yàn)來(lái)設(shè)計(jì)拆解成多步。
拆解成多步帶來(lái)的弊端就是對(duì)大語(yǔ)言模型的請(qǐng)求量增加了,本來(lái)請(qǐng)求一次,現(xiàn)在變成請(qǐng)求兩次,未來(lái)還可能請(qǐng)求多次。
下一個(gè)工作是P5,其實(shí)跟 M6-Rec 相似,里面具體的技術(shù)細(xì)節(jié)不一樣,但是想做的事情其實(shí)是一樣的,用一個(gè)統(tǒng)一的大語(yǔ)言模型在不同的推薦任務(wù)上構(gòu)造不同的prompt,然后用SFT 來(lái)進(jìn)行不同下游任務(wù)的微調(diào)。
谷歌提出的工作是把大語(yǔ)言模型當(dāng)作一個(gè)流程進(jìn)行對(duì)話式推薦的框架。核心組件在 Dialog manager 這里,用一個(gè)大語(yǔ)言模型來(lái)調(diào)用其他的模塊,這里面可能有ranker,可能用一個(gè)LLM來(lái)構(gòu)造一個(gè) user simulator或其他用戶畫像的構(gòu)建,其他的模塊可以用大語(yǔ)言模型,也可不用大語(yǔ)言模型。它的工作就是構(gòu)造了這樣一個(gè)流程和框架,用大語(yǔ)言模型作為核心調(diào)度來(lái)解一個(gè)比較復(fù)雜的對(duì)話式推薦任務(wù)。
通過(guò)這一章節(jié)的介紹可以看到,大語(yǔ)言模型在推薦的各個(gè)階段有一些工作,比如特征工程如何構(gòu)造,如何豐富 user 和item 特征,構(gòu)造數(shù)據(jù);還有 feature encoding也可以用語(yǔ)言模型,雖然現(xiàn)階段還沒(méi)用到很大的語(yǔ)言模型強(qiáng)化表達(dá);另外,在打分模塊里可以用直接打分或者生成式來(lái)推薦,或者是一種混合式的任務(wù);最后,還可以把大語(yǔ)言模型當(dāng)做一個(gè)調(diào)度器來(lái)進(jìn)行調(diào)度。
三、如何運(yùn)用大語(yǔ)言模型(How)
接下來(lái)分享如何運(yùn)用大語(yǔ)言模型。
我們對(duì)現(xiàn)有基于語(yǔ)言模型的推薦工作進(jìn)行了分類(數(shù)據(jù)截至6月底,后面會(huì)持續(xù)更新)。這里的x 軸表示在訓(xùn)練階段大語(yǔ)言模型是否經(jīng)過(guò)了微調(diào),左側(cè)是大語(yǔ)言模型不需要微調(diào)的工作,右側(cè)是需要微調(diào)的。y 軸是推理階段是否完全用大語(yǔ)言模型、拋棄了傳統(tǒng)推薦模型。在y 軸的上半部分是依然需要推薦模型來(lái)進(jìn)行輔助,下半部分是完全把推薦模型摒棄掉,用大語(yǔ)言模型來(lái)搞定推薦系統(tǒng)的推理。這里的顏色代表每篇 paper 里面對(duì)比的 baseline 是什么?顏色越冷,說(shuō)明能夠擊敗的 baseline 越弱。顏色越暖,說(shuō)明能夠擊敗的 baseline 越強(qiáng)。
這里可以看到第三象限的顏色是比較冷的,第三象限是訓(xùn)練階段LLM不微調(diào)、推理階段不用推薦模型,把LLM當(dāng)作API去調(diào)用,完全走 prompt 的路線,從模型的名字可以看出來(lái)有很多帶有ChatGPT 或者 GPT 這種單詞,它們的效果其實(shí)是有待提升的,效果要弱于其他三個(gè)象限的工作。X軸左側(cè)的模型大小普遍是比較大的,左側(cè)的工作中LLM是不微調(diào)而直接當(dāng)作API來(lái)調(diào)用的,所以可以用一些比較大的模型來(lái)做,一旦涉及到大模型微調(diào)訓(xùn)練,因?yàn)橘Y源的原因模型瞬間就小下去了。
從時(shí)間來(lái)看,第一象限實(shí)際上就是很多年前已經(jīng)開(kāi)始做的,用 Bert 來(lái)做一些 user 和item 的encoding。最近 ChatGPT 出來(lái)之后有很多的工作直接來(lái)探索怎么用 ChatGPT 來(lái)做推薦。一些探索性的工作直接從第一象限插到了第三象限,但是它的效果是有待提升的。之后出現(xiàn)了兩個(gè)明顯的趨勢(shì),其核心就是既然直接用大語(yǔ)言模型無(wú)法做好推薦,那就想辦法把推薦的信號(hào)加進(jìn)來(lái)。第一個(gè)趨勢(shì)是大語(yǔ)言模型依然不微調(diào),通過(guò)模型的方式來(lái)進(jìn)行補(bǔ)救,加入了推薦模型,主要的工作在第二象限;另一個(gè)趨勢(shì)是在第四象限,認(rèn)為大語(yǔ)言模型單獨(dú)可以做推薦,把推薦的信號(hào)加進(jìn)去做微調(diào)。也許未來(lái)這兩個(gè)路線又可以重新回歸到第一個(gè)象限。這個(gè)圖是嘗試把現(xiàn)在 基于LLM的推薦模型 進(jìn)行分類,后面也會(huì)持續(xù)更新該工作。當(dāng)前survey比較偏應(yīng)用視角,大家也可以關(guān)注下其它偏技術(shù)視角的工作。
介紹兩個(gè)本團(tuán)隊(duì)做的工作,也是比較初步的探索。上圖的工作屬于第二象限,用大語(yǔ)言模型做API,不微調(diào)大語(yǔ)言模型,最終的推薦還是由傳統(tǒng)的推薦模型來(lái)做。一句話概括這個(gè)工作就是用大語(yǔ)言模型來(lái)加強(qiáng)用戶畫像和物品畫像的生成。
推薦系統(tǒng)是由封閉的訓(xùn)練集訓(xùn)練得到,相當(dāng)于在一個(gè)小房子里;雖然多場(chǎng)景跨域推薦有一定遷移能力,但是還是相當(dāng)于封閉在一個(gè)別墅中的多個(gè)小房子里。我們依然需要一條路來(lái)聯(lián)通這棟別墅和外界。而大語(yǔ)言模型具有比較強(qiáng)的推理能力和對(duì)于世界知識(shí)的建模能力,非常適合當(dāng)作聯(lián)通小別墅和外部世界的路,這條路在這個(gè)工作里就是來(lái)做用戶畫像和物品畫像。但如果直接用大語(yǔ)言模型,不加任何引導(dǎo)還是有問(wèn)題的,因?yàn)橛脩舻钠帽容^復(fù)雜且多面,這個(gè)世界的知識(shí)也是海量的。對(duì)于一些數(shù)據(jù)集,用戶 feature 和物品 feature 不那么豐富的時(shí)候,語(yǔ)言模型可以補(bǔ)充很多信息,但依然會(huì)帶來(lái)很多噪音。
舉例來(lái)說(shuō),之前介紹過(guò)做用戶畫像的工作生成的兩個(gè) feature :一是用戶的興趣;另一個(gè)是用戶地域。如果我們要做電影推薦,用戶興趣是跟電影推薦相關(guān)的,但是用戶地域信息可能跟這個(gè)任務(wù)沒(méi)有多大關(guān)系,甚至有可能是噪音信息,那么對(duì)于這個(gè) user feature 可能就沒(méi)有必要生成。
所以本團(tuán)隊(duì)提出來(lái)用LLM生成用戶畫像和物品畫像,需要構(gòu)造關(guān)鍵子因素,需要LLM來(lái)幫我們生成一些用戶畫像和物品畫像要聚焦在在這些關(guān)鍵子因素上,不要偏離得太遠(yuǎn)。這個(gè)關(guān)鍵子因素是跟推薦場(chǎng)景相關(guān)的,對(duì)于電影推薦、商品推薦和視頻推薦,關(guān)鍵子因素是不同的。
接下來(lái)的問(wèn)題就變成了如何構(gòu)造關(guān)鍵子因素。一是可以人工指定關(guān)鍵子因素,但我們也發(fā)現(xiàn)了另外一種比較自動(dòng)的方法,就是去問(wèn)大語(yǔ)言模型。比如一個(gè)電影推薦場(chǎng)景,能否告訴我 10 個(gè)最重要的影響推薦的因素是什么,feature 是什么,大語(yǔ)言模型可以告訴我是題材、演員、導(dǎo)演等等。換一個(gè)其它的推薦場(chǎng)景,大語(yǔ)言模型依然可以輸出,人工再檢查一遍,查漏補(bǔ)缺把關(guān)鍵的子因素定下來(lái),然后把這些關(guān)鍵的子因素輸回到下一步 user feature 和 item feature 的prompt 里面去。
把不同的 factor 輸進(jìn)去之后,prompt 就會(huì)引導(dǎo)大語(yǔ)言模型,不僅要擴(kuò)展出我需要的信息,還要盡量focus 在現(xiàn)在需要的電影推薦場(chǎng)景。那么大語(yǔ)言模型的輸出就會(huì)比較聚焦在這里。item也是同樣的,通過(guò)問(wèn)問(wèn)題,比如告訴我用戶的興趣是什么。這個(gè)問(wèn)題是很 general 的,把這個(gè)問(wèn)題分解到多個(gè)關(guān)鍵子因素上去,使得回答能夠更加聚焦在domain specific 的關(guān)鍵子問(wèn)題上面。
第一步先構(gòu)造這些關(guān)鍵子因素,并將它們加入構(gòu)造用戶畫像和物品畫像的prompt中,輸入大語(yǔ)言模型,得到一些用戶和物品的畫像信息,輸出到 knowledge encoder 里面去,這里可以用一些相對(duì)不那么大的模型去進(jìn)行encode, 得到關(guān)于用戶和物品的語(yǔ)義表達(dá)。最終希望把這兩個(gè)表達(dá)當(dāng)作兩組額外的 feature 加到傳統(tǒng)的推薦模型里來(lái),這個(gè)傳統(tǒng)的推薦模型可以是任意的模型。
從工業(yè)視角出發(fā),我們覺(jué)得這是一個(gè)可上線的方案。因?yàn)榈谝浑A段可以放在離線來(lái)生成,可以把用戶的長(zhǎng)期行為輸入LLM生成用戶畫像,這個(gè)過(guò)程比較耗時(shí)、耗資源,可以一周跑一次,看團(tuán)隊(duì)的資源情況。將生成的用戶畫像和物品畫像的文本存在內(nèi)存數(shù)據(jù)庫(kù)中。甚至,我們可以將Reasoning Augmented Vector和Fact Augmented Vector存下來(lái),就更節(jié)省計(jì)算資源,這兩個(gè)向量輸入后端的推薦模型。這個(gè)工作已經(jīng)公開(kāi)在ArXiv上,該版本里我們只做了一個(gè)公開(kāi)數(shù)據(jù)集的實(shí)驗(yàn),現(xiàn)在也在做更多的數(shù)據(jù)集來(lái)進(jìn)行下一個(gè)版本的補(bǔ)充。可以看到這個(gè)用戶畫像和物品畫像的生成過(guò)程作為一個(gè)通用模塊,可以作用在很多不同的 backbone 上,加入了k AR 模塊之后, AUC 和LogLoss的提升還是非常明顯的。
對(duì)于可落地性,基于大語(yǔ)言模型推理生成可以放到離線來(lái)做,如果將LLM當(dāng)作API去調(diào)用,花費(fèi)時(shí)間較多,但是如果將LLM生成的用戶畫像和物品畫像經(jīng)過(guò)編碼之后的向量存入數(shù)據(jù)庫(kù)中,并在推理的適合實(shí)時(shí)去取,時(shí)間復(fù)雜度會(huì)大大降低。我們也和其它一些預(yù)訓(xùn)練模型進(jìn)行了比較,我們的效果也是比較好的。
我們還做了一組ablation study,同時(shí)對(duì)用戶和物品進(jìn)行特征增強(qiáng),或者只做其中一邊,baseline 是完全不做,可以看到呈階梯式的上升。如果用戶畫像和物品畫像只能做一個(gè),那么增強(qiáng)用戶側(cè)特征的效果好于物品側(cè),兩側(cè)都做的效果最好。
總結(jié)一下這項(xiàng)工作,把大語(yǔ)言模型當(dāng)作用戶畫像和商品畫像的補(bǔ)充,但是如果向LLM問(wèn)比較general、na?ve的問(wèn)題,效果并不好,而是需要構(gòu)造一些關(guān)鍵子因素,讓補(bǔ)充出來(lái)的文本更加適配當(dāng)前的推薦場(chǎng)景。生成的文本信息經(jīng)過(guò)text encoder轉(zhuǎn)化成向量,然后再經(jīng)過(guò) knowledge Adapter,將剛才生成的向量從語(yǔ)義空間映射到推薦空間。
第二個(gè)工作叫CTRL,位于第一個(gè)象限。用語(yǔ)言模型和推薦模型協(xié)同,并在訓(xùn)練階段也會(huì)去微調(diào)語(yǔ)言模型?,F(xiàn)階段語(yǔ)言模型并不是很大,我們現(xiàn)在也在嘗試用更大的語(yǔ)言模型。
這里把推薦系統(tǒng)的信息看作兩個(gè)模態(tài),第一個(gè)是表格模態(tài)或者協(xié)同模態(tài)(傳統(tǒng)的推薦模型聚焦于這個(gè)模態(tài)),第二個(gè)是本文模態(tài)(大語(yǔ)言模型聚焦于這個(gè)模態(tài)),這兩個(gè)模態(tài)可以用對(duì)齊方進(jìn)行模態(tài)對(duì)齊,提升效果。首先我們把通過(guò)構(gòu)造不同的prompt來(lái)將協(xié)同模態(tài)數(shù)據(jù)轉(zhuǎn)化為本文數(shù)據(jù)模態(tài)。比如一條樣本是:一個(gè)年齡為 18 歲的女性,是一名醫(yī)生,過(guò)去看過(guò)某些電影,然后判斷另外一部電影她是否會(huì)觀看。把這樣一個(gè)推薦問(wèn)題轉(zhuǎn)化成一個(gè)文本描述,將協(xié)同模態(tài)和文本模態(tài)輸入到兩個(gè)不同的模型里面去,一個(gè)是傳統(tǒng)的推薦模型,另外一個(gè)是文本模型(我們用BERT、ChatGLM進(jìn)行嘗試)。把文本信息輸進(jìn)去之后,通過(guò)一個(gè)語(yǔ)言模型encoder將訓(xùn)練樣本的文本編碼成向量,然后通過(guò)細(xì)粒度對(duì)比學(xué)習(xí)的方法將兩個(gè)模態(tài)編碼的信息進(jìn)行對(duì)比。期望通過(guò)這種方式把預(yù)訓(xùn)練語(yǔ)言模型里的一些世界知識(shí)和語(yǔ)義信息,傳遞到協(xié)同過(guò)濾模型里的 embedding 里面去。
進(jìn)行對(duì)比學(xué)習(xí)后,我們進(jìn)入下一階段,單獨(dú)用協(xié)同模型,在一個(gè)特定的場(chǎng)景下做SFT,這樣協(xié)同模型中embedding 里面已經(jīng)有了一些語(yǔ)義信息,再把這些推薦的信號(hào)加進(jìn)去,期望能夠取得一個(gè)比較好的效果。
我們?cè)谌齻€(gè)不同的數(shù)據(jù)集上做了實(shí)驗(yàn),包括MovieLens、Amazon,還有阿里巴巴。兩組對(duì)比的baseline模型,一個(gè)是完全用協(xié)同模型,一個(gè)完全用語(yǔ)義模型。我們的模型精度比這兩組baseline都有比較明顯的提升。另一方面,由于我們?cè)谕评淼臅r(shí)候只用協(xié)同模型,因此推理時(shí)延并不增加。我們?cè)谌A為的一個(gè)工業(yè)數(shù)據(jù)集上進(jìn)行了離線實(shí)驗(yàn),也得到一個(gè)比較好的效果,現(xiàn)在正在做一些線上的部署。
四、挑戰(zhàn)和展望
最后來(lái)看一下工業(yè)應(yīng)用場(chǎng)景下的挑戰(zhàn),以及對(duì)未來(lái)工作的展望。
第一個(gè)大的挑戰(zhàn)是訓(xùn)練效率??赡艿慕鉀Q方案是一些參數(shù)的高效微調(diào),以及降低更新頻率(利用推薦的協(xié)同模型來(lái)提升實(shí)時(shí)性)。
第二個(gè)問(wèn)題是推理時(shí)延過(guò)高,也正是因?yàn)檫@個(gè)原因,前面介紹的兩個(gè)工作沒(méi)有在推理階段引入LLM,而是把它的一部分結(jié)果進(jìn)行預(yù)存,或者是用類似于蒸餾或者對(duì)比的方法,避免在推理階段引入LLM。也可以用量化、蒸餾的方法來(lái)進(jìn)行模型小型化部署。另外,可以避免把它用來(lái)做排序或者打分,僅作為特征工程或編碼,避免直接在線上做模型推理。
第三個(gè)挑戰(zhàn)是推薦領(lǐng)域的長(zhǎng)文本建?!,F(xiàn)在的解決方案是前面接一個(gè)召回模型或者粗排模型,把候選集聚焦到只有 10 個(gè)、 20 個(gè)或者 100 個(gè)范圍內(nèi),再送入LLM。未來(lái)也有可能處理更長(zhǎng)的文本這樣可以面向更大的候選集的直接排序或打分。
最后,在推薦系統(tǒng)里面ID 類的特征依然是非常重要的?,F(xiàn)在對(duì)于語(yǔ)言模型來(lái)說(shuō), ID 類特征的建模實(shí)際上做得并不是很好。有一篇paper做了一個(gè)探索,根據(jù)語(yǔ)義信息把 物品進(jìn)行聚類,然后根據(jù)語(yǔ)義聚類的結(jié)果進(jìn)行重新編碼,這是一個(gè)非常好的思路。
回顧一下全文,從應(yīng)用視角出發(fā),以推薦系統(tǒng)為核心,分析了兩個(gè)核心問(wèn)題:整個(gè)推薦流程里面哪里可以用到大語(yǔ)言模型,大語(yǔ)言模型與推薦模型是如何配合的。
展望未來(lái)的發(fā)展,第一個(gè)趨勢(shì)是LLM已經(jīng)從傳統(tǒng)的編碼器和打分器在逐步外延,外延到特征工程、一些神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì),甚至是流程的控制。第二個(gè)趨勢(shì)是純用 LLM 不 微調(diào)從現(xiàn)在的實(shí)驗(yàn)結(jié)果來(lái)看效果不佳,如果要達(dá)到一個(gè)比較好的推薦效果,有兩條路,一是微調(diào)大語(yǔ)言模型,另一個(gè)是用傳統(tǒng)語(yǔ)言模型來(lái)進(jìn)行融合。
未來(lái)大語(yǔ)言模型用在推薦里有如下幾個(gè)可以發(fā)力的場(chǎng)景:
第一個(gè)就是冷啟動(dòng)和長(zhǎng)尾問(wèn)題;
第二個(gè)是引入外部知識(shí),現(xiàn)在引入外部知識(shí)的手段還比較粗糙,就是把大語(yǔ)言模型拿來(lái)生成,其實(shí)純用語(yǔ)言模型也沒(méi)有很多外部知識(shí)。相反,語(yǔ)言模型也需要外部的知識(shí),比如它需要集成一些檢索能力,需要集成一些工具調(diào)用的能力?,F(xiàn)在我們只用了基礎(chǔ)的語(yǔ)言模型,并沒(méi)有用它的檢索和工具調(diào)用的能力。未來(lái)能夠更加高效地、更加完備地引入更多的外部知識(shí),通過(guò)檢索或者工具的方式,也是提升推薦體驗(yàn)的一個(gè)方向。
第三個(gè)改善交互體驗(yàn),讓用戶可以主動(dòng)通過(guò)交互時(shí)界面自由地描述其需求,從而實(shí)現(xiàn)精準(zhǔn)推薦。
五、Q&A
Q1:預(yù)訓(xùn)練 LLM 需要大規(guī)模語(yǔ)料,推薦系統(tǒng)的公開(kāi)數(shù)據(jù)集可以支撐 LLM 的預(yù)訓(xùn)練嗎?
A1:現(xiàn)在來(lái)看,訓(xùn)練 LLM 需要海量語(yǔ)料,公開(kāi)數(shù)據(jù)集從量級(jí)來(lái)說(shuō)不可能支撐 LLM 來(lái)進(jìn)行預(yù)訓(xùn)練,比較實(shí)現(xiàn)的方案是基于一個(gè)已經(jīng)預(yù)訓(xùn)練好的LLM,用公開(kāi)數(shù)據(jù)集做第一階段的SFT,之后可以基于我們自己的推薦場(chǎng)景來(lái)做第二階段的SFT。
Q2:圖與語(yǔ)言模型做推薦本質(zhì)上區(qū)別是什么?
A2:圖更多強(qiáng)調(diào)的是不同節(jié)點(diǎn)之間的結(jié)構(gòu),但是它對(duì)外部知識(shí)的利用還是不充分的。比如構(gòu)造一個(gè)知識(shí)圖譜,也是某一個(gè)垂域的知識(shí)圖譜,不可能構(gòu)造一個(gè)世界級(jí)別的知識(shí)圖譜,但是語(yǔ)言模型在某種程度上可以把世界知識(shí)構(gòu)建進(jìn)來(lái)。