本發(fā)明涉及計(jì)算機(jī),尤其涉及一種基于大模型與對(duì)比學(xué)習(xí)的文章推薦方法。
背景技術(shù):
1、大模型是指參數(shù)規(guī)模大、計(jì)算結(jié)構(gòu)復(fù)雜的機(jī)器學(xué)習(xí)模型,通常由深度神經(jīng)網(wǎng)絡(luò)構(gòu)成,參數(shù)數(shù)量可達(dá)數(shù)十億甚至數(shù)千億,其設(shè)計(jì)目的是為了提高模型的表達(dá)能力和預(yù)測(cè)性能,能夠處理復(fù)雜任務(wù)和數(shù)據(jù);大模型通過(guò)訓(xùn)練海量數(shù)據(jù)來(lái)學(xué)習(xí)復(fù)雜的模式和特征,具有更強(qiáng)大的泛化能力,可以對(duì)未見(jiàn)過(guò)的數(shù)據(jù)做出準(zhǔn)確的預(yù)測(cè);而當(dāng)機(jī)器學(xué)習(xí)模型的訓(xùn)練數(shù)據(jù)和參數(shù)不斷擴(kuò)大直到達(dá)到一定的臨界規(guī)模后,其表現(xiàn)出的能夠從原始訓(xùn)練數(shù)據(jù)中自動(dòng)學(xué)習(xí)并發(fā)現(xiàn)新的、更高層次的特征和模式被稱(chēng)為“涌現(xiàn)能力”,具有涌現(xiàn)能力的機(jī)器學(xué)習(xí)模型被認(rèn)為是獨(dú)立意義上的大模型,這是大模型和小模型最大意義上的區(qū)別。
2、對(duì)比學(xué)習(xí)是一種機(jī)器學(xué)習(xí)方法,旨在通過(guò)比較相似和不相似的數(shù)據(jù)樣本來(lái)學(xué)習(xí)數(shù)據(jù)的有用表示,主要目的是讓模型學(xué)會(huì)將相似的樣本映射到相近的表示上,以捕捉不同數(shù)據(jù)點(diǎn)之間的基本結(jié)構(gòu)和關(guān)系;通常通過(guò)訓(xùn)練算法來(lái)預(yù)測(cè)兩個(gè)數(shù)據(jù)是否來(lái)自同一類(lèi)別;對(duì)比學(xué)習(xí)已經(jīng)在各種業(yè)務(wù)中得到了應(yīng)用,如圖像識(shí)別、自然語(yǔ)言處理和語(yǔ)音識(shí)別。
3、在論壇、新聞網(wǎng)站、微博、書(shū)吧等類(lèi)似形式的以閱讀文章為主的應(yīng)用環(huán)境中,提供有價(jià)值的文章給用戶(hù)閱讀;在早先的設(shè)計(jì)中,應(yīng)用一般采用分類(lèi)閱讀的方式,用戶(hù)通過(guò)選擇自己喜歡的分類(lèi)來(lái)查找自己想看的文章;近年來(lái)隨著機(jī)器學(xué)習(xí)的發(fā)展,一般應(yīng)用會(huì)根據(jù)用戶(hù)的喜好給用戶(hù)主動(dòng)推薦文章,這些用戶(hù)的喜好往往來(lái)源于用戶(hù)的閱讀列表,所以如何通過(guò)用戶(hù)的使用習(xí)慣,給用戶(hù)推薦最想要閱讀的文章,是文章閱讀應(yīng)用的一個(gè)核心業(yè)務(wù);現(xiàn)有的推薦算法中,因?yàn)槭褂脗鹘y(tǒng)機(jī)器學(xué)習(xí)方法,智能化不足,理解用戶(hù)的意圖不夠深刻,推薦的文章往往不足以滿(mǎn)足用戶(hù)的需求,長(zhǎng)此以往會(huì)導(dǎo)致用戶(hù)對(duì)平臺(tái)的粘度下降,使平臺(tái)喪失用戶(hù)活性,業(yè)務(wù)下滑。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中存在的缺點(diǎn),而提出的一種基于大模型與對(duì)比學(xué)習(xí)的文章推薦方法。
2、為實(shí)現(xiàn)上述目的,本發(fā)明采用了如下技術(shù)方案:
3、一種基于大模型與對(duì)比學(xué)習(xí)的文章推薦方法,包括以下步驟:
4、s1:統(tǒng)計(jì)用戶(hù)的點(diǎn)擊文章列表;
5、統(tǒng)計(jì)當(dāng)前閱讀應(yīng)用系統(tǒng)中包含的全部用戶(hù)的點(diǎn)擊文章列表,記全部用戶(hù)的數(shù)量為n,則n個(gè)用戶(hù)的點(diǎn)擊文章列表記為;
6、具體地,第i個(gè)用戶(hù)的點(diǎn)擊文章列表,其中,共j篇文章,表示第j篇文章,點(diǎn)擊文章列表中的文章順序?yàn)橛脩?hù)點(diǎn)擊文章的時(shí)間順序。
7、s2:生成文章摘要列表;
8、獲取點(diǎn)擊文章列表中的所有文章,在大模型中設(shè)置文章摘要的字?jǐn)?shù)區(qū)間u,大模型遍歷每篇文章,將每篇文章對(duì)應(yīng)生成字?jǐn)?shù)在u內(nèi)的文章摘要,并存入列表中,記為文章摘要列表,其中,共j篇文章摘要,表示第j篇文章摘要,文章摘要列表n中的文章摘要順序?qū)?yīng)點(diǎn)擊文章列表中的順序。
9、s3:構(gòu)建模型輸入數(shù)據(jù)對(duì);
10、根據(jù)每個(gè)用戶(hù)對(duì)應(yīng)的文章摘要列表生成模型輸入數(shù)據(jù)對(duì);
11、每個(gè)用戶(hù)共點(diǎn)擊j篇文章,對(duì)應(yīng)j篇文章摘要,根據(jù)用戶(hù)的點(diǎn)擊歷史構(gòu)建相應(yīng)的模型輸入數(shù)據(jù)對(duì);
12、具體地,生成的模型輸入數(shù)據(jù)對(duì)為:、、...,一個(gè)用戶(hù)對(duì)應(yīng)構(gòu)建j-2個(gè)模型輸入數(shù)據(jù)對(duì),則n個(gè)用戶(hù)生成n*(j-2)個(gè)模型輸入數(shù)據(jù)對(duì);
13、進(jìn)一步地,模型輸入數(shù)據(jù)對(duì)的前一部分即用戶(hù)歷史點(diǎn)擊文章摘要,為用戶(hù)塔的輸入,具體為;模型輸入數(shù)據(jù)對(duì)的后一部分即用戶(hù)下篇點(diǎn)擊文章摘要,為文章塔的輸入,具體為;其中,文章摘要為一個(gè)文本序列,由詞和子詞組成。
14、s4:劃分批次,進(jìn)行預(yù)處理和輸入準(zhǔn)備;
15、包括如下子步驟:
16、s41:劃分訓(xùn)練數(shù)據(jù)批次;
17、所述訓(xùn)練數(shù)據(jù)為模型輸入數(shù)據(jù)對(duì),將模型輸入數(shù)據(jù)對(duì)根據(jù)實(shí)際需求劃分為p個(gè)批次,每個(gè)批次中包含w個(gè)模型輸入數(shù)據(jù)對(duì);所述w為2的冪;
18、進(jìn)一步地,將同一用戶(hù)的模型輸入數(shù)據(jù)對(duì)分別劃分到p個(gè)批次中;
19、s42:數(shù)據(jù)預(yù)處理與輸入準(zhǔn)備;
20、包括如下子步驟:
21、s421:對(duì)模型輸入數(shù)據(jù)對(duì)進(jìn)行預(yù)處理;
22、按批次對(duì)模型輸入數(shù)據(jù)對(duì)進(jìn)行預(yù)處理,使用大模型將步驟s3中的用戶(hù)歷史點(diǎn)擊文章摘要轉(zhuǎn)換為embedding序列;使用tokenizer工具將步驟s3中的用戶(hù)下篇點(diǎn)擊文章摘要生成token序列;
23、所述大模型包括gpt、bert、t5、roberta?等深度學(xué)習(xí)模型;
24、用戶(hù)歷史點(diǎn)擊文章摘要中的每個(gè)詞或子詞通過(guò)大模型編碼后得到的一組嵌入向量,每個(gè)詞或子詞都對(duì)應(yīng)一個(gè)向量,這些向量所構(gòu)成的序列為embedding序列;
25、所述tokenizer工具包括bert分詞器或其他分詞工具;
26、所述token序列是指tokenizer工具將用戶(hù)下篇點(diǎn)擊文章摘要轉(zhuǎn)換為的一組整數(shù)索引序列;
27、s422:對(duì)預(yù)處理后的序列進(jìn)行輸入準(zhǔn)備;
28、通過(guò)映射層變換對(duì)embedding序列和token序列進(jìn)行轉(zhuǎn)換,使embedding序列和token序列具有相同的維度;
29、所述映射層包括全連接層、線性變換等。
30、s5:生成最優(yōu)模型;
31、包括如下子步驟:
32、s51:對(duì)用戶(hù)和文章進(jìn)行對(duì)比學(xué)習(xí);
33、將步驟s4中的embedding序列作為用戶(hù)transformer模型的輸入,輸出為用戶(hù)embedding;
34、將步驟s4中的token序列作為文章transformer模型的輸入,輸出為文章embedding;
35、所述用戶(hù)transformer模型、文章transformer模型為兩種獨(dú)立的transformer架構(gòu)模型;
36、通過(guò)以下公式計(jì)算對(duì)比損失:
37、;
38、其中,loss為對(duì)比損失、為一個(gè)批次中第i個(gè)用戶(hù)的用戶(hù)embedding、為一個(gè)批次中第i個(gè)用戶(hù)的文章embedding、s函數(shù)為兩個(gè)向量的距離計(jì)算函數(shù)、為第一個(gè)批次中第j個(gè)用戶(hù)的文章embedding、e為自然對(duì)數(shù);
39、s52:不斷更新模型中參數(shù),生成最優(yōu)模型;
40、重復(fù)步驟s4-s51,進(jìn)行迭代,不斷更新用戶(hù)transformer模型和文章transformer模型中神經(jīng)網(wǎng)絡(luò)的參數(shù),生成最優(yōu)模型。
41、s6:通過(guò)最優(yōu)模型進(jìn)行文章推薦;
42、第i個(gè)用戶(hù)的點(diǎn)擊文章列表,按照時(shí)間順序共點(diǎn)擊了j篇文章;
43、統(tǒng)計(jì)當(dāng)前閱讀應(yīng)用系統(tǒng)中內(nèi)全部文章,共k篇;
44、以作為文章塔的輸入,得到文章embedding,,共k個(gè);以作為用戶(hù)塔的輸入,得到用戶(hù)i的用戶(hù)embedding,即;
45、?與刨除第i個(gè)用戶(hù)的文章點(diǎn)擊列表中j篇文章embedding的向量列表;做向量距離計(jì)算得到:;共k-j個(gè)計(jì)算結(jié)果,計(jì)算結(jié)果按照距離從近到遠(yuǎn)排序,即為給第i個(gè)用戶(hù)推薦文章的排列順序。
46、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:
47、本發(fā)明提出的基于大模型與對(duì)比學(xué)習(xí)的文章推薦方法,使用大模型生成文章摘要,并以大模型生成的embedding作為用戶(hù)塔transformer神經(jīng)網(wǎng)絡(luò)的輸入;用戶(hù)瀏覽文章列表生成歷史記錄與下一篇點(diǎn)擊的多個(gè)數(shù)據(jù)對(duì),并以此數(shù)據(jù)對(duì)轉(zhuǎn)化的token序列作為模型的輸入;使用對(duì)比學(xué)習(xí)方法訓(xùn)練用戶(hù)塔和文章塔兩個(gè)transformer模型神經(jīng)網(wǎng)絡(luò);利用大模型的涌現(xiàn)能力處理數(shù)據(jù),結(jié)合對(duì)比學(xué)習(xí)方法,使用雙塔結(jié)構(gòu)訓(xùn)練兩個(gè)transformer模型神經(jīng)網(wǎng)絡(luò);把大模型的能力與深度神經(jīng)網(wǎng)絡(luò)結(jié)合使用在文章推薦業(yè)務(wù)中,獲得更好的效果;
48、本發(fā)明使用了現(xiàn)今最智能化的大模型系統(tǒng),由于大模型的涌現(xiàn)效應(yīng),使大模型的意圖理解和智能化比傳統(tǒng)方法有了巨大的提升;使用對(duì)比學(xué)習(xí)算法,結(jié)合大模型對(duì)用戶(hù)進(jìn)行推薦,結(jié)果更符合用戶(hù)想法,增加用戶(hù)粘性,提高用戶(hù)滿(mǎn)意度。