যাঁরা স্পার-এসভিডি সুপারিশগুলি ব্যবহারিকভাবে প্রয়োগ করতে চান বা বিশদের জন্য উত্স কোডটি পরীক্ষা করতে চান তাদের প্রশ্নের "কীভাবে" তার উত্তর দেওয়ার চেষ্টা করা । স্পার্স-এসভিডি মডেল করতে আপনি একটি অফ-শেল্ফ এফওএসএস সফ্টওয়্যার ব্যবহার করতে পারেন। উদাহরণস্বরূপ, vowpal wabbit, libFM, অথবা redsvd।
vowpal wabbit"এসভিডি-সদৃশ" অ্যালগরিদমগুলির 3 টি বাস্তবায়ন রয়েছে (3 টি কমান্ড লাইন বিকল্পের মধ্যে একটি দ্বারা নির্বাচিত)। কড়া কথায় এগুলিকে খাঁটি "ক্লাসিক" এসভিডি "এর পরিবর্তে" আনুমানিক, পুনরাবৃত্তিমূলক, ম্যাট্রিক্স ফ্যাক্টেরাইজেশন "বলা উচিত তবে এগুলি এসভিডির সাথে নিবিড়ভাবে সম্পর্কিত। আপনি এগুলিকে একটি বিচ্ছুরণের বেশিরভাগই গণ্য-দক্ষ-দক্ষ আনুমানিক এসভিডি-ফ্যাক্টরীকরণ হিসাবে ভাবেন (বেশিরভাগ ক্ষেত্রে শূন্য) ম্যাট্রিক্স।
নেটফ্লিক্স স্টাইলের মুভি সুপারিশগুলি করার জন্য vowpal wabbitএটির একটি সম্পূর্ণ, কার্যকারী রেসিপি এবং এর "নিম্ন-স্থানযুক্ত চতুর্ভুজ" ( --lrq) বিকল্পটি যা আমার পক্ষে সবচেয়ে ভাল বলে মনে হচ্ছে:
ডেটা সেট ফর্ম্যাট ফাইল ratings.vw(ব্যবহারকারী এবং চলচ্চিত্রের দ্বারা প্রতিটি লাইনে প্রতিটি রেটিং):
5 |user 1 |movie 37
3 |user 2 |movie 1019
4 |user 1 |movie 25
1 |user 3 |movie 238
...
যেখানে 1 ম নম্বরটি রেটিং (1 থেকে 5 টি তারা) তার পরে রেট দেওয়া ব্যবহারকারীর আইডি এবং মুভি আইডি যা রেট করা হয়েছিল।
পরীক্ষার ডেটা একই ফর্ম্যাটে থাকে তবে (allyচ্ছিকভাবে) রেটিং কলামটি বাদ দিতে পারে:
|user 1 |movie 234
|user 12 |movie 1019
...
allyচ্ছিকভাবে কারণ ভবিষ্যদ্বাণীগুলির সাথে তুলনা করার জন্য আমাদের পরীক্ষার পূর্বাভাসগুলি মূল্যায়ন / পরীক্ষা করতে হয়। আমরা যদি রেটিংগুলি বাদ দিই, vowpal wabbitতবুও রেটিংগুলির পূর্বাভাস দিব তবে ভবিষ্যদ্বাণী ত্রুটিটি (ডেটাতে প্রকৃত মানগুলির তুলনায় পূর্বাভাসিত মান) অনুমান করতে সক্ষম হবে না।
প্রশিক্ষণ দেওয়ার জন্য আমরা ব্যবহারকারী এবং চলচ্চিত্র তাদের পছন্দ (বা অপছন্দ) এর মধ্যে সুপ্ত ইন্টারঅ্যাকশন কারণগুলির vowpal wabbitএকটি সেট খুঁজতে বলি N। আপনি এই সম্পর্কে সাধারণ থিমগুলি সন্ধানের মতো ভাবতে পারেন যেখানে একই ব্যবহারকারীরা একই উপায়ে চলচ্চিত্রের উপসেটকে রেট দেয় এবং ব্যবহারকারীরা কীভাবে এখনও তার রেট নির্ধারণ করেনি এমন চলচ্চিত্রকে কীভাবে রেট দেবে তা অনুমান করার জন্য এই সাধারণ থিমগুলি ব্যবহার করে।
vw অপশন এবং আর্গুমেন্ট আমাদের ব্যবহার করা প্রয়োজন:
--lrq <x><y><N> "নিম্ন-স্থানযুক্ত চতুষ্কোণ" সুপ্ত-কারণগুলি সন্ধান করে।
<x><y>: "উম" এর অর্থ ডেটা সেটে ইউ [সেরস] এবং মি [ওভি] নাম-স্থানগুলি অতিক্রম করুন। নোট করুন যে প্রতিটি নাম-স্পেসের কেবল 1 ম অক্ষরটি --lrqবিকল্পের সাথে ব্যবহৃত হয় ।
<N>: N=14নীচে হ'ল সুপ্ত কারণগুলি আমরা খুঁজতে চাই number
-f model_filename: চূড়ান্ত মডেল লিখুন model_filename
সুতরাং একটি সাধারণ পূর্ণ প্রশিক্ষণ আদেশ হবে:
vw --lrq um14 -d ratings.vw -f ratings.model
আমাদের কাছে একবার ratings.modelমডেল ফাইল হয়ে গেলে , আমরা এটি ব্যবহার করে একটি নতুন ডেটা-সেটে অতিরিক্ত রেটিংয়ের পূর্বাভাস দিতে পারি more_ratings.vw:
vw -i ratings.model -d more_ratings.vw -p more_ratings.predicted
ভবিষ্যদ্বাণীগুলি ফাইলটিতে লেখা হবে more_ratings.predicted।
ব্যবহার demo/movielensমধ্যে vowpalwabbitউৎস গাছ, আমি পেতে ~ 0,693 মায়ে (গড় পরম ত্রুটি) উপর 1 মিলিয়ন ব্যবহারকারী / সিনেমা রেটিং প্রশিক্ষণ পর ml-1m.ratings.train.vw14 সুপ্ত-কারণের (যার অর্থ SVD মধ্যম ম্যাট্রিক্স একটি 14x14 সারি x কলাম ম্যাট্রিক্স হয়) সঙ্গে এবং স্বাধীন উপর পরীক্ষা পরীক্ষা সেট ml-1m.ratings.test.vw। 0.69 এমএই কত ভাল? আনরেটেড (0) কেস [0 থেকে 5] সহ সম্ভাব্য পূর্বাভাসের সম্পূর্ণ ব্যাপ্তির জন্য, একটি 0.69 ত্রুটি সম্পূর্ণ পরিসরের 13.8% (0.69 / 5.0), অর্থাৎ প্রায় 86.2% যথার্থতা (1 - 0.138)।
গিথুবের vowpal wabbitউত্স ট্রিতে ডকুমেন্টেশন সহ অনুরূপ ডেটা-সেট (মুভিলেনস) এর জন্য উদাহরণ এবং একটি পূর্ণ ডেমো খুঁজে পেতে পারেন :
নোট:
movielensডেমো বেশ কয়েকটি বিকল্প আমি বাদ দেওয়া (সরলীকরণের জন্য) আমার উদাহরণ থেকে ব্যবহার করে: বিশেষ করে --loss_function quantile, --adaptiveএবং--invariant
- মডেলগুলি সংরক্ষণ এবং লোড করার সময় এর
--lrqবাস্তবায়ন vwতার থেকে অনেক দ্রুততর হয় --rank।
ক্রেডিট:
--rank vw বিকল্পটি জ্যাক হফম্যান বাস্তবায়ন করেছিলেন
--lrq পল মিনেরো দ্বারা vw বিকল্প (alচ্ছিক ড্রপআউট সহ) প্রয়োগ করা হয়েছিল
- স্বর ওয়াববিট (ওরফে ভিডাব্লু) জন ল্যাংফোর্ডের মস্তিষ্কের সন্তান