কনভুলেশনাল নিউরাল নেটওয়ার্ক ব্যবহার করে ডকুমেন্টের শ্রেণিবিন্যাস


11

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


2
TfIdf ভেক্টরাইজার ব্যবহার করা কি উপযুক্ত বলে মনে হচ্ছে? প্রতিটি ডকুমেন্টের জন্য কেবল শীর্ষ x শব্দ রেখে শব্দ 2vec এর সংমিশ্রণে?
দিয়েগো

ভাল, আমি জানি না টিএফल्डফ কী। আমি এটি যাচ্ছি কিনা তা পরীক্ষা করে দেখতে যাচ্ছি। আপনাকে ধন্যবাদ
লেহেনহক্সং

scikit-learn.org/stable/modules/… উদাহরণস্বরূপ
দিয়েগো

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

মুল বক্তব্যটি ছিল তাদের টিএফআইডিএফ দ্বারা রেকর্ডকৃত ডকুমেন্ট অনুযায়ী কেবল এক্স অ-তুচ্ছ শব্দ। তারপরে ডকুমেন্ট ম্যাট্রিক্সগুলি তৈরি করতে আপনার আসল এনকোডিংটি ব্যবহার করুন। এই দুই পদক্ষেপের পদ্ধতির ধারণাটি এসেছিল কিনা নিশ্চিত না।
দিয়েগো

উত্তর:


8

আপনি শব্দের ভেক্টরগুলির দীর্ঘতর সিরিজের পরিবর্তে বাক্য ভেক্টরের সিরিজ হিসাবে আপনার দস্তাবেজগুলিকে উপস্থাপন করে আপনার ইনপুট ডেটার দৈর্ঘ্য হ্রাস করতে পারেন। ডক 2vec এটি করার একটি উপায় (প্রতিটি বাক্য একটি "নথি" হবে)।

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

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

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

বিভিন্ন দৈর্ঘ্যের নথিগুলি হ্যান্ডেল করার একটি উপায় প্যাডিংয়ের মাধ্যমে। আপনার নথির ক্রমগুলি আপনার দীর্ঘতম নথির দৈর্ঘ্যে সমান হওয়া উচিত। সুতরাং যদি আপনার দীর্ঘতম দস্তাবেজটি 400 বাক্য হয় তবে সমস্ত নথির সিক্যুয়েন্স দৈর্ঘ্যে 400 ভেক্টর হবে। সর্বাধিক দৈর্ঘ্যের চেয়ে কম নথিগুলি জিরো ভরা ভেক্টরগুলির সাথে প্যাড করা হবে।


আকর্ষণীয় ধারণা। আমি চেষ্টা করব :)
lenhhoxung

আমি কি একটি প্রশ্ন করতে পারি? উল্লেখযোগ্যভাবে পৃথক দৈর্ঘ্যের (5 বাক্য / ডক, 500 বাক্য / ডক) এমনকি আমি বাক্য ভেক্টরগুলিতে তাদের উপস্থাপন করে এমন নথিগুলির সাথে আমি কীভাবে আচরণ করব? এখানে প্যাডিং অদ্ভুত বলে মনে হচ্ছে ...
4:30 এ স্ট্যাকন্ডারফ্লো

1
স্পিচ প্রসেসিংয়ে, কিছু লোক তার দৈর্ঘ্যের উপর ভিত্তি করে ক্রমগুলি অর্ডার করে যাতে অনুরূপ দৈর্ঘ্যের ক্রম একই ব্যাচে থাকবে in এটি পাঠ্যক্রমের জন্য কাজ করতে পারে।
suthee

4

আপনি অঞ্চল এম্বেডিং ব্যবহার করতে পারেন। পৃথক "টোকেন" ভেক্টরগুলিতে রূপান্তরিত করার পরিবর্তে আপনি কোনও পাঠ্যের অঞ্চলগুলিকে ভেক্টরগুলিতে রূপান্তর করতে কৌশল ব্যবহার করতে পারেন। এই পদ্ধতির এখানে ব্যবহৃত হয়: https://arxiv.org/abs/1504.01255

আপনি যদি সিএনএন-তে সীমাবদ্ধ না থাকেন তবে আপনি এই জাতীয় স্তরের ক্ষেত্রে যেমন একটি শ্রেণিবদ্ধ মনোযোগ মডেল ব্যবহার করতে পারেন: https://www.cs.cmu.edu/~diyiy/docs/naacl16.pdf যেখানে আপনার এই ধরণের পাইপলাইন রয়েছে: word vectors (combined into) sentence vectors (combined into) final document vector

মনে রাখবেন যে, এই পদ্ধতির সাহায্যে আপনাকে এখনও সমস্ত ভেক্টর শব্দের এম্বেডিংয়ে রূপান্তর করতে হবে, তবে সমস্ত একবারে নয়।

বিভিন্ন দৈর্ঘ্যের নথিগুলি হ্যান্ডেল করতে, প্যাডিং / কাটিং এখন পর্যন্ত একমাত্র সমাধান।

পরিশেষে, গতি বাড়ানোর জন্য, আপনি কেবলমাত্র গুরুত্বপূর্ণ বিভাগগুলি অন্তর্ভুক্ত করে পাঠ্যের মাত্রা হ্রাস করার চেষ্টা করতে পারেন (সম্ভবত নথির শুরুটি ভাল শ্রেণিবদ্ধকরণের যথার্থতার জন্য যথেষ্ট)


1
আপনার রেফারেন্স লিঙ্কের জন্য ধন্যবাদ। অঞ্চল এম্বেডিং আকর্ষণীয়। ভেরিয়েবল-সাইজের ডকুমেন্ট সম্পর্কিত, যেমনটি এই নিবন্ধটিতে উল্লিখিত হয়েছে arxiv.org/abs/1412.1058 (একই লেখক), আমরা প্যাডিং / কাটিংয়ের পরিবর্তে একাধিক পুলিং ইউনিট ব্যবহার করতে পারি।
lenhhoxung
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.