Transformers4Rec เป็นไลบรารีที่ยืดหยุ่นและมีประสิทธิภาพสำหรับคำแนะนำตามลำดับและตามเซสชันและสามารถทำงานกับ Pytorch ได้
ห้องสมุดทำงานเป็นสะพานเชื่อมระหว่างการประมวลผลภาษาธรรมชาติ (NLP) และระบบแนะนำ (RECSYS) โดยการรวมเข้ากับหนึ่งในเฟรมเวิร์ก NLP ที่ได้รับความนิยมมากที่สุด Transformers4Rec ทำให้สถาปัตยกรรมหม้อแปลงที่ทันสมัยมีให้สำหรับนักวิจัยและผู้ปฏิบัติงานในอุตสาหกรรม
รูปต่อไปนี้แสดงการใช้ไลบรารีในระบบผู้แนะนำ ข้อมูลอินพุตมักจะเป็นลำดับของการโต้ตอบเช่นรายการที่เรียกดูในเซสชันเว็บหรือรายการที่ใส่ในรถเข็น ห้องสมุดช่วยให้คุณประมวลผลและสร้างแบบจำลองการโต้ตอบเพื่อให้คุณสามารถส่งออกคำแนะนำที่ดีขึ้นสำหรับรายการถัดไป

อัลกอริทึมการแนะนำแบบดั้งเดิมมักจะไม่สนใจการเปลี่ยนแปลงชั่วคราวและลำดับของการโต้ตอบเมื่อพยายามทำแบบจำลองพฤติกรรมของผู้ใช้ โดยทั่วไปการโต้ตอบของผู้ใช้ครั้งต่อไปจะเกี่ยวข้องกับลำดับของตัวเลือกก่อนหน้าของผู้ใช้ ในบางกรณีอาจเป็นการซื้อซ้ำหรือเล่นเพลง ความสนใจของผู้ใช้อาจได้รับผลกระทบจากการดริฟท์ที่น่าสนใจเนื่องจากการตั้งค่าสามารถเปลี่ยนแปลงได้ตลอดเวลา ความท้าทายเหล่านั้นได้รับการแก้ไขโดยงาน คำแนะนำตามลำดับ
กรณีการใช้งานพิเศษของการส่งต่อลำดับเป็นงาน คำแนะนำที่อิงกับเซสชัน ซึ่งคุณสามารถเข้าถึงลำดับการโต้ตอบสั้น ๆ ภายในเซสชันปัจจุบันเท่านั้น นี่เป็นเรื่องธรรมดามากในบริการออนไลน์เช่นอีคอมเมิร์ซข่าวสารและพอร์ทัลสื่อที่ผู้ใช้อาจเลือกที่จะเรียกดูโดยไม่ระบุชื่อเนื่องจากการปฏิบัติตาม GDPR ที่ จำกัด การรวบรวมคุกกี้หรือเพราะผู้ใช้ใหม่สำหรับเว็บไซต์ งานนี้ยังเกี่ยวข้องกับสถานการณ์ที่ความสนใจของผู้ใช้เปลี่ยนไปมากเมื่อเวลาผ่านไปขึ้นอยู่กับบริบทหรือความตั้งใจของผู้ใช้ ในกรณีนี้การใช้ประโยชน์จากการโต้ตอบสำหรับเซสชันปัจจุบันมีแนวโน้มมากกว่าการโต้ตอบเก่าเพื่อให้คำแนะนำที่เกี่ยวข้อง
เพื่อจัดการกับคำแนะนำตามลำดับและตามเซสชันอัลกอริธึมการเรียนรู้ลำดับจำนวนมากก่อนหน้านี้ใช้ในการเรียนรู้ของเครื่องและการวิจัย NLP ได้รับการสำรวจสำหรับ RECSYS ตามเพื่อนบ้าน K-Nearest, การขุดรูปแบบบ่อยครั้ง, โมเดล Markov ที่ซ่อนอยู่ ซึ่งแตกต่างจาก Transformers4REC เฟรมเวิร์กเหล่านี้ยอมรับลำดับของ ID IDS เป็นอินพุตและไม่ได้ให้การใช้งานแบบแยกส่วนและปรับขนาดได้สำหรับการใช้งานการผลิต
Transformers4Rec เสนอประโยชน์ต่อไปนี้:
ความยืดหยุ่น : Transformers4REC จัดเตรียมหน่วยการสร้างแบบแยกส่วนที่สามารถกำหนดค่าได้และเข้ากันได้กับโมดูล pytorch มาตรฐาน การออกแบบบล็อกอาคารนี้ช่วยให้คุณสามารถสร้างสถาปัตยกรรมที่กำหนดเองด้วยหอคอยหลายแห่งหัว/งานหลายอย่างและการสูญเสีย
การเข้าถึง Transformers HF : สถาปัตยกรรมหม้อแปลงที่แตกต่างกันมากกว่า 64 รายการสามารถใช้ในการประเมินงานคำแนะนำตามลำดับและเซสชันของคุณซึ่งเป็นผลมาจากการรวม Transformers Hugging Face Transformers
รองรับคุณสมบัติอินพุตหลายรายการ : HF Transformers รองรับลำดับของ Token ID เป็นอินพุตเท่านั้นเนื่องจากมันถูกออกแบบมาสำหรับ NLP เดิม Transformers4REC ช่วยให้คุณใช้ข้อมูลตารางตามลำดับประเภทอื่นเป็นอินพุตด้วย HF Transformers เนื่องจากคุณสมบัติที่หลากหลายที่มีอยู่ในชุดข้อมูล RECSYS Transformers4Rec ใช้สคีมาเพื่อกำหนดค่าคุณสมบัติอินพุตและสร้างเลเยอร์ที่จำเป็นโดยอัตโนมัติเช่นตารางการฝังเลเยอร์การฉายและเลเยอร์เอาต์พุตตามเป้าหมายโดยไม่ต้องเปลี่ยนรหัสเพื่อรวมคุณสมบัติใหม่ คุณสามารถทำให้เป็นปกติและรวมคุณสมบัติการโต้ตอบและระดับการป้อนข้อมูลลำดับในรูปแบบที่กำหนดค่าได้
การประมวลผลล่วงหน้าและวิศวกรรมคุณลักษณะที่ไร้รอยต่อ : เป็นส่วนหนึ่งของระบบนิเวศเมอร์ลิน Transformers4Rec ถูกรวมเข้ากับเซิร์ฟเวอร์ NVTABULAL และ Triton ส่วนประกอบเหล่านี้ช่วยให้คุณสามารถสร้างท่อส่ง GPU แบบเร่งด่วนสำหรับคำแนะนำตามลำดับและตามเซสชัน NVTabular มีการดำเนินการประมวลผลล่วงหน้าทั่วไปสำหรับคำแนะนำตามเซสชันและส่งออกสคีมาชุดข้อมูล สคีมาเข้ากันได้กับ Transformers4Rec เพื่อให้สามารถกำหนดค่าคุณสมบัติการป้อนข้อมูลได้โดยอัตโนมัติ คุณสามารถส่งออกโมเดลที่ผ่านการฝึกอบรมของคุณเพื่อให้บริการกับเซิร์ฟเวอร์การอนุมาน Triton ในไปป์ไลน์เดียวที่มีคุณสมบัติออนไลน์ล่วงหน้าและการอนุมานแบบจำลอง สำหรับข้อมูลเพิ่มเติมโปรดดูไปป์ไลน์แบบ end-to-end กับ Nvidia Merlin

Transformers4Rec เพิ่งชนะการแข่งขันคำแนะนำตามเซสชันสองครั้ง: WSDM Webtour Workshop Challenge 2021 (จัดโดย Booking.com) และ SIGIR ECOMMERCE WORTSHOP Data Challenge 2021 (จัดโดย Coveo) ห้องสมุดให้ความแม่นยำสูงกว่าสำหรับการแนะนำตามเซสชันมากกว่าอัลกอริทึมพื้นฐานและเราทำการวิเคราะห์เชิงประจักษ์อย่างกว้างขวางเกี่ยวกับความถูกต้อง การสังเกตเหล่านี้ถูกตีพิมพ์ในกระดาษ ACM Recsys'21 ของเรา
การฝึกอบรมแบบจำลองด้วย Transformers4Rec มักจะต้องดำเนินการตามขั้นตอนระดับสูงต่อไปนี้:
จัดเตรียมสคีมาและสร้างโมดูลอินพุต
หากคุณพบปัญหาการแนะนำตามเซสชันคุณมักจะต้องการใช้คลาส TabularSequenceFeatures เพราะมันผสานคุณสมบัติบริบทกับคุณสมบัติตามลำดับ
จัดเตรียมงานทำนาย
งานที่ให้ไว้นอกกรอบมีให้บริการจากเอกสาร API ของเรา
สร้างหม้อแปลงร่างกายและแปลงเป็นแบบจำลอง
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการกำหนดและฝึกอบรมโมเดล XLNET ด้วย pytorch สำหรับงานทำนายรายการต่อไป:
from transformers4rec import torch as tr
from transformers4rec . torch . ranking_metric import NDCGAt , RecallAt
# Create a schema or read one from disk: tr.Schema().from_json(SCHEMA_PATH).
schema : tr . Schema = tr . data . tabular_sequence_testing_data . schema
max_sequence_length , d_model = 20 , 64
# Define the input module to process the tabular input features.
input_module = tr . TabularSequenceFeatures . from_schema (
schema ,
max_sequence_length = max_sequence_length ,
continuous_projection = d_model ,
aggregation = "concat" ,
masking = "causal" ,
)
# Define a transformer-config like the XLNet architecture.
transformer_config = tr . XLNetConfig . build (
d_model = d_model , n_head = 4 , n_layer = 2 , total_seq_length = max_sequence_length
)
# Define the model block including: inputs, masking, projection and transformer block.
body = tr . SequentialBlock (
input_module ,
tr . MLPBlock ([ d_model ]),
tr . TransformerBlock ( transformer_config , masking = input_module . masking )
)
# Define the evaluation top-N metrics and the cut-offs
metrics = [ NDCGAt ( top_ks = [ 20 , 40 ], labels_onehot = True ),
RecallAt ( top_ks = [ 20 , 40 ], labels_onehot = True )]
# Define a head with NextItemPredictionTask.
head = tr . Head (
body ,
tr . NextItemPredictionTask ( weight_tying = True , metrics = metrics ),
inputs = input_module ,
)
# Get the end-to-end Model class.
model = tr . Model ( head )คุณสามารถแก้ไขรหัสก่อนหน้านี้เพื่อทำการจำแนกประเภทไบนารี การปิดบังในโมดูลอินพุตสามารถตั้งค่าเป็น
Noneแทนที่จะเป็นcausalเมื่อคุณกำหนดหัวคุณสามารถแทนที่NextItemPredictionTaskด้วยอินสแตนซ์ของBinaryClassificationTaskดูรหัสตัวอย่างในเอกสาร API สำหรับชั้นเรียน
คุณสามารถติดตั้ง Transformers4Rec ด้วย PIP, Conda หรือเรียกใช้คอนเทนเนอร์ Docker
คุณสามารถติดตั้ง Transformers4Rec ด้วยฟังก์ชั่นเพื่อใช้ Merlin Dataloader ที่เร่งด้วย GPU การติดตั้งด้วย dataloader ขอแนะนำอย่างยิ่งเพื่อประสิทธิภาพที่ดีขึ้น ส่วนประกอบเหล่านั้นสามารถติดตั้งเป็นอาร์กิวเมนต์เสริมสำหรับคำสั่ง pip install
ในการติดตั้ง transformers4Rec โดยใช้ PIP ให้เรียกใช้คำสั่งต่อไปนี้:
pip install transformers4rec[nvtabular] -> โปรดทราบว่าการติดตั้ง transformers4Rec ด้วย pip ไม่ได้ติดตั้ง Rapids CUDF โดยอัตโนมัติ -> CUDF เป็นสิ่งจำเป็นสำหรับการแปลง NVTabular เวอร์ชัน GPU และ Merlin Dataloader
คำแนะนำสำหรับการติดตั้ง CUDF ด้วย PIP มีอยู่ที่นี่: https://docs.rapids.ai/install#pip-install
pip install cudf-cu11 dask-cudf-cu11 --extra-index-url=https://pypi.nvidia.com ในการติดตั้ง Transformers4Rec โดยใช้ Conda ให้เรียกใช้คำสั่งต่อไปนี้ด้วย conda หรือ mamba เพื่อสร้างสภาพแวดล้อมใหม่
mamba create -n transformers4rec-23.04 -c nvidia -c rapidsai -c pytorch -c conda-forge
transformers4rec=23.04 ` # NVIDIA Merlin `
nvtabular=23.04 ` # NVIDIA Merlin - Used in example notebooks `
python=3.10 ` # Compatible Python environment `
cudf=23.02 ` # RAPIDS cuDF - GPU accelerated DataFrame `
cudatoolkit=11.8 pytorch-cuda=11.8 ` # NVIDIA CUDA version ` Transformers4Rec ติดตั้งไว้ล่วงหน้าในคอนเทนเนอร์ merlin-pytorch ที่มีให้จากแคตตาล็อก Nvidia GPU Cloud (NGC)
อ้างถึงหน้าเอกสาร Merlin Containers สำหรับข้อมูลเกี่ยวกับชื่อคอนเทนเนอร์ Merlin, URL ไปยังภาพคอนเทนเนอร์ในแคตตาล็อกและส่วนประกอบ Merlin ที่สำคัญ
ไปป์ไลน์แบบ end-to-end พร้อมหน้า Nvidia Merlin แสดงวิธีใช้ Transformers4Rec และไลบรารี Merlin อื่น ๆ เช่น NVTabular เพื่อสร้างระบบผู้แนะนำที่สมบูรณ์
เรามีสมุดบันทึกตัวอย่างหลายตัวอย่างเพื่อช่วยให้คุณสร้างระบบแนะนำหรือรวม Transformers4Rec เข้ากับระบบของคุณ:
หากคุณต้องการมีส่วนร่วมโดยตรงกับ Transformers4Rec โปรดดูที่การสนับสนุน Transformers4Rec เราสนใจเป็นพิเศษในการบริจาคหรือคำขอคุณสมบัติสำหรับวิศวกรรมคุณลักษณะของเราและการดำเนินการประมวลผลล่วงหน้า เพื่อเพิ่มความก้าวหน้าของ Merlin Roadmap ของเราเราขอแนะนำให้คุณแบ่งปันรายละเอียดทั้งหมดเกี่ยวกับไปป์ไลน์ระบบผู้แนะนำของคุณโดยไปที่ https://developer.nvidia.com/merlin-devzone-survey
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของ Transformers4Rec โปรดดูเอกสาร Transformers4Rec ของเรา นอกจากนี้เรายังมีเอกสารประกอบ API ที่สรุปเฉพาะของโมดูลและคลาสที่มีอยู่ภายใน Transformers4Rec