লোকেশন সেনসিটিভ হ্যাশিং কিভাবে বুঝবেন?


156

আমি লক্ষ্য করেছি যে এলএসএইচ উচ্চ-মাত্রার বৈশিষ্ট্যযুক্ত অনুরূপ আইটেমগুলি সন্ধান করার জন্য ভাল উপায় বলে মনে হচ্ছে।

Http://www.slaney.org/malcolm/yahoo/Slaney2008-LSHTutorial.pdf পেপারটি পড়ার পরেও আমি সেই সূত্রগুলি নিয়ে এখনও বিভ্রান্ত।

কেউ কি এমন কোনও ব্লগ বা নিবন্ধ জানেন যা সহজ উপায়টিকে ব্যাখ্যা করে?


উত্তর:


250

এলএসএইচের জন্য আমি যে সেরা টিউটোরিয়ালটি দেখেছি তা হ'ল মাইনিং অফ ম্যাসিভ ডেটাসেটস বইটিতে। পরীক্ষা করে দেখুন অধ্যায় 3 - খোঁজা অনুরূপ আইটেম http://infolab.stanford.edu/~ullman/mmds/ch3a.pdf

এছাড়াও আমি নীচের স্লাইডটি সুপারিশ করছি: http://www.cs.jhu.edu/%7Evandurme/papers/VanDurmeLallACL10-slides.pdf । স্লাইডের উদাহরণটি আমাকে কোসাইন মিলের জন্য হ্যাশিং বুঝতে খুব সহায়তা করে।

আমি বেনিয়ামিন ভ্যান ডুরমে এবং আশ্বিন লল, ACL2010 এর কাছ থেকে দুটি স্লাইড ধার করেছি এবং কোসিন দূরত্বের জন্য এলএসএইচ ফ্যামিলিগুলির অন্তর্দৃষ্টিটি কিছুটা ব্যাখ্যা করার চেষ্টা করি। এখানে চিত্র বর্ণনা লিখুন

  • চিত্রটিতে, দুটি ত্রি-মাত্রিক ডেটা পয়েন্ট উপস্থাপন করে দুটি চেনাশোনা ডাব্লু / লাল এবং হলুদ বর্ণের রয়েছে। আমরা LSH ব্যবহার করে তাদের কোসাইন মিল খুঁজে পাওয়ার চেষ্টা করছি are
  • ধূসর রেখাগুলি কিছু এলোমেলোভাবে বাছাই করা প্লেন।
  • ডেটা পয়েন্টটি ধূসর রেখার উপরে বা নীচে অবস্থিত কিনা তার উপর নির্ভর করে আমরা এই সম্পর্কটিকে 0/1 হিসাবে চিহ্নিত করি।
  • উপরের-বাম কোণে, সাদা / কালো স্কোয়ারের দুটি সারি রয়েছে, যথাক্রমে দুটি ডাটা পয়েন্টের স্বাক্ষরকে উপস্থাপন করে। প্রতিটি বর্গক্ষেত্রটি কিছুটা 0 (সাদা) বা 1 (কালো) এর সাথে সম্পর্কিত।
  • সুতরাং একবার আপনার প্লেনগুলির পুল পরে, আপনি বিমানগুলির সাথে সম্পর্কিত তাদের অবস্থানের সাথে ডেটা পয়েন্টগুলি এনকোড করতে পারেন। কল্পনা করুন যে যখন আমাদের পুলটিতে আরও প্লেন থাকবে, তখন স্বাক্ষরে এনকোড করা কৌণিক পার্থক্য প্রকৃত পার্থক্যের আরও কাছাকাছি থাকে। কারণ শুধুমাত্র দুটি পয়েন্টগুলির মধ্যে থাকা প্লেনগুলি দুটি তথ্যকে আলাদা বিট মান দেবে।

এখানে চিত্র বর্ণনা লিখুন

  • এখন আমরা দুটি তথ্য পয়েন্টের স্বাক্ষর তাকান। উদাহরণস্বরূপ, আমরা প্রতিটি ডেটা উপস্থাপন করতে কেবল 6 টি বিট (স্কোয়ার) ব্যবহার করি। আমাদের কাছে থাকা মূল ডেটার জন্য এটি এলএসএইচ হ্যাশ।
  • দুটি হ্যাশ মানটির মধ্যে হামিংয়ের দূরত্ব 1, কারণ তাদের স্বাক্ষরগুলি কেবল 1 বিট দ্বারা পৃথক হয়।
  • স্বাক্ষরের দৈর্ঘ্য বিবেচনা করে, আমরা গ্রাফিকের মতো তাদের কৌণিক মিলটি গণনা করতে পারি।

আমার এখানে অজগরটিতে কিছু নমুনা কোড রয়েছে (কেবল 50 টি লাইন) যা কোস্টিনের সাদৃশ্য ব্যবহার করছে। https://gist.github.com/94a3d425009be0f94751


কেন এটিকে লোকালটি সংবেদনশীল বলা হয়? কেননা প্রতিটি বিটের অ্যাসাইনমেন্টটি প্রতিটি পরিকল্পনার দিকে ডেটার পয়েন্টের লোকেশনের উপর নির্ভর করে?
নওড়া

21
অঞ্চল সংবেদনশীল - একে অপরের কাছাকাছি অবস্থিত ডেটা পয়েন্টগুলি অনুরূপ হ্যাশগুলিতে ম্যাপ করা হয় (উচ্চ সম্ভাবনার সাথে একই বালতিতে)।
সবুজ

2
দুঃখিত আমি এই বিষয়ে দেরি করেছি তবে কোসাইন সম্পর্কে আমার একটি প্রশ্ন ছিল। উপস্থাপনাটি বলেছে যে প্রকৃত ভেক্টর এবং বিমান ভেক্টর> = 0 বা অন্যটি 0 এর মধ্যে ডট পণ্যটি যদি বিট মান হয় তবে এটি 0 হয় ve কোসাইন যা নেতিবাচক। আমি মনে করি প্রতিটি প্লেন দুটি ভেক্টর নিয়ে গঠিত এবং আমরা প্রকৃত ভেক্টর দিয়ে তৈরি ছোট কোণটি নিই।
vkaul11

ধন্যবাদ. সুতরাং, এই কথাটি কি সঠিক যে h কৌণিক পার্থক্যকে এনকোড করে, এবং "" নির্ভুলতা "? এটির মতো আমি বুঝতে পারছি h * PI হল আলোকসজ্জার ক্ষেত্রে থিটা, এবং খ কোণের যথার্থতা।
ব্যবহারকারী 305883

1
আপনি যে স্লাইডটি সরবরাহ করেছেন তা খুব ঝরঝরে: cs.jhu.edu/~vandurme/papers/anDurmeLallACL10-slides.pdf - আপনি কি দয়া করে "পুলিং ট্রিক" এর গাণিতিক যুক্তি ব্যাখ্যা করতে পারেন - বা লিনিয়ার বীজগণিতের ধারণাগুলি আমার দেখতে হবে এটা বুঝতে কি?
ব্যবহারকারী 305883

35

ভেক্টর স্পেসে থাকা টুইটগুলি উচ্চ মাত্রিক ডেটার একটি দুর্দান্ত উদাহরণ হতে পারে।

স্থানীয় সংবেদনশীল হ্যাশিংয়ের অনুরূপ অনুরোধগুলির জন্য টুইটগুলিতে প্রয়োগ করার জন্য আমার ব্লগ পোস্টটি দেখুন।

http://micvog.com/2013/09/08/storm-first-story-detection/

এবং একটি ছবি হাজার শব্দ বলে নীচের চিত্রটি চেক করুন:

এখানে চিত্র বর্ণনা লিখুন http://micvog.files.wordpress.com/2013/08/lsh1.png

আশা করি এটা সাহায্য করবে. @mvogiatzis


21

এখানে স্ট্যানফোর্ডের একটি উপস্থাপনা যা এটি ব্যাখ্যা করে। এটা আমার জন্য একটি বড় পার্থক্য তৈরি। পার্ট টু এলএসএইচ সম্পর্কে আরও বেশি, তবে প্রথম ভাগটিও এটি কভার করে।

ওভারভিউয়ের একটি ছবি (স্লাইডগুলিতে আরও অনেক কিছু রয়েছে):

এখানে চিত্র বর্ণনা লিখুন

উচ্চ মাত্রিক ডেটাতে নিকটবর্তী অনুসন্ধান - পার্ট 1: http://www.stanford.edu/class/cs345a/slides/04-highdim.pdf

উচ্চ মাত্রিক ডেটাতে নিকটবর্তী অনুসন্ধান - পার্ট 2: http://www.stanford.edu/class/cs345a/slides/05-LSH.pdf


কেন কেবল আপনার এলএসএইচ ফাংশন হিসাবে সরাসরি মিনহাশ ব্যবহার করবেন না?
টমাস আহলে

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

7
  • এলএসএইচ এমন একটি প্রক্রিয়া যা ডকুমেন্টস / চিত্র / বস্তুর একটি সেট ইনপুট হিসাবে গ্রহণ করে এবং হ্যাশ টেবিলের এক ধরণের আউটপুট দেয়।
  • এই টেবিলের ইনডেক্স কাগজপত্র যেমন যে নথি যে একই সূচক হয় বলে মনে করা হয় ধারণ অনুরূপ এবং বিভিন্ন সূচী সেই "হয় বিসদৃশ "।
  • কোথায় অনুরূপ মেট্রিক সিস্টেমে এবং একটি থ্রেশহোল্ড আদল উপর নির্ভর করে গুলি যা LSH একটি বিশ্বব্যাপী প্যারামিটার মত কাজ করে।
  • এটা তোলে সংজ্ঞায়িত করতে কি পর্যাপ্ত থ্রেশহোল্ড আপনার ব্যাপার গুলি আপনার সমস্যা হয়।

এখানে চিত্র বর্ণনা লিখুন

এটি উল্লেখ করা গুরুত্বপূর্ণ যে বিভিন্ন মিলের ব্যবস্থাগুলিতে এলএসএইচের বিভিন্ন প্রয়োগ রয়েছে।

আমার ব্লগে, আমি মিনিহ্যাশিং (জ্যাকার্ড সদৃশতা পরিমাপ) এবং সিমহ্যাশিং (কোসাইন দূরত্ব পরিমাপ) এর ক্ষেত্রে LSH সম্পর্কে পুঙ্খানুপুঙ্খভাবে ব্যাখ্যা করার চেষ্টা করেছি। আমি আশা করি আপনি এটি দরকারী হিসাবে খুঁজে পেয়েছেন: https://aerodatablog.wordpress.com/2017/11/29/locality-sensitive-hashing-lsh/


2

আমি একজন চাক্ষুষ ব্যক্তি am অন্তর্দৃষ্টি হিসাবে আমার জন্য কাজ করে তা এখানে।

আপনি প্রায় প্রতিটি জিনিস অনুসন্ধান করতে চান তা হ'ল একটি আপেল, কিউব, একটি চেয়ারের মতো শারীরিক বস্তু।

এলএসএইচ-এর জন্য আমার অন্তর্নিহিততাটি এই বিষয়গুলির ছায়া নেওয়ার মতো। আপনি যদি কোনও 3D ঘনক্ষেত্রের ছায়া নেন তবে আপনি কোনও কাগজের টুকরোতে 2D বর্গক্ষেত্রের মতো পান, বা একটি 3D গোলক আপনাকে কোনও কাগজের টুকরোতে বৃত্তের মতো ছায়া পেয়ে যাবে।

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

এখন আমরা দক্ষতার সাথে সফ্টওয়্যারের বিটগুলির স্ট্রিংগুলি তুলনা করতে পারি। একটি নির্দিষ্ট দৈর্ঘ্যের বিট স্ট্রিং হ'ল একা মাত্রার লাইনের মতো কম বেশি, কম।

সুতরাং একটি এলএসএইচ দিয়ে আমি অবশেষে একক স্থির দৈর্ঘ্যের লাইন / বিট স্ট্রিংয়ে অবজেক্টের ছায়াগুলি পয়েন্ট (0 বা 1) হিসাবে প্রজেক্ট করব।

পুরো কৌশলটি ছায়াগুলি এমনভাবে নেওয়া যা তারা এখনও নিম্ন মাত্রায় বোঝায় যেমন তারা মূল বস্তুকে একটি ভাল পর্যায়ে সাদৃশ্যপূর্ণ যা সনাক্ত করা যায়।

পরিপ্রেক্ষিতে একটি কিউবের 2D অঙ্কন আমাকে বলে যে এটি একটি কিউব। তবে আমি দৃষ্টিকোণ ছাড়াই 3 ডি কিউব ছায়া থেকে 2D বর্গ সহজেই পার্থক্য করতে পারি না: এগুলি উভয়ই আমার কাছে বর্গক্ষেত্রের মতো লাগে।

আমি কীভাবে আমার বস্তুকে আলোর সামনে উপস্থাপন করব তা নির্ধারণ করবে যে আমি একটি ভাল শনাক্তযোগ্য ছায়া পেয়েছি কিনা। সুতরাং আমি একজন "ভাল" এলএসএইচটিকে এমন একটি হিসাবে মনে করি যা আমার বস্তুগুলিকে একটি আলোর সামনে ঘুরিয়ে দেবে যাতে তাদের ছায়াটি আমার অবজেক্টকে উপস্থাপনের জন্য সবচেয়ে বেশি স্বীকৃত।

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

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


0

খুব সংক্ষিপ্ত হিসাবে, tldr উত্তর:

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

আপনি এই উদাহরণটি সাইকিট-লার্ন ব্যবহার করে পড়তে পারেন: https://github.com/guillaume-chevalier/SGNN-Self-Governing- নিউরাল- নেটওয়ার্কস- প্রজেকশন- লেয়ার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.