Tensorflow ডিসিশন ফরেস্ট মডেলের সাথে পাঠ্য ব্যবহার করার উপায়

এটি একটি ডকুমেন্টেশন মার্কডাউন পেজ। আরও তথ্যের জন্য, মার্কডাউন রেফারেন্স (go/documentation-reference) এবং ডকুমেন্টেশন স্টাইল গাইড (go/documentation-style) দেখুন।

পটভূমি

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

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

বৈশিষ্ট্য ব্যবহারকারী আইডি পূর্বে কেনাকাটা পণ্যের শিরোনাম পণ্যের বর্ণনা
উদাহরণ ডেটা 1234 ["টিভি", "ভ্যাকুয়াম"] "ওয়াইফাই রাউটার" "এই রাউটারটি হল ..."


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

দ্রুত রেফারেন্স

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

অনুমান গতি প্রশিক্ষণের গতি টোকেন <> লেবেল সম্পর্ক মুখস্থ করার ক্ষমতা সাধারণীকরণ
একাধিক ক্যাটাগরিকাল দ্রুততম (++) দ্রুততম (++) লিমিটেড সীমিত (+)
বহু গরম দ্রুত (+) দ্রুত (অপেক্ষাকৃত ছোট শব্দের আকার অনুমান করে) (++) ভাল সীমিত (+)
শ্রেণীবদ্ধ-সেট দ্রুততম (+++) ধীর (+) সেরা সীমিত (++)
এমবেডিং সবচেয়ে ধীর (অ-তুচ্ছ এনকোডার অপ্স ধরে নেওয়া, ম্যাট্রিক্স গুণের মতো) (+ থেকে +++) দ্রুততম (ভোকাবের আকার ধরে নেওয়া >> এম্বেডিং মাত্রা) (+++) খারাপ ভাল (++ থেকে +++)

এন-গ্রাম

এন-গ্রাম (যেমন {"the", "cat", "is", "blue"} -> {"<start> the", "the cat", "cat is", "is blue", "blue < end>"}) অনেক ক্ষেত্রে উপকারী হতে পারে, এবং স্থানীয় আভিধানিক তথ্য ক্যাপচার করতে পারে। এগুলি নীচের সমস্ত পদ্ধতিতে সমর্থিত, তবে নাটকীয়ভাবে বড় শব্দভান্ডারের আকারে আসে, যা প্রশিক্ষণের খরচের কারণে তাদের অব্যবহারিক করে তুলতে পারে।

নিরুৎসাহিত কৌশল

ওয়ান-হট / মাল্টি-হট এনকোডিং / শব্দের ব্যাগ

ওয়ান-হট এনকোডিং হল স্পার্স টেক্সট ঘন করার জন্য একটি ক্লাসিক কৌশল। এখানে আমরা একটি এক্সটেনশন ধরে নিই যেখানে একটি স্পার্স টেক্সট বৈশিষ্ট্য একটি মাল্টি-হট (সমস্ত টোকেনের জন্য 1s) বা গণনা-ভিত্তিক ভেক্টরাইজেশন (শব্দভান্ডারে প্রতিটি টোকেনের জন্য গণনা) দ্বারা প্রতিনিধিত্ব করা হয়।

উদাহরণস্বরূপ, যদি শব্দভাণ্ডারটি 4টি আইটেম হয় এবং [“টিভি”, “ভ্যাকুয়াম”, “ওয়াইফাই”, “রাউটার”] এর মতো সূচীযুক্ত হয়, তবে বৈশিষ্ট্যটি “আগের কেনাকাটাগুলি” একটি ঘন ভেক্টর হবে <1, 1, 0, 0 > যদি গণনাকে বিবেচনায় নেওয়া হয় এবং বৈশিষ্ট্যটি [“TV”, “TV”, “Vacuum”] হয়, তাহলে তা হবে <2, 1, 0, 0>।

পেশাদার

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

কনস

  • এই কৌশলটি প্রায়শই অত্যন্ত ভারসাম্যহীন এবং বিরল বিভাজনের দিকে নিয়ে যায়, যা ডিএফ শেখার অ্যালগরিদমগুলিকে একত্রিত হতে ধীর বা সাবপার করতে পারে। এই কারণ:
    • একই তথ্য শিখতে আরও বিভাজন প্রয়োজন
    • উচ্চ বিরল গাছগুলি সুষম গাছের চেয়ে খারাপ সাধারণীকরণ করে, সাধারণত কম সঠিক মডেলের ফলে।
  • অবস্থানগত তথ্য বিবেচনায় নেয় না। এটি প্রাকৃতিক ভাষার বৈশিষ্ট্যগুলির জন্য কার্যক্ষমতাকে ক্ষতিগ্রস্ত করতে পারে।
  • ক্যাটাগোরিকাল ডেটাতে সংখ্যাসূচক বিভাজন শেখা উপ-অনুকূল; এখানে সুনির্দিষ্ট বিভাজন খুঁজে বের করার জন্য অপ্টিমাইজেশান রয়েছে যা এখানে লিভারেজ করা হয়নি।
  • প্রশিক্ষণ কম্পিউটেশনাল জটিলতা শব্দভান্ডারের আইটেমগুলির সংখ্যার সাথে রৈখিকভাবে স্কেল করে (যা প্রতিটি একটি সংখ্যাগত বৈশিষ্ট্য হিসাবে ব্যবহার করা হবে)। অনুশীলনে, যদি না ডেটাসেট খুব ছোট হয় (যে ক্ষেত্রে বড় শব্দভান্ডারগুলি অতিরিক্ত ফিটিংকে উত্সাহিত করতে পারে), এটি > 5k আইটেমের শব্দভান্ডারকে প্রশিক্ষণের জন্য খুব ধীর করে তোলে।
  • প্রশিক্ষণ মেমরি খরচ হবে 1 বাইট (এক-হটের জন্য) বা 4 বাইট (গণনার জন্য) প্রতি শব্দভান্ডার আইটেম প্রতি উদাহরণ, যেহেতু সূচীকরণের সময়, ডেটা স্পার্স ডেটার ঘন সংস্করণ হিসাবে সংরক্ষণ করা হবে। এটি বৃহত্তর শব্দভান্ডার এবং ডেটাসেটের জন্য নিষেধমূলকভাবে বড় হতে পারে।

একটি নির্দিষ্ট দৈর্ঘ্য সহ একাধিক শ্রেণীগত বৈশিষ্ট্য

যেহেতু ডিসিশন ফরেস্ট অ্যালগরিদম দ্বারা সুনির্দিষ্ট বৈশিষ্ট্যগুলি দক্ষতার সাথে শেখা যায়, তাই স্পার্স টোকেন ব্যবহার করার একটি প্রাকৃতিক উপায় হল প্যাড/ক্লিপ করা যাতে উদাহরণ প্রতি নির্দিষ্ট সংখ্যক ইনপুট টোকেন থাকে এবং প্রতিটি টোকেন অবস্থান একটি পৃথক এবং স্বতন্ত্র বৈশিষ্ট্য। উপরের উদাহরণে, যদি "আগের কেনাকাটা"-তে সর্বাধিক 5টি টোকেন থাকে, তাহলে আমরা f1...f5 টোকেন 1-5 প্রতিনিধিত্ব করে বৈশিষ্ট্য তৈরি করতে পারি, এবং যেকোন টোকেন > 5 বাতিল করতে পারি, এবং <5 আছে এমন উদাহরণের জন্য অনুপস্থিত মান যোগ করতে পারি।

পেশাদার

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

কনস

  • "অনুপস্থিত" প্যাডেড টোকেনগুলিতে শব্দার্থ যোগ করে যা মডেলে শব্দ হিসাবে কাজ করবে। এটি বিশেষভাবে উচ্চারিত হবে যদি প্রতি উদাহরণে টোকেনের সংখ্যার মধ্যে একটি বড় পার্থক্য থাকে, যা "পণ্য বিবরণ" বৈশিষ্ট্যের সাথে ঘটতে পারে।
  • শেখা গাছগুলি অর্ডার করার জন্য অত্যন্ত সংবেদনশীল হবে, যেমন বৈশিষ্ট্যটি [“A”, “B”] হলে ভবিষ্যদ্বাণীটি [“B”, “A”] এর পূর্বাভাস থেকে ভিন্ন হবে, এবং যদি পরবর্তীটি কখনও দেখা না হয় ডেটাতে, মডেলটি পূর্বের থেকে সাধারণীকরণ করতে অক্ষম হবে। সাধারণভাবে, পজিশন ইনভেরিয়েন্স শিখতে এর জন্য অনেক বেশি ডেটার প্রয়োজন হবে।
  • ডিফল্টরূপে, প্রতিটি টোকেন একটি ভিন্ন শব্দভান্ডার সহ একটি বৈশিষ্ট্য দ্বারা প্রতিনিধিত্ব করা হবে। এমনকি যদি আপনি বাস্তবায়নকে প্রতি বৈশিষ্ট্যের জন্য একই সেট শব্দভান্ডার আইটেম বিবেচনা করতে বাধ্য করেন, তবে f1=”TV” হবে f2=”TV” থেকে আলাদা শব্দভান্ডার আইটেম। এর মানে হল অ্যালগরিদম টোকেন "টিভি" এবং লেবেলের মধ্যে সম্পর্ক শেখার ক্ষেত্রে কম দক্ষ হবে -- একে প্রতিটি টোকেন অবস্থানের জন্য আলাদাভাবে শিখতে হবে।

ভাল কৌশল

শ্রেণীবদ্ধ সেট

ক্যাটাগরিকাল সেট ( https://arxiv.org/pdf/2009.09991.pdf ) হল টিএফ-ডিএফ-এর ডিফল্ট বৈশিষ্ট্য উপস্থাপনা স্পার্স টেক্সটের জন্য। একটি সুনির্দিষ্ট সেট কার্যকরভাবে শব্দের একটি ব্যাগ, সদৃশ এবং ক্রম উপেক্ষা করে। উদাহরণ স্বরূপ, “The TV is the best” বৈশিষ্ট্যটি শ্রেণীবদ্ধ সেট {“সেরা”, “is”, “the”, “TV} দ্বারা উপস্থাপিত হবে।

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

if description contains “high” AND “speed” AND “gaming”:
  return True

এই ক্ষেত্রে, নেটিভ ক্যাটাগরিকাল সেট স্প্লিটার 1 স্প্লিট শিখবে, যেখানে {“হাই”, “স্পীড”, “গেমিং”} => সত্য।

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

পেশাদার

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

কনস

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

এমবেডিং

নিউরাল নেটওয়ার্কগুলি বিভিন্ন এনএলপি টাস্কে অত্যাধুনিক পারফরম্যান্স প্রদর্শন করেছে, এবং অভ্যন্তরীণভাবে বৈশিষ্ট্যগুলি খুব আলাদাভাবে ব্যবহার করা সত্ত্বেও, সংখ্যাগত বৈশিষ্ট্য হিসাবে ব্যবহার করা প্রাক-প্রশিক্ষিত এম্বেডিংগুলি অভিজ্ঞতাগতভাবে সিদ্ধান্ত বন অ্যালগরিদমের সাথেও ভাল কাজ করে। দ্রষ্টব্য যে এখানে আমরা "এম্বেডিং" কে যেকোন নিউরাল নেটওয়ার্ক এনকোডিং হিসাবে উল্লেখ করি, যেমন ট্রান্সফরমার / কনভোলিউশনাল / পুনরাবৃত্ত স্তরগুলির আউটপুট।

প্রাক-প্রশিক্ষিত এম্বেডিংগুলি আংশিকভাবে নিউরাল নেটওয়ার্কগুলির সাথে ভাল কাজ করে কারণ ইউক্লিডিয়ান স্পেসে অনুরূপ টোকেন বা বাক্যগুলি কাছাকাছি থাকা একটি ভেক্টর স্পেসের প্রারম্ভিকতা এনএলপি কাজগুলি জুড়ে ভালভাবে স্থানান্তর করতে দেখায় এবং সেই প্রারম্ভিকতার গ্রেডিয়েন্টগুলি একত্রিত হতে ছোট এবং দ্রুততর হয়। একটি সম্পূর্ণ র্যান্ডম আরম্ভের চেয়ে. যাইহোক, সিদ্ধান্ত গাছ পৃথক সংখ্যাসূচক বৈশিষ্ট্য হিসাবে এমবেডিং ব্যবহার করে, এবং সেই স্বতন্ত্র বৈশিষ্ট্যগুলির অক্ষ-সারিবদ্ধ পার্টিশন শিখে 1 । এর মানে হল একই শব্দার্থিক তথ্য ব্যবহার করা প্রায় অসম্ভব -- একটি ডট পণ্য বা একটি ম্যাট্রিক্স গুণন, উদাহরণস্বরূপ, অক্ষ-সারিবদ্ধ বিভাজনের একটি সেট দিয়ে উপস্থাপন করা যায় না। তদুপরি, নিউরাল নেটওয়ার্কের বিপরীতে, যা প্রশিক্ষণের সময় গ্রেডিয়েন্ট ডিসেন্টের মাধ্যমে এম্বেডিং আপডেট করতে পারে, ডিফল্ট সিদ্ধান্ত ফরেস্ট লার্নিং অ্যালগরিদমগুলি অ-পার্থক্যযোগ্য, অর্থাৎ এমবেডিংগুলি অবশ্যই হিমায়িত থাকবে৷ উল্লেখ্য যে পার্থক্যযোগ্য সিদ্ধান্ত বনের উপর কাজ আছে ( https://arxiv.org/pdf/2007.14761.pdf, উদাহরণস্বরূপ)। যাইহোক, সম্ভবত আংশিকভাবে কারণ বাস্তবে একটি এমবেডিংয়ের সমস্ত তথ্যের বিটগুলি বাস্তবে ব্যবহার করা হয় না, এমনকি নিউরাল নেটওয়ার্ক দ্বারাও, এই কৌশলটি এখনও সিদ্ধান্ত বনের সাথে ভাল কাজ করে।

সুবিধা:

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

কনস

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

মন্তব্য


  1. তির্যক বিভাজন সক্ষম করার ফলে অক্ষ-সারিবদ্ধ তথ্য শেখার অনুমতি দেওয়া যেতে পারে, তবে এটি এখনও একটি মাত্রা-বাই-মাত্রার ভিত্তিতে থাকবে।