একটি স্থানীয় সংবেদনশীল হ্যাশ প্রশস্তকরণ


10

আমি একটি কোসাইন লোকালটিটিটিভিটিভ সংবেদনশীল হ্যাশ তৈরির চেষ্টা করছি যাতে আমি প্রতিটি সম্ভাব্য জোড়ের তুলনা না করে প্রার্থীদের অনুরূপ জোড়া আইটেমগুলি খুঁজে পেতে পারি। আমি এটি মূলত কাজ করছি, তবে আমার ডেটাতে বেশিরভাগ জুড়ির মনে হয় -0.2 থেকে +0.2 পরিসরে কোসাইন মিল রয়েছে তাই আমি এটি বেশ সূক্ষ্মভাবে পাতলা এবং কোসাইন মিলের সাথে জিনিসগুলি বেছে নেওয়ার চেষ্টা করছি 0.1 এবং তারপরে।

আমি মাইনিং ম্যাসিভ ডেটাসেটস অধ্যায়টি পড়েছি This স্থানীয়-সংবেদনশীল পরিবারকে প্রশস্ত করে প্রার্থী জুটির নির্বাচনের যথার্থতা বাড়ানোর বিষয়ে এই আলোচনা talks আমি মনে করি আমি গাণিতিক ব্যাখ্যাটি প্রায় বুঝতে পেরেছি, তবে আমি কীভাবে এটি ব্যবহারিকভাবে প্রয়োগ করি তা দেখার জন্য আমি সংগ্রাম করছি।

আমার এখন পর্যন্ত যা আছে তা নিম্নরূপ

  1. আমি 1M ব্যবহারকারীর কিছু নির্বাচন থেকে রেটিং সহ প্রতিটি 1000 টি সিনেমা বলেছি। প্রতিটি মুভি ব্যবহারকারীর স্কোরগুলির বিরল ভেক্টর দ্বারা প্রতিনিধিত্ব করা হয় (সারি সংখ্যা = ব্যবহারকারীর আইডি, মান = ব্যবহারকারীর স্কোর)
  2. আমি এন এলোমেলো ভেক্টর নির্মাণ। ভেক্টরের দৈর্ঘ্য চলচ্চিত্রের ভেক্টরগুলির দৈর্ঘ্যের সাথে (যেমন ব্যবহারকারীর সংখ্যা) মেলে। ভেক্টরের মানগুলি +1 বা -1 হয়। আমি স্থান সংরক্ষণের জন্য বাইনারি হিসাবে এই ভেক্টরগুলিকে প্রকৃতপক্ষে এনকোড করেছি, +1 টি 1-তে ম্যাপ করা হয়েছে এবং 0-তে ম্যাপ করা হয়েছে
  3. আমি মুভিটির ডট প্রোডাক্ট এবং প্রতিটি এন এলোমেলো ভেক্টর গ্রহণ করে প্রতিটি সিনেমার জন্য স্কেচ ভেক্টর তৈরি করি (অথবা এর পরিবর্তে, যদি আমি এন র্যান্ডম ভেক্টরগুলিকে অনুভূমিকভাবে রেখে এবং একে অপরের উপরে স্থাপন করে স্কেচ ভেক্টর তৈরি করি তবে স্কেচ মুভিটির জন্য মি আর * মি) রয়েছে, তারপরে ফলাফল ভেক্টরের প্রতিটি উপাদানের চিহ্ন নিয়ে যাব, সুতরাং আমি +1 এবং -1 এস এর প্রতিটি সিনেমার স্কেচ ভেক্টর দিয়ে শেষ করব যা আবার আমি বাইনারি হিসাবে এনকোড করেছি। প্রতিটি ভেক্টর দৈর্ঘ্য এন বিট হয়।
  4. পরবর্তী আমি নিম্নলিখিতগুলি করে অনুরূপ স্কেচগুলি সন্ধান করি
    1. আমি স্কেচ ভেক্টরকে বি বিটির বি ব্যান্ডগুলিতে বিভক্ত করেছি
    2. R বিটের প্রতিটি ব্যান্ড একটি সংখ্যা। আমি সেই নম্বরটি ব্যান্ড নম্বরটির সাথে একত্রিত করি এবং মুভিটি সেই সংখ্যার অধীনে একটি হ্যাশ বালতিতে যুক্ত করি। প্রতিটি মুভি একাধিক বালতিতে যুক্ত করা যায়।
    3. আমি তারপর প্রতিটি বালতি তাকান। একই বালতিতে থাকা যে কোনও সিনেমা হ'ল প্রার্থী জুটি।

এটি এমএমডিএসের ৩..3.৩ এর সাথে তুলনা করে, আমার এবং পদক্ষেপটি যখন আমি r বিটের ব্যান্ডগুলিতে দেখি - আর এক বিচিত্র মুভিগুলি অ্যান্ড স্টেপ পাস করে যদি আর বিটগুলির একই মান থাকে। আমার OR পদক্ষেপ বালতিতে ঘটে: সিনেমাগুলি উভয় বালতিতে থাকলে প্রার্থী জুটি।

বইটি পরামর্শ দেয় যে আমি আরও ওআর এবং ওআর পদক্ষেপগুলি যুক্ত করে আমার ফলাফলগুলিকে "প্রশস্ত" করতে পারি, তবে কীভাবে এটি ব্যবহারিকভাবে করা যায় তার জন্য আমি ক্ষতিগ্রস্থ হচ্ছি কারণ আরও স্তরগুলির জন্য নির্মাণ প্রক্রিয়াটির ব্যাখ্যাটি বরং যুগলভাবে সমতা যাচাইয়ের ক্ষেত্রে রয়েছে বালতি নম্বর নিয়ে আসছে।

আমাকে কীভাবে এটি করতে হয় কেউ বুঝতে সাহায্য করতে পারে?

উত্তর:


4

আমি মনে করি আমি কিছু কাজ করেছি। মূলত আমি এমন একটি পদ্ধতির সন্ধান করছি যা মানচিত্রের ক্ষেত্রে / টাইপ পরিবেশকে হ্রাস করে এবং আমি মনে করি যে এই পদ্ধতিটি এটি করে।

সুতরাং,

  • ধরুন আমার কাছে সারি সারিগুলির বি ব্যান্ড রয়েছে এবং আমি অন্য একটি এবং মঞ্চ যুক্ত করতে চাই, অন্য একটি সিআএনএস বলুন।
  • সুতরাং বি * আর বিটের পরিবর্তে আমার বি * আর * সি বিটের হ্যাশগুলি দরকার
  • এবং আমি আমার আগের পদ্ধতিটি সি বার, বি বি আর বিতে প্রতিবার চালিত করি
  • X এবং y এর মধ্যে যে কোনও একটি পদ্ধতিতে প্রার্থী জুটি হিসাবে পাওয়া যায় তবে এটি কী এবং মান 1 হিসাবে আইডি (x, y) এর টিপল সহ, একটি মূল মান জুটি ((x, y), 1) নির্গত করে it
  • সি প্রক্রিয়া শেষে আমি কী এবং যোগফল দ্বারা এই জোড়গুলিকে গ্রুপ করি
  • গ এর সমতুল্য সমষ্টি সহ যে কোনও জোড়া (x, y) প্রতিটি সি রাউন্ডের প্রার্থী জুটি এবং একইভাবে পুরো পদ্ধতির প্রার্থী জুটি।

সুতরাং এখন আমার একটি কার্যক্ষম সমাধান আছে এবং আমার যা করা দরকার তা হ'ল এই জাতীয় 3 টি পদক্ষেপ ব্যবহার করা আসলে আমাকে কম সামগ্রিক হ্যাশ বিট বা আরও ভাল সামগ্রিক পারফরম্যান্সের সাথে আরও ভাল ফলাফল পেতে সহায়তা করবে কিনা ...


0

আমি স্রেফ মন্তব্য করতাম তবে পারব না। আমি এলএসএইচ এম্প্লিফিকেশন এর ব্যবহারিক চিকিত্সা খুঁজছিলাম এবং আপনি যা উপস্থাপন করেছেন তা প্রচুর অর্থবোধ করে। আমি যা সংগ্রহ করি তা থেকে প্রাথমিক হ্যাশ ফাংশন হলকিছু এলোমেলো ভেক্টর , এবং এর পরে , এবং অবশেষে OR, বাএখন আপনি ও বা ব্যবহার করতে পারেন

h(x,v)={0if sgn(xv)<01else
vh(x,i)=(h(x,vi+1),...,h(x,vi+r))h(x,j)=f(h(x,rj),j)
h(x,y)={1if h(x,j)=h(y,j) for any j[0,b)0else
h(x,y)আপনি বর্ণনা হিসাবে। তারপরে আপনি কেবল ও / বা লজিক্যাল স্টেটমেন্টের ভিত্তিতে প্রার্থী বেছে নিচ্ছেন; আপনি আসলে আর হ্যাশ না। এই বিন্দু হ্যাশ অব্যাহত রাখার জন্য, আপনি একটি ম্যাপিং প্রয়োজন চাই বিন ধরনের প্রতিটি ভেক্টর শুধুমাত্র একবার মনে হচ্ছে, , কিন্তু এমনটি এছাড়াও সম্ভবত মিথ্যা positives পরিচয় করিয়ে দিতে এবং / অথবা হবে নেগেটিভ। হ্যাশের জন্য একটি ধারণা হ'ল সমস্ত জন্য সর্বনিম্ন (বা সর্বনিম্ন সমস্ত এবং সমস্ত প্রত্যক্ষ এবং পরোক্ষভাবে যুক্ত ) for উভয়ই স্পষ্টত পক্ষপাতিত্ব পরিচয় করিয়ে দেবে। আমি এগুলির মধ্যে একটি চেষ্টা করতে পারি, যদিও আমি নিশ্চিত নই যে একটি এলোমেলো হেডগুলি এবং / অথবা এর পরের বারের অর্থবহ হবে।h^:SSSh(x,j)jjyv এবং বিপুল সংখ্যক প্রতিলিপি, সম্ভবত?
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.