কাটা কাটা এসভিডি কম্পিউটিংয়ের জন্য কোন দ্রুত অ্যালগরিদম বিদ্যমান?


14

সম্ভবত এখানে বিষয়বস্তু বন্ধ, তবে ইতিমধ্যে ইতিমধ্যে বেশ কয়েকটি ( এক , দুটি ) সম্পর্কিত প্রশ্ন রয়েছে।

সাহিত্যে (বা কাটা কাটা এসভিডি অ্যালগরিদমগুলির জন্য গুগল অনুসন্ধান) আশেপাশে প্রচুর পরিমাণে কাগজপত্রগুলি ছাঁটাইয়া এসভিডিগুলি বিভিন্ন উপায়ে ব্যবহার করে এবং দাবি করে (হতাশার সাথে, প্রায়শই উদ্ধৃতি ছাড়াই) যে এটির গণনা করার জন্য দ্রুত অ্যালগরিদম রয়েছে, তবে কেউ নেই those অ্যালগরিদমগুলি কিসের দিকে ইঙ্গিত করছে বলে মনে হচ্ছে।

কেবলমাত্র আমি খুঁজে পাচ্ছি হ'ল একক র্যান্ডমাইজড অ্যালগরিদম , যা redSVD লাইব্রেরিতে ব্যবহৃত হয় ।

আমি যা দেখতে চাই তা হুবহু এবং নির্ভুল অ্যালগরিদমের একটি সেট যা সিস্টেমগুলি কীভাবে কাজ করে তা বোঝার জন্য উপযুক্ত (তবে বাস্তবে অবশ্যই এগুলি বাস্তবায়নের জন্য প্রয়োজনীয় নয়!)।

এই ধরণের জিনিসটির জন্য কারও কি ভাল রেফারেন্স রয়েছে?


আমি যদি ডেটা ভালভাবে সঞ্চয় করতে চাই, তবে আমি হ্যাশগুলিতে একটি বি-ট্রি (বা আরবি-ট্রি) ব্যবহার করব (র্যামের কথা ভাবি)। যদি ডেটাটির জন্য আমার কাছে বি-ট্রি থাকে তবে আমি ও (লগ (এন)) সময়ের নমুনা কোয়ান্টাইলগুলিতে এবং এ জাতীয় could আমি বাজি ধরেছি যে বড় ডেটা সহ, এই জাতীয় নমুনাটি স্বল্প সময়ের মধ্যে এসভিডি ম্যাট্রিক্সের একটি শালীন স্পার্স সন্নিকরণ গণনা করতে ব্যবহার করা যেতে পারে। আপনি "সংকুচিত সংবেদনশীলতা" সন্ধান করতে পারেন যা চূড়ান্ত ডেটা সংক্ষেপণের খুব পরিসংখ্যানগত পদ্ধতির।
এনগ্রিস্টুডেন্ট - মনিকা

কাটা কাটা এসভিডি দ্বারা আপনি কী বোঝাতে চেয়েছেন যে আপনি কেবলমাত্র বেশ কয়েকটি শীর্ষস্থানীয় একক ভেক্টর / মানগুলি সন্ধান করতে আগ্রহী?
অ্যামিবা বলছেন মনিকাকে

@ আমেবা হ্যাঁ, এটাই ধারণা।
জন ডুয়েস্ট

উত্তর:


16

খুব বিস্তৃতভাবে বলতে গেলে, ইগেনভ্যালু বা একক মান পচনকে গণনা করার জন্য দুটি পন্থা রয়েছে। একটি পদ্ধতির ম্যাট্রিক্সটি তির্যক করা এবং এটি মূলত একই সময়ে পুরো ইগন্যাল্যু / একক মান পচন (পুরো ইজেনভ্যালু বর্ণালী) দেয়, এখানে কিছু সংক্ষিপ্ত বিবরণ দেখুন: একক মানের পচন (এসভিডি) গণনা করার দক্ষ অ্যালগরিদমগুলি কী কী? বিকল্পটি হল একটি পুনরাবৃত্ত অ্যালগরিদম ব্যবহার করা যা একসাথে এক (বা বেশ কয়েকটি) ইগেনভেেক্টর দেয়। পছন্দসই সংখ্যক ইগেনভেেক্টর গণনা করার পরে আইট্রিগুলি বন্ধ করা যেতে পারে।

আমি মনে করি না এসভিডি-র জন্য বিশেষত পুনরাবৃত্ত অ্যালগরিদম রয়েছে। এর কারণ এক একটি এর SVD গনা করতে ম্যাট্রিক্স বি একটি বর্গক্ষেত্র প্রতিসম একজন eigendecomposition করে ( এন + + মি ) × ( এন + + মি ) ম্যাট্রিক্স একটি = ( 0 বি বি 0 )অতএব পরিবর্তে কি আলগোরিদিম কম্পিউট কেটে SVD, আপনাকে জিজ্ঞাসা করা উচিত কি পুনরাবৃত্ত আলগোরিদিম কম্পিউট eigendecomposition চাওয়ার: কেটে SVD জন্য অ্যালগরিদম eigendecomposition জন্য পুনরাবৃত্ত অ্যালগরিদম n×mB(এন+ +মি)×(এন+ +মি)

একজন=(0বিবি0)
কাটা এসভিডি এর জন্য অ্যালগরিদমআইজেন্ডেকম্পোজিশনের জন্য পুনরাবৃত্ত অ্যালগরিদম

সহজ পুনরাবৃত্তির অ্যালগরিদমকে পাওয়ার পুনরাবৃত্তি বলা হয় এবং এটি খুব সহজ:

  1. এক্স
  2. এক্সএকজনএক্স
  3. এক্সএক্স/এক্স
  4. রূপান্তরিত না হলে # 2 পদক্ষেপে যান।

আরও জটিল জটিল অ্যালগরিদমগুলি শেষ পর্যন্ত শক্তি পুনরাবৃত্তি আইডিয়া ভিত্তিক, তবে বেশ পরিশীলিত হয়। ক্রিলোভ সাবস্পেসেস দ্বারা প্রয়োজনীয় গণিত দেওয়া হয় । অ্যালগরিদমগুলি হলেন আর্নল্ডি পুনরাবৃত্তি (বর্গক্ষেত্রের ননমিম্যাট্রিক ম্যাট্রিক্সের জন্য), ল্যাঙ্কজোস পুনরাবৃত্তি (স্কোয়ারের প্রতিসম মেট্রিকের জন্য) এবং এর বিভিন্নতা যেমন যেমন "স্পষ্টত পুনরায় আরম্ভ করা ল্যাঙ্কজোস পদ্ধতি" এবং হোয়াট নোট।

আপনি এটি নীচের পাঠ্যপুস্তকগুলিতে বর্ণিত এটি পেতে পারেন:

  1. গোলুব এবং ভ্যান anণ, ম্যাট্রিক্স গণনা
  2. ট্র্যাফেন এবং বাউ, সংখ্যাগত লিনিয়ার বীজগণিত
  3. ডেমেল, ফলিত সংখ্যাসূচক লিনিয়ার বীজগণিত
  4. সাদ, বড় আইজেনভ্যালু সমস্যার জন্য সংখ্যা পদ্ধতি Meth

সমস্ত যুক্তিসঙ্গত প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং পরিসংখ্যান প্যাকেজগুলি (মতলব, আর, পাইথন নম্পি, আপনি নাম দিন) একই ফোর্টারান লাইব্রেরিগুলি ইগেন / একক মান-পচনগুলি সঞ্চালনের জন্য ব্যবহার করে। এগুলি হল LAPACK এবং ARPACK । আরপ্যাক মানে আর্নলদি প্যাকেজ এবং এটি আর্নল্ডি / ল্যাঙ্কজোস পুনরাবৃত্তির সমস্ত কিছুই। : মতলব মধ্যে যেমন আছে SVD জন্য দুটি ফাংশন হয় svdLAPACK মাধ্যমে সঞ্চালিত পূর্ণ পচানি এবং svdsARPACK মাধ্যমে একবচন ভেক্টর একটি প্রদত্ত সংখ্যার গণনা এবং এটা আসলে শুধু একটি একটি মোড়কের হয় eigs"স্কোয়ার-ized" ম্যাট্রিক্স উপর কল।

হালনাগাদ

বিএকজনএকজনবিএকজন

এই পদ্ধতিগুলির জন্য একটি ফোর্টরান লাইব্রেরিও রয়েছে, একে প্রোপ্যাক বলা হয় :

সফটওয়্যার প্যাকেজ প্রোপ্যাক-এ বড় এবং স্পার বা স্ট্রাকচার্ড ম্যাট্রিক্সের একক মানের পচন গণনার জন্য বিভিন্ন কার্যকারিতা রয়েছে। এসভিডি রুটিনগুলি আংশিক পুনর্গঠনকরণের (বিপিআরও) ল্যানকোস বিডিয়াগোনাইজেশন অ্যালগরিদমের উপর ভিত্তি করে।

তবে, প্রপ্যাকটি এআরপ্যাকের তুলনায় অনেক কম মান বলে মনে হচ্ছে এবং এটি স্ট্যান্ডার্ড প্রোগ্রামিং ভাষায় সমর্থিত নয়। এটি রসমুস লারসেন লিখেছেন যিনি একটি দীর্ঘ 90-পৃষ্ঠার দীর্ঘ 1998 পেপার ল্যানকোস বিডিয়োনালাইজেশন সহ আঞ্চলিক পুনর্গঠনকে ভাল পর্যালোচনা বলে মনে হচ্ছে has এই গণনা বিজ্ঞান এসই থ্রেডের মাধ্যমে @ মিশেলগ্র্যান্টকে ধন্যবাদ ।

সাম্প্রতিকতম কাগজপত্রগুলির মধ্যে, সর্বাধিক জনপ্রিয় বলে মনে হচ্ছে বাগলামা এবং রিচেল, ২০০৫, অগমেন্টেড স্পষ্টভাবে পুনরায় সূচনা করেছিলেন ল্যানকোস দ্বি-দ্বিখণ্ডকরণ পদ্ধতি , যা সম্ভবত শিল্পের চারপাশে রয়েছে is মন্তব্যগুলিতে এই লিঙ্কটি দেওয়ার জন্য @ ডৌগলকে ধন্যবাদ।

আপডেট 2

ওভারভিউ পেপারে বিস্তারিতভাবে বর্ণিত একটি সম্পূর্ণ ভিন্ন পদ্ধতি রয়েছে যা আপনি নিজেরাই উদ্ধৃত করেছেন: হালকো এট আল। ২০০৯, এলোমেলোভাবে কাঠামো সন্ধান করা: আনুমানিক ম্যাট্রিক্স পচানোর জন্য সম্ভাব্য অ্যালগরিদম । আমি এ সম্পর্কে মন্তব্য করার মতো যথেষ্ট জানি না।


মনে রাখবেন যে এসভিডি-নির্দিষ্ট পুনরাবৃত্তি পদ্ধতি বিদ্যমান রয়েছে; উদাহরণস্বরূপ অগমেন্টেড ইম্পিলিকেটলি রিস্টার্ট ল্যানকসোস বিডিয়াগোনালাইজেশন পদ্ধতি , জে। বাগলামা এবং এল। রিচেল, সিয়াম জে। সাই। Comput। 2005. (আমি যে কাগজপত্রটি দিয়েছি তা পূর্বসূরির পদ্ধতির তুলনায় মূলত আলাদা কিনা তা জানার জন্য আমি কাগজটি পড়িনি, কেবল জেনে রাখুন যে লোকেরা সেই পদ্ধতির পছন্দ করে))
ডগল

1
লিঙ্কের জন্য ধন্যবাদ, ডুগল। আমার বলা উচিত যে আমি এই পদ্ধতির কোনও সত্যই জানি না, তাই এটি সম্পর্কে সত্যই মন্তব্য করতে পারি না। আরও দুর্দান্ত কেউ যদি বিভিন্ন পুনরাবৃত্ত পদ্ধতির মধ্যে সম্পর্কের ব্যাখ্যা দেয় তবে এটি দুর্দান্ত হবে। আমি যতদূর বুঝতে পেরেছি, ভ্যানিলা ল্যাঙ্কজোস পদ্ধতিটি স্কোয়ার ম্যাট্রিক্সের ইগেনভ্যালুগুলি গণনা করার জন্য, এসভিডির জন্য নয়; "বর্ধিত স্পষ্টভাবে পুনরায় চালু করা ল্যাঙ্কজোস" এর সাথে নিবিড়ভাবে সম্পর্কিত হওয়া উচিত তবে আপনি ঠিক বলেছেন - এটি সরাসরি এসভিডি সম্পর্কে বলে মনে হচ্ছে। কীভাবে এটি সব একসাথে ফিট করে তা নিশ্চিত নয়। আমি যদি আরও কাছ থেকে তাকান তবে আমি আমার উত্তর আপডেট করব।
অ্যামিবা বলেছেন

1
@ ডাওগাল, আমি কিছু কার্সারি রিডিং করেছি এবং একটি আপডেট করেছি।
অ্যামিবা বলছেন

@ অ্যামিবা কি নিয়মিত ন্যূনতম স্কোয়ারের প্রসঙ্গে "এসভিডি কেটে যাবে" মূলত "নীতি উপাদান উপাদান রিগ্রেশন" এর সমান ?
জিওম্যাট 22

1
@ অ্যামিবা আপনি কি ফেসবুকের এলোমেলো এসভিডি বাস্তবায়নের বিষয়ে মন্তব্য করতে পারেন , কিছু লোক মনে করছেন যে এটি এখনই দ্রুততম সমাধানগুলির মধ্যে একটি। আপনি যদি এ বিষয়ে মন্তব্য করতেও সম্পাদনা করতে পারতেন তবে দুর্দান্ত লাগবে।
টিম

4

আমি দ্রুত গুগলিং এসভিডিগুলির মাধ্যমে থ্রেডে হোঁচট খেয়েছি, তাই আমি নিজেই জিনিসগুলি বের করার চেষ্টা করছি, তবে সম্ভবত আপনাকে অভিযোজিত ক্রস আনুমানিককরণ (এসিএ) সন্ধান করা উচিত ।

এমএম=Σআমি=0ইউআমিভীআমিটিএন×এনহে(এন)

আবার এটি আপনার সমস্যার উপর নির্ভর করে যদি এটি কাজ করে। অনেক ক্ষেত্রে আমি ব্যক্তিগতভাবে মুখোমুখি হই, এসিএ একটি খুব দরকারী সংখ্যাসূচক সরঞ্জাম।

দ্রষ্টব্য: আমি এটি একটি মন্তব্য হিসাবে লিখতে চেয়েছিলাম, তবে আমি এই অ্যাকাউন্টটি তৈরি করার কারণে মন্তব্যগুলির জন্য আমার যথেষ্ট খ্যাতি নেই ... তবে পোস্টিং কাজ করে।


2

কাটা কাটা এসভিডি (নেটফ্লিক্স ডেটাসেটে) গণনার জন্য আমি অতীতে সফলভাবে ব্যবহার করেছি। এটি এই কাগজ থেকে নেওয়া হয়েছে । একটি সহযোগী ফিল্টারিং সেটিংয়ে, আমি নোট করব যে বেশিরভাগ মানগুলি অনুপস্থিত এবং বিন্দুটি তাদের পূর্বাভাস দেওয়ার জন্য, সুতরাং এই জাতীয় সমস্যা সমাধানের জন্য কাটা কাটা এসভিডি ব্যবহার করার জন্য আপনাকে এমন একটি প্রযুক্তি ব্যবহার করতে হবে যা এই অবস্থার অধীনে কাজ করে। একটি সংক্ষিপ্ত বিবরণ:

  1. আপনি কিছু করার আগে একটি সাধারণ মডেল (যেমন, গ্লোবাল গড় + কলাম এবং সারি ধ্রুবক মান) ফিট করুন এবং কেবলমাত্র একবার এটি করার পরে আপনার অবশিষ্টাংশগুলিকে ফিট করার জন্য কাটা কাটা এসভিডি ব্যবহার করা উচিত।
  2. প্রতিটি সারি এবং কলামে (নেটফ্লিক্স ক্ষেত্রে প্রতিটি চলচ্চিত্র এবং ব্যবহারকারীর কাছে) দৈর্ঘ্যের কে (যেখানে আপনি যে পদক্ষেপটি ছাঁটাই করছেন) এর সূচনা করুন।
  3. ম্যাট্রিক্সের পরিচিত এন্ট্রিগুলিকে ত্রুটি কমানোর জন্য সারি ভেক্টরগুলি স্থির করে রাখুন এবং কলামের ভেক্টরগুলি আপডেট করুন । পদ্ধতিটি কাগজে মাতলাব কোডে দেওয়া হয়।
  4. কলামের ভেক্টরগুলিকে স্থির করে রাখুন এবং সারি ভেক্টরগুলিকে অভিন্ন উপায়ে আপডেট করুন।
  5. আপনি রূপান্তর না করা বা যথেষ্ট ভাল ফলাফল না পাওয়া পর্যন্ত 3 এবং 4 এর পুনরাবৃত্তি করুন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.