আমি নীচের কাগজটি পড়ছি এবং নেতিবাচক নমুনার ধারণাটি বুঝতে আমার কিছুটা সমস্যা হচ্ছে।
http://arxiv.org/pdf/1402.3722v1.pdf
দয়া করে কেউ সাহায্য করতে পারেন?
আমি নীচের কাগজটি পড়ছি এবং নেতিবাচক নমুনার ধারণাটি বুঝতে আমার কিছুটা সমস্যা হচ্ছে।
http://arxiv.org/pdf/1402.3722v1.pdf
দয়া করে কেউ সাহায্য করতে পারেন?
উত্তর:
ধারণাটি word2vec
হ'ল ভেক্টরগুলির মধ্যে শব্দের জন্য মিলের (ডট পণ্য) সর্বাধিক করে তোলা যা পাঠ্যের সাথে একত্রে (একে অপরের প্রসঙ্গে) উপস্থিত হয় এবং শব্দের মিল খুঁজে পায় না যা না হয়। আপনি যে কাগজের সাথে লিঙ্ক করেছেন তার সমীকরণ (3) এ, ক্ষণিকের জন্য ক্ষণিকের জন্য উপেক্ষা করুন। তোমার আছে
v_c * v_w
-------------------
sum(v_c1 * v_w)
অঙ্কটি মূলত শব্দ c
(প্রসঙ্গ) এবং w
(লক্ষ্য) শব্দের মধ্যে মিল রয়েছে the হর অন্য সব প্রেক্ষিতে এর সাদৃশ্য নির্ণয় c1
এবং টার্গেট শব্দ w
। এই অনুপাতকে সর্বাধিক করে তোলার মাধ্যমে শব্দগুলিকে টেক্সটটিতে আরও একত্রে উপস্থিত হওয়া নিশ্চিত হয় না যা শব্দের চেয়ে বেশি অনুরূপ ভেক্টর রয়েছে। তবে এটির কম্পিউটিং করা খুব ধীর হতে পারে কারণ অনেকগুলি প্রসঙ্গ রয়েছে c1
। নেতিবাচক স্যাম্পলিং এই সমস্যাটির সমাধানের অন্যতম উপায় - c1
এলোমেলোভাবে কেবল কয়েকটি প্রসঙ্গ নির্বাচন করুন। শেষ ফলাফল যে যদি cat
প্রেক্ষাপটে প্রদর্শিত হয় food
, তাহলে ভেক্টরের food
বেশি ভেক্টর অনুরূপ cat
(তাদের ডট গুণফল দ্বারা পরিমাপ করে হিসাবে) এর ভেক্টর চেয়ে বেশ কয়েকটি এলোমেলোভাবে নির্বাচিত শব্দ(যেমন democracy
, greed
, Freddy
), পরিবর্তে ভাষায় অন্যান্য সকল শব্দের। এটি word2vec
প্রশিক্ষণের জন্য আরও অনেক দ্রুত করে তোলে ।
word2vec
, কোনও প্রদত্ত শব্দের জন্য আপনার শব্দের একটি তালিকা রয়েছে যা এর সাথে সাদৃশ্যপূর্ণ হওয়া দরকার (ধনাত্মক শ্রেণি) তবে নেতিবাচক শ্রেণি (যে শব্দগুলি টার্জার শব্দের সাথে সমান নয়) স্যাম্পল করে সংকলিত।
কম্পিউটারে সফটম্যাক্স (বর্তমান টার্গেট শব্দের সাথে কোন শব্দটি মিল রয়েছে তা নির্ধারণের জন্য কাজ) ব্যয়বহুল, যেহেতু ভি (ডিনোমিনেটর) এর সমস্ত শব্দের উপরে সংশ্লেষ প্রয়োজন , যা সাধারণত খুব বড়।
কি করা যেতে পারে?
সফটম্যাক্সকে আনুমানিক করার জন্য বিভিন্ন কৌশল প্রস্তাব করা হয়েছে । এই পদ্ধতিগুলি সফটম্যাক্স-ভিত্তিক এবং স্যাম্পলিং-ভিত্তিক পদ্ধতির । সফটম্যাক্স-ভিত্তিক পদ্ধতি হ'ল এমন পদ্ধতি যা সফটম্যাক্স স্তরটিকে অটুট রাখে, তবে এর কার্যকারিতাটি উন্নত করতে এর আর্কিটেকচারটি সংশোধন করে (যেমন হায়ারার্কিকাল সফটম্যাক্স)। নমুনাভিত্তিকঅন্যদিকে পন্থাগুলি সম্পূর্ণভাবে সফটম্যাক্স স্তরটিকে ছাড়িয়ে যায় এবং পরিবর্তে সফটম্যাক্সের সান্নিধ্যযুক্ত কিছু অন্যান্য ক্ষয় ফাংশন অনুকূল করে তোলে (তারা সফটম্যাক্সের ডিনোমিনেটরে সাধারণকরণের কাছাকাছি করে অন্য কিছু ক্ষতির সাথে তুলনামূলকভাবে সস্তা যে এটি পছন্দ করে নেতিবাচক নমুনা)।
ওয়ার্ড 2vec এ ক্ষতির ফাংশনটি হ'ল:
কোন লোগারিদম এটিকে পচন করতে পারে:
কিছু গাণিতিক এবং গ্রেডিয়েন্ট সূত্র সহ ( 6 এ আরও বিশদ দেখুন ) এতে রূপান্তরিত হয়েছে:
আপনি দেখতে পেয়েছেন এটি বাইনারি শ্রেণিবদ্ধকরণ কার্যে রূপান্তরিত হয়েছে (y = 1 ধনাত্মক শ্রেণি, y = 0 নেতিবাচক শ্রেণি)। আমাদের বাইনারি শ্রেণিবদ্ধকরণ কার্য সম্পাদন করার জন্য আমাদের লেবেলগুলির প্রয়োজন হিসাবে, আমরা সমস্ত প্রসঙ্গ শব্দকে সি লেবেল (y = 1, ধনাত্মক নমুনা) হিসাবে মনোনীত করি এবং কর্পোরেশন থেকে এলোমেলোভাবে মিথ্যা লেবেল হিসাবে নির্বাচিত (y = 0, নেতিবাচক নমুনা) k
নিম্নলিখিত অনুচ্ছেদে দেখুন। ধরুন আমাদের টার্গেট শব্দটি হ'ল " ওয়ার্ড 2 ওয়েভ " 3 জানালা দিয়ে, আমাদের প্রসঙ্গ কথা বলেন: The
, widely
, popular
, algorithm
, was
, developed
। এই প্রসঙ্গে শব্দগুলি ইতিবাচক লেবেল হিসাবে বিবেচনা করে। আমাদের কিছু নেতিবাচক লেবেলও দরকার। আমরা এলোমেলোভাবে (কর্পাস থেকে কিছু শব্দ বাছাই produce
, software
, Collobert
, margin-based
,probabilistic
) এবং তাদের নেতিবাচক নমুনা হিসাবে বিবেচনা। এই কৌশলটি যা আমরা কর্পাস থেকে এলোমেলোভাবে উদাহরণ বেছে নিয়েছি তাকে নেতিবাচক নমুনা বলা হয়।
তথ্যসূত্র :
আমি এখানে নেতিবাচক নমুনা সম্পর্কে একটি টিউটোরিয়াল নিবন্ধ লিখেছিলাম ।
কেন আমরা নেতিবাচক নমুনা ব্যবহার করি? -> গণনা ব্যয় হ্রাস করতে
ভ্যানিলা স্কিপ-গ্রাম (এসজি) এবং স্কিপ-গ্রাম নেতিবাচক নমুনা (এসজিএনএস) এর ব্যয় ক্রিয়াকলাপটি এর মতো দেখায়:
নোটটি T
হ'ল সমস্ত ভোকাবের সংখ্যা। এটি সমান V
। অন্য কথায়, T
= V
।
এসজিতে সম্ভাব্যতা বিতরণটি কর্পাসের p(w_t+j|w_t)
সমস্ত V
ভোকাবের জন্য গণনা করা হয়:
V
স্কিপ-গ্রাম মডেলের প্রশিক্ষণ দেওয়ার সময় সহজেই হাজার হাজার ছাড়িয়ে যেতে পারে। সম্ভাবনাটি V
গণনার বার করা দরকার, এটি গণনাগতভাবে ব্যয়বহুল করে তোলে। তদ্ব্যতীত, ডিনোমিনেটরে স্বাভাবিককরণের ফ্যাক্টরের অতিরিক্ত V
গণনা প্রয়োজন ।
অন্যদিকে, এসজিএনএসে সম্ভাব্যতা বন্টন এর সাথে গণনা করা হয়:
c_pos
ধনাত্মক শব্দের জন্য একটি শব্দ ভেক্টর, এবং আউটপুট ওজন ম্যাট্রিক্সের W_neg
সমস্ত K
নেতিবাচক নমুনাগুলির জন্য শব্দ ভেক্টর । এসজিএনএসের সাথে, সম্ভাবনাটি কেবল K + 1
কয়েকবার গণনা করা দরকার , যেখানেK
সাধারণত 5 ~ 20 এর মধ্যে থাকে, তদ্ব্যতীত, ডিনোমিনেটরে সাধারণকরণ ফ্যাক্টর গণনা করার জন্য কোনও অতিরিক্ত পুনরাবৃত্তি প্রয়োজন হয় না।
এসজিএনএসের সাথে প্রতিটি প্রশিক্ষণের নমুনার জন্য কেবলমাত্র ওজনের একটি ভগ্নাংশ আপডেট করা হয়, যেখানে এসজি প্রতিটি প্রশিক্ষণের নমুনার জন্য সমস্ত মিলিয়ন ওজন আপডেট করে।
কীভাবে এসজিএনএস এটি অর্জন করবে?-> বহু-শ্রেণিবদ্ধকরণ কার্যকে বাইনারি শ্রেণিবদ্ধকরণ কার্যে রূপান্তর করে।
এসজিএনএসের সাহায্যে, শব্দ ভেক্টরগুলি আর কোনও কেন্দ্রের শব্দের প্রসঙ্গ শব্দগুলির পূর্বাভাস দিয়ে শিখতে পারে না। এটি গোলমাল বিতরণ থেকে এলোমেলোভাবে আঁকা শব্দগুলি (নেতিবাচক) থেকে প্রকৃত প্রসঙ্গের শব্দগুলি (ধনাত্মক) আলাদা করতে শেখে।
বাস্তব জীবনে, আপনি সাধারণত regression
এলোমেলো শব্দের মতো Gangnam-Style
বা এলোমেলো শব্দ ব্যবহার করে না pimples
। ধারণাটি হ'ল যদি মডেলটি সম্ভাব্য (পজিটিভ) জোড়া বনাম সম্ভাব্য (নেতিবাচক) জোড়াগুলির মধ্যে পার্থক্য করতে পারে তবে ভাল শব্দ ভেক্টর শিখতে হবে।
উপরের চিত্রটিতে, বর্তমান ধনাত্মক শব্দ-প্রসঙ্গের জুটি ( drilling
, engineer
)। K=5
নেতিবাচক নমুনা আছে এলোমেলোভাবে টানা থেকে গোলমাল বন্টন : minimized
, primary
, concerns
, led
, page
। প্রশিক্ষণ নমুনাগুলির মাধ্যমে মডেলটি পুনরাবৃত্তি হওয়ার সাথে সাথে ওজনগুলি অনুকূলিত হয় যাতে ইতিবাচক জোড়ার p(D=1|w,c_pos)≈1
সম্ভাবনা আউটপুট হয়ে যায় এবং নেতিবাচক জোড়গুলির সম্ভাবনা আউটপুট হয়ে যায় p(D=1|w,c_neg)≈0
।
K
যেমন V -1
, তারপর নেতিবাচক স্যাম্পলিং যেমন ভ্যানিলা লাফালাফি-গ্রাম মডেল একই। আমার বোধগম্যতা কি সঠিক?