RecBole小白入門系列部落格(一)——快速安裝和簡單上手
RecBole小白入門系列部落格(一)
——快速安裝和簡單上手
寫在開頭
我最近在做推薦系統相關的工作,碰巧發現了一個推薦系統框架RecBole,裡面包含了很多推薦系統方向的模型,感覺跑baseline特別方便(`∀´)Ψ!而且我搜了一下,可能是因為才上線,所以上手部落格啥的都還沒人寫,俺就先佔個坑了嘿嘿嘿,看看後續能不能整理成一個合集d(・∀・*)♪゚
當然我寫的肯定有不完善的地方,感興趣的同學可以去他們官網康康!
快速安裝
系統要求
RecBole在目前主流的幾種系統上都可以執行:
Linux
Windows 10
macOS X
另外,它還對python相關環境有要求:
python>=3.6
torch>=1.6
鑑於模型大多數都是深度學習模型,如果使用GPU的話:
CUDA或CUDATooklkit>=9.2
NVIDIA Driven>=396.26(Linux)
NVIDIA Driven>=397.44(Windows10)
安裝方式
從Conda安裝
推薦新建一個虛擬環境,防止裝環境裝崩了(血的教訓ヘ(;´Д`ヘ)
這裡建立一個名為recbole的虛擬環境
conda create -n recbole
conda activate recbole
然後在該虛擬環境中安裝(小夥伴們記得檢查一下torch和python版本對不對哈)
conda install -c aibox recbole
從pip安裝
pip install recbole
從原始檔安裝
先從github上面下載原始檔
git clone https://github.com/RUCAIBox/RecBole.git && cd RecBole
然後執行指令安裝
pip install -e . --verbose
簡單上手
因為RecBole這個框架還是整合了很多模型的,所以要完全使用熟練還是需要熟悉一會的,但個人感覺已經比現在已有的框架方便太多了(劃掉XD),這裡其實還是參考他們網站給的例子來寫的。
從原始檔上手(適用於從github下載了原始檔)
進入RecBole資料夾,可以直接執行run_recbole.py這個檔案,預設使用的模型是BPR,預設使用的資料集是ml-100k
python run_recbole.py
然後就會得到下面的輸出資訊,包括了使用的資料集名稱、資料集裡user,item以及interaction數目、模型評估設定、模型結構等內容,挺清晰明瞭的:
INFO ml-100k
The number of users: 944
Average actions of users: 106.04453870625663
The number of items: 1683
Average actions of items: 59.45303210463734
The number of inters: 100000
The sparsity of the dataset: 93.70575143257098%
INFO Evaluation Settings:
Group by user_id
Ordering: {'strategy': 'shuffle'}
Splitting: {'strategy': 'by_ratio', 'ratios': [0.8, 0.1, 0.1]}
Negative Sampling: {'strategy': 'full', 'distribution': 'uniform'}
INFO BPRMF(
(user_embedding): Embedding(944, 64)
(item_embedding): Embedding(1683, 64)
(loss): BPRLoss()
)
Trainable parameters: 168128
之後會輸出訓練的資訊:
INFO epoch 0 training [time: 0.27s, train loss: 27.7231]
INFO epoch 0 evaluating [time: 0.12s, valid_score: 0.021900]
INFO valid result:
recall@10: 0.0073 mrr@10: 0.0219 ndcg@10: 0.0093 hit@10: 0.0795 precision@10: 0.0088
經過若干輪訓練得到結果:
INFO Finished training, best eval result in epoch 52
INFO Loading model structure and parameters from saved/***.pth
INFO best valid result:
recall@10: 0.2169 mrr@10: 0.4005 ndcg@10: 0.235 hit@10: 0.7582 precision@10: 0.1598
INFO test result:
recall@10: 0.2368 mrr@10: 0.4519 ndcg@10: 0.2768 hit@10: 0.7614 precision@10: 0.1901
這樣的模式跑baseline真的真的真的很省事!終於不用我叭叭叭叭敲程式碼再調bug了( Ĭ ^ Ĭ )
然後上面是全部使用預設引數跑模型的結果,如果要改一些引數,比如學習率 (learning_rate)啊,嵌入向量的大小(embedding_size)啊,甚至使用的模型啊等等,最簡單的辦法是直接命令列新增,假設改成使用FM模型,學習率改成0.02,嵌入向量大小改成50維:
python run_recbole.py --model=LR --learning_rate=0.02 --embedding_size=50
改變資料集我放在之後的部落格裡面說,RecBole支援的模型和提供的已經處理好的資料集可以看他們的官網。
從API上手(適用於conda和pip安裝)
首先新建一個python檔案,假設命名為test_recbole.py,然後在該檔案中寫入:
from recbole.quick_start import run_recbole
run_recbole()
然後執行該檔案
python run.py --dataset=ml-100k --model=BPR
改變引數的方式和從原始碼上手那裡操作相似。
結束語
好啦!第一篇就先寫這麼多,準備後續寫一寫四大類(general,context
,sequential,knowledge)模型的分別執行流程、引數設定等問題,以及資料集的格式啊設定什麼的,大家有什麼想看的也可以給我留言。謝謝各位!
相關文章
- RecBole小白入門系列部落格(三)——Context類模型執行流程Context模型
- 【部落格搭建】Typecho個人部落格搭建,快速安裝,超小白(很簡單的)
- Laravel Nova 入門建立一個簡單的部落格Laravel
- nuxt簡單入門安裝UX
- Docker 快速入門系列-Docker 在 MacOS 安裝DockerMac
- Centos 7安裝和配置 ElasticSearch入門小白CentOSElasticsearch
- 一篇部落格上手request和response
- Jenkins快速上手安裝Jenkins
- kubernetes系列(十六) - Helm安裝和入門
- 部落格入門
- Flutter小白教程系列(三) --- Dart語言快速入門FlutterDart
- 【Python小白入門必看】Python和VB哪個更簡單?Python
- 簡單幾步,利用鐵威馬NAS安裝配置typecho部落格
- [雪峰磁針石部落格]資料倉儲快速入門教程1簡介
- Vue入門指南(快速上手vue)Vue
- Spark 安裝部署與快速上手Spark
- 自制真•簡單部落格
- InnoSetup簡單教程一,安裝使用和簡單測試
- Linux小白如何快速上手Linux?Linux
- VUE從零開始系列(安裝腳手架),呆萌小白上手VUEVue
- 入門系列之在Ubuntu 16.04上安裝和使用TensorFlowUbuntu
- 一遍部落格帶你上手ServletServlet
- 自己寫的簡單的一個部落格
- Hadoop入門系列(2)-安裝HadoopHadoop
- webpack 快速入門 系列 —— 實戰一Web
- 小白入門 - PHP簡介PHP
- Java開發小白入門前的工具安裝Java
- 【openstack】cloudkitty元件,入門級安裝(快速)Cloud元件
- (CMake):CMake安裝及快速入門案例
- 小白nlp入門基礎(一)--nlp簡介
- 快速上手python的簡單web框架flaskPythonWeb框架Flask
- 個人部落格入門4
- Docker 入門及安裝[Docker 系列-1]Docker
- Laravel 5.4 入門系列 1. 安裝Laravel
- LInux簡單安裝和命令Linux
- CentOS7 快速高效,簡單安裝 lnmpCentOSLNMP
- kafka入門安裝和使用Kafka
- Azure Storage 系列(一)入門簡介