日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

CRSLab:可能是最适合你的对话推荐系统开源库

發布時間:2024/10/8 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CRSLab:可能是最适合你的对话推荐系统开源库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

隨著對話系統和推薦系統的快速發展,新方向——對話推薦系統(Conversational Recommender System,簡稱CRS)也開始了蓬勃發展,其關注于如何通過基于自然語言的對話來獲得用戶的意圖和偏好,以實現精準推薦。但是現有的CRS相關數據集和模型在建模場景、最終目標和使用技術等方面存在一定差異,使得研究者們很難對這些模型進行統一的評測對比。對于科研新手來說,更是難以在這些模型和數據集中抉擇并快速搭建CRS系統。

為幫助各位道友“快樂+快速”上手研究對話推薦任務,我們(中國人民大學AI BOX團隊)推出了開源項目CRSLab ——一個用于構建對話推薦系統(CRS)的開源工具包,在這里我們致力于幫您實現一鍵復現,快速開發,自動評測的一條龍服務,相關代碼和對應論文目前也已經開源。

目前為止,我們支持以下幾大功能,還有更多好玩的功能正在路上!

  • 便捷的使用方法:新手別害怕,CRSLab提供了簡單而靈活的配置,快速調用分分鐘的事;

  • 6個數據集和18個模型:各種數據預處理已幫您完成,各種新模型也適配完畢,任君取用;

  • 多樣的評測方式:各個自動的評測指標都已經幫您實現,甚至還有人機交互的接口哦;

  • 通用和可擴展的框架:還不滿意?框架給您搭好,函數接口給您安排上,想怎么玩就怎么玩;

論文地址:https://arxiv.org/pdf/2101.00939.pdf

項目GitHub地址:https://github.com/RUCAIBox/CRSLab

懶人一鍵安裝:pip install crslab

特性介紹

CRSLab完全基于 PyTorch 實現、主要面向研究者使用,其具有以下四大特性。

通用和可擴展的結構

我們設計了通用和可擴展的結構來統一各種對話推薦數據集和模型,并集成了多種內置接口和函數以便于快速開發。其具體框架如下所示:?

?圖片: CRSLab 的總體架構

其中Configuration模塊提供了針對用戶的接口,用戶可以通過簡單的命令行操作或修改給出的config文件,即可實現快速調用不同的CRS模型!Data,Model和Evaluator模塊中集成了多個現有的數據集,模型和評測方案,省去了用戶自行復現的時間。Utilities中集成了多個常用的功能函數,可以幫助用戶快速從新搭建一個新的對話推薦系統!

全面的基準模型和數據集

在CRSLab中,我們集成了常用的 6 個數據集和 18 個模型。這6個數據集均為常用的人工標注數據集,但是其在任務定義、領域等方面存在差異。我們對其進行了預處理以得到統一的格式,并努力使其支持更多的先進模型,這些預處理包括:推薦商品抽取、實體鏈接、BPE分詞等。我們提供了預處理后數據的下載鏈接以方便用戶使用,如下為這些數據集的統計數據:

DatasetDialogsUtterancesDomainsTask DefinitionEntity KGWord KG
ReDial10,006182,150Movie--DBpediaConceptNet
TG-ReDial10,000129,392MovieTopic PredictionCN-DBpediaHowNet
GoRecDial9,125170,904MovieAction PredictionDBpediaConceptNet
DuRecDial10,200156,000Movie, MusicGoal PlanningCN-DBpediaHowNet
INSPIRED1,00135,811MovieStrategy PredictionDBpediaConceptNet
OpenDialKG13,80291,209Movie, BookPath GenerationDBpediaConceptNet

我們將對話推薦任務主要拆分成三個子任務:推薦任務(生成推薦的商品),對話任務(生成對話的回復)和策略任務(規劃對話推薦的策略)。其中所有的對話推薦系統都具有對話和推薦任務,它們是對話推薦系統的核心功能,而策略任務是一個輔助任務,其致力于更好的控制對話推薦系統,在不同的模型中的實現也可能不同(如TG-ReDial采用一個主題預測模型,DuRecDial中采用一個對話規劃模型等)

在CRSLab中,我們實現了18 個模型,覆蓋CRS、推薦、對話和策略模型四種類別,其中CRS模型是指同時對推薦和對話任務(甚至策略任務)進行建模的融合模型,其可以利用這些任務以相互增強彼此的表現;而其他模型則只針對于某一個子任務。這些模型中還包括一些已經在CRS任務上表現較好的前沿模型,如圖神經網絡(GCN)和預訓練模型(BERT 和 GPT-2)。下表為這些模型的相關信息:

類別模型Graph Neural NetworkPre-training Model
CRS 模型ReDial
KBRD
KGSF
TG-ReDial
×


×
×
×
×
推薦模型Popularity
GRU4Rec
SASRec
TextCNN
R-GCN
BERT
×
×
×
×

×
×
×
×
×
×
對話模型HERD
Transformer
GPT-2
×
×
×
×
×
策略模型PMI
MGCG
Conv-BERT
Topic-BERT
Profile-BERT
×
×
×
×
×
×
×


多樣的標準評測

我們支持一系列被廣泛使用的評估方式來測試和比較不同的 CRS。針對對話推薦中包含的各個子任務(推薦,對話,策略),我們分別設計了對應的評測方法,供直接用戶使用,如下表所示:

類別指標
推薦任務Hit@{1, 10, 50}, MRR@{1, 10, 50}, NDCG@{1, 10, 50}
對話任務PPL, BLEU-{1, 2, 3, 4}, Embedding Average/Extreme/Greedy, Distinct-{1, 2, 3, 4}
策略任務Accuracy, Hit@{1,3,5}

這里的推薦任務的若干指標均為常用的基于排序的指標;對話任務的指標包括評估概率分布(PPL),關聯度(BLEU,Embedding)和多樣性(Distinct)的指標;由于對話推薦系統中的策略往往不盡相同,這里我們采用常用的Accuracy和Hit來進行評估。

此外,我們還提供了人機交互接口,用戶可以直接通過特定的接口函數和命令和自己搭建的對話推薦系統進行交互,進而分析其中的的bad case等,也可以幫助初學者掌握系統的運行流程。

便捷的使用方法

我們為新手提供了簡單而靈活的配置,以快速啟動集成在 CRSLab 中的模型。對于已經集成的模型和數據集,可以直接使用命令行進行調用,使用以下命令,系統將依次完成數據的預處理,以及各模塊的訓練、驗證和測試,并得到指定的模型評測結果:

python?run_crslab.py?--config?config/kgsf/redial.yaml

如果您希望保存數據預處理結果與模型訓練結果,可以使用如下命令:

python?run_crslab.py?--config?config/kgsf/redial.yaml?--save_data?--save_system

總的來說,run_crslab.py有如下參數可供調用:

  • --config?或?-c:配置文件的相對路徑,以指定運行的模型與數據集。

  • --save_data?或?-sd:保存預處理的數據。

  • --restore_data?或?-rd:從文件讀取預處理的數據。

  • --save_system?或?-ss:保存訓練好的 CRS 系統。

  • --restore_system?或?-rs:從文件載入提前訓練好的系統。

  • --debug?或?-d:用驗證集代替訓練集以方便調試。

  • --interact?或?-i:與你的系統進行交互的對話。

如果希望調節模型或數據集的參數設置,可以直接對yaml文件進行更改,其提供了相比較于命令行更方便的編輯功能,具體的各項參數定義在文檔中已經給出。

安裝與使用

CRSLab 可以在以下幾種系統上運行:

  • Linux

  • Windows 10

  • macOS X

CRSLab 需要在 Python 3.6 或更高的環境下運行。CRSLab 要求 torch 版本在 1.4.0 及以上,如果用戶想在 GPU 上運行 CRSLab,請確保你的 CUDA 版本或者 CUDAToolkit 版本在 9.2 及以上。

提醒:因為用戶可能會因為未正確配置PyTorch,PyTorch Geometric等環境而導致無法使用,這里我們提供了詳細的從零開始的安裝流程,確保大家能夠順利安裝。

安裝 PyTorch

使用 PyTorch 本地安裝命令或者先前版本安裝命令安裝 PyTorch,比如在 Linux 和 Windows 下:

#?CUDA?10.1 pip?install?torch==1.6.0+cu101?torchvision==0.7.0+cu101?-f?https://download.pytorch.org/whl/torch_stable.html#?CPU?only pip?install?torch==1.6.0+cpu?torchvision==0.7.0+cpu?-f?https://download.pytorch.org/whl/torch_stable.html

安裝完成后,如果你想在 GPU 上運行 CRSLab,請確保如下命令輸出True:

$?python?-c?"import?torch;?print(torch.cuda.is_available())" >>>?True

安裝 PyTorch Geometric

確保安裝的 PyTorch 版本至少為 1.4.0:

$?python?-c?"import?torch;?print(torch.__version__)" >>>?1.6.0

找到安裝好的 PyTorch 對應的 CUDA 版本:

$?python?-c?"import?torch;?print(torch.version.cuda)" >>>?10.1

安裝相關的包:

pip?install?torch-scatter?-f?https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html pip?install?torch-sparse?-f?https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html pip?install?torch-cluster?-f?https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html pip?install?torch-spline-conv?-f?https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html pip?install?torch-geometric

其中${CUDA}和${TORCH}應使用確定的 CUDA 版本(cpu,cu92,cu101,cu102,cu110)和 PyTorch 版本(1.4.0,1.5.0,1.6.0,1.7.0)來分別替換。比如,對于 PyTorch 1.6.0 和 CUDA 10.1,輸入:

pip?install?torch-scatter?-f?https://pytorch-geometric.com/whl/torch-1.6.0+cu101.html pip?install?torch-sparse?-f?https://pytorch-geometric.com/whl/torch-1.6.0+cu101.html pip?install?torch-cluster?-f?https://pytorch-geometric.com/whl/torch-1.6.0+cu101.html pip?install?torch-spline-conv?-f?https://pytorch-geometric.com/whl/torch-1.6.0+cu101.html pip?install?torch-geometric

安裝 CRSLab

git?clone?https://github.com/RUCAIBox/CRSLab?&&?cd?CRSLab pip?install?-e?.

快速測試

從 GitHub 下載 CRSLab 后,可以使用提供的腳本進行簡單的測試:

python?run_crslab.py?--config?config/kgsf/redial.yaml

系統將依次完成數據的預處理,以及各模塊的訓練、驗證和測試,并得到指定的模型評測結果。

結果展示

我們在 TG-ReDial 數據集上對模型進行了訓練和測試,并記錄了在三個任務上的評測結果。其中效果最好的模型是基于圖神經網絡的KGSF和基于預訓練的TG-ReDial模型。

推薦任務

ModelHit@1Hit@10Hit@50MRR@1MRR@10MRR@50NDCG@1NDCG@10NDCG@50
SASRec0.0004460.001340.01600.0004460.0005760.001140.0004450.000750.00380
TextCNN0.002670.01030.02360.002670.004340.004930.002670.005700.00860
BERT0.007220.004900.02810.007220.01060.01240.004900.01470.0239
KBRD0.004010.02540.05880.004010.008910.01030.004010.01270.0198
KGSF0.005350.02850.07710.005350.01140.01350.005350.01540.0259
TG-ReDial0.007930.02510.05240.007930.01220.01340.007930.01520.0211

生成任務

ModelBLEU@1BLEU@2BLEU@3BLEU@4Dist@1Dist@2Dist@3Dist@4AverageExtremeGreedyPPL
HERD0.1200.01410.001360.0003500.1810.3690.8471.300.6970.3820.639472
Transformer0.2660.04400.01450.006510.3240.8372.023.060.8790.4380.68030.9
GPT20.08580.01190.003770.01102.354.628.8412.50.7630.2970.5839.26
KBRD0.2670.04580.01340.005790.4691.503.404.900.8630.3980.71052.5
KGSF0.3830.1150.04440.02000.3400.9103.506.200.8880.4770.76750.1
TG-ReDial0.1250.02040.003540.0008030.8811.757.0012.00.8100.3320.5987.41

策略任務

ModelHit@1Hit@10Hit@50MRR@1MRR@10MRR@50NDCG@1NDCG@10NDCG@50
MGCG0.5910.8180.8830.5910.6800.6830.5910.7120.729
Conv-BERT0.5970.8140.8810.5970.6840.6870.5970.7160.731
Topic-BERT0.5980.8280.8850.5980.6900.6930.5980.7240.737
TG-ReDial0.6000.8300.8930.6000.6930.6960.6000.7270.741

未來展望

對話推薦系統在未來肯定還會有更多工作,而且我們的CRSLab也有許多需要繼續完善的地方。我們AI BOX團隊將會持續開發維護CRSLab,保持版本穩定,并不斷加入更多更新的模型和數據集。期待各位讀者能夠提供寶貴意見。

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

總結

以上是生活随笔為你收集整理的CRSLab:可能是最适合你的对话推荐系统开源库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。