@@ -16,25 +16,25 @@ date: 2025-12-04 22:30:00
1616ช่วงปีที่ผ่านมาทางทีมของผมและทีมจากบริษัท ฟังใจ ได้มีโอกาสทำระบบค้นหาเพลงที่แจ้งจัดเก็บค่าลิขสิทธิ์ จริงๆไอเดียนี้ผม กุกกิก และทีมฟังใจมีแนวคิดที่จะพัฒนากันมานานตั้งแต่ช่วงโควิด และเราได้คุยกับทางกรมทรัพสินทางปัญญามาสักพักหนึ่งเนื่องจากอยากที่จะทำระบบออกมาให้ประชาชนเข้าถึงและค้นหาเพลงได้ง่ายขึ้นเนื่องจากระบบเดิมยังไม่ตอบโจทย์ในหลายด้าน: ค้นหาเพลงได้ยาก, ระบบการตรวจเพลงซ้ำซ้อนทำงานได้ช้า, หน้าตาเหมือนระบบทั่วไปที่เข้ามาค้นหาข้อมูลได้ยาก
1717
1818ดังนั้นการค้นหาเพลงจึงทำได้ยาก เราอยากให้ระบบทำงานได้ง่ายขึ้นและประชาชนเข้าถึงเพลงต่างๆได้ดียิ่งขึ้น เช่น ถ้าเราเป็นร้านค้าที่อยากเปิดเพลง "เล่นของสูง" เราสามารถค้นหาเพลงเพื่อดูว่าบริษัทใดเป็นผู้ถือลิขสิทธิ์เพลงเล่นของสูง และเข้าไปดูอัตราจัดเก็บลิขสิทธิ์ของบริษัทนั้นได้ จากนั้นก็เข้าไปดูรายละเอียดของบริษัทเพื่อติดต่อและสอบถามต่อกับทางบริษัทจัดเก็บได้ สำหรับใครที่ยังไม่เห็นภาพ อาจจะเข้าไปทดลองใช้งานได้ที่
19- ( copyright-song.ipthailand.go.th) [ https://copyright-song.ipthailand.go.th/ ]
19+ [ copyright-song.ipthailand.go.th] ( https://copyright-song.ipthailand.go.th/ )
2020
2121
2222<figure ><center >
2323 <img width =" 600 " src =" /images/post/dip/landingpage.png " data-action =" zoom " />
2424
2525 <figcaption >
26- <a title="Reinforcement Learning Workflow ">
26+ <a title="Landing page of the search engine ">
2727 รูปที่ 1: หน้าแรกของระบบค้นหาเพลงที่แจ้งจัดเก็บค่าลิขสิทธิ์
2828 </a>
2929 </figcaption >
3030</center ></figure >
3131
3232
3333<figure ><center >
34- <img width =" 800 " src =" /images/post/dip/landingpage .png " data-action =" zoom " />
34+ <img width =" 800 " src =" /images/post/dip/results .png " data-action =" zoom " />
3535
3636 <figcaption >
37- <a title="Reinforcement Learning Workflow ">
37+ <a title="Search results ">
3838 รูปที่ 2: ผลลัพธ์การค้นหาเพลง และดูอัตราการจัดเก็บลิขสิทธิ์ของแต่ละบริษัท
3939 </a>
4040 </figcaption >
@@ -48,11 +48,14 @@ date: 2025-12-04 22:30:00
4848
4949โดยแต่ละบริษัทมีหน้าที่จัดเก็บและเก็บเงินจากการใช้งานเพลงในรูปแบบต่างๆ เช่น การเปิดเพลงในร้านอาหาร การใช้ในงานอีเวนท์ หรือการออกอากาศทางสื่อ เพื่อนำกลับไปจ่ายศิลปินในรูปแบบของ Royalty หรืออาจจะเป็นในรูปแบบของการขายเทป ซีดี ก็ได้
5050
51- > "ออกไปร้านค้าแล้วหนึ่ง cd
52- > คุณชุบชีวิตเราได้ royalty
51+ > ออกไปร้านค้าแล้วหนึ่ง CD
52+ >
53+ > คุณชุบชีวิตเราได้ Royalty
54+ >
5355> ทุกบาทที่คุณมอบให้คือกำลังใจให้เราสื่อสาร
54- > พวกเราอิ่มท้อง
55- > คุณสนุกสนาน"
56+ >
57+ > พวกเราอิ่มท้อง คุณสนุกสนาน
58+ >
5659> ผลิตภัณฑ์นี้รับประกันร้อยปี, Apartment Khunpa, 2006
5760
5861## กรมทรัพย์สินทางปัญญามีบทบาทอะไร?
@@ -63,10 +66,15 @@ date: 2025-12-04 22:30:00
6366การพัฒนาระบบค้นหาเพลงสำหรับฐานข้อมูลลิขสิทธิ์มีความท้าทายที่ระบบก่อนหน้าไม่ตอบโจทย์ ซึ่งแบ่งเป็นจุดที่แก้ไขทางเทคนิคได้ประมาณ 3 หัวข้อหลักๆคือ
6467
65681 . ** ข้อมูลที่หลากหลายและไม่เป็นมาตรฐาน**
69+
6670ข้อมูลเพลงที่ได้รับจากแหล่งต่างๆ มักมาในรูปแบบที่แตกต่างกัน บางครั้งชื่อเพลงเขียนเป็นภาษาไทย บางครั้งเป็นภาษาอังกฤษ หรือผสมกัน ชื่อศิลปินอาจสะกดต่างกันไป และโครงสร้างไฟล์ CSV หรือ Excel ที่ได้รับมามักมี column ที่ไม่ตรงกัน ดังนั้นการทำให้ format ของการเก็บเหมือนกันทั้งหมดและรองรับไฟล์หลายประเภทตอนนำเข้าจึงเป็นโจทย์แรกที่เราทำ เพื่อให้ระบบใช้งานได้ง่าย
71+
67722 . ** ข้อมูลเพลงซ้ำซ้อนที่ต้องตรวจสอบ**
73+
6874เพลงเดียวกันอาจถูกจัดเก็บจากหลายบริษัท บางครั้งอาจจะมีชื่อที่แตกต่างกันเล็กน้อย เช่น "รักเธอ" กับ "รัก เธอ" (เว้นวรรค) "Love Song" กับ "Love song" (ตัวใหญ่ตัวเล็ก) หรือ 1นาที กับ หนึ่งนาที การตรวจจับและจัดการข้อมูลซ้ำซ้อนจึงต้องใช้การประมวลผลภาษามาช่วยระดับนึง ระบบก่อนหน้าไม่ได้ใช้เทคนิคที่ช่วยจัดกลุ่ม และไม่ได้ทำ normalization ทำให้การตรวจไม่สมบูรณ์และเจ้าหน้าที่ต้องมาทำซ้ำอีกหลายเดือน ดังนั้นเราอยากจะทำระบบให้ทุกอย่างเกิดขึ้นอัตโนมัติและสามารถตรวจสอบเพลงซ้ำซ้อนในสเกลนี้ได้
75+
69763 . ** Scale ของข้อมูลที่ต้องค้นหาใหญ่มาก**
77+
7078ในแต่ละปีมีเพลงที่สามารถค้นหาได้กว่า 10 ล้านเพลง ระบบก่อนหน้าใช้การโหลดไฟล์ซึ่งเข้าถึงเพลงได้ยาก ดังนั้นโจทย์ที่สำคัญอีกอย่างคือการพัฒนาระบบที่ประชาชนค้นหาเพลงได้เร็วด้วยทรัพยากรที่จำกัด สามารถ index เพลงได้ทั้งหมด 10 ล้านเพลงต่อปี และทำงานได้รวดเร็วเพียงพอในข้อมูลสเกลนี้
7179
7280## เทคนิคที่เรานำมาแก้ปัญหาจากระบบเดิม
@@ -82,13 +90,13 @@ date: 2025-12-04 22:30:00
8290- ** ขั้นตอนที่ 1: Normalization** เราทำการ normalize ข้อมูลเพื่อให้การ blocking และ deduplication ทำได้ดียิ่งขึ้น เช่น หนึ่งชั่วโมง, 1 ชั่วโมง ปรับให้เป็นฟอร์แมตเดียวกันเพื่อให้ง่ายต่อการทำ blocking หรือการจับกลุ่มข้อมูลเพื่อหาความซ้ำซ้อนนั่นเอง
8391- **ขั้นตอนที่ 2: Blocking** ปกติถ้าเราจะเทียบเพลง 10 เพลงด้วยกัน อาจจะต้องใช้การจับเพลงเป็นคู่แล้วประเมินว่าคู่เพลงนี้จะซ้ำซ้อนกันมั้ย ถ้าคำนวณแบบปกติอาจจะต้องจับคู่เพื่อทดสอบ 10 * 9 / 2 = 45 ครั้งซึ่งจะใช้การประมวลผลมากเกินจำเป็น (รูปที่ 1) ในเชิงคอมพิวเตอร์เราใช้ big-O notation เพื่อบ่งบอกปริมาณการคำนวณที่เกิดขึ้นเทียบกับจำนวนข้อมูล ในที่นี้อาจเขียนได้เป็น \\(O(n^2)\\) ดังนั้นแทนที่จะเปรียบเทียบทุกคู่ นักวิจัยที่ทำงานด้าน deduplication ใช้เทคนิค blocking เพื่อจัดกลุ่มเพลงที่มีโอกาสซ้ำกันไว้ด้วยกันหลังจากเพลงถูก normalize แล้ว (Note ว่าการ normalize ใช้แค่สำหรับการจับคู่ แต่ว่าเรายังเก็บข้อมูลเดิมไว้อยู่) หลังจากที่ทำ blocking แล้วเราจะได้กลุ่มของเพลงที่เรานำมาทดสอบเพื่อหาความคล้ายแทนที่จะต้องทำทุกคู่เพลง โดยการคำนวณจะลดจาก \\(O(n^2)\\) เหลือ \\(O(nb^2)\\) โดย \\(b\\) เป็นขนาดเฉลี่ยของแต่ละกลุ่มแทน ซึ่ง \\(b\\) จะเล็กกว่า \\(n\\) มากๆในกรณีนี้
8492
85- เนื่องจากระบบที่ให้มีทรัพยากรน้อย เราเลือกใช้ Locality-Sensitive Hashing (LSH) เปลี่ยนข้อมูลเป็นชุดตัวเลขเพื่อหา similarity โดยเรานำเทคนิคนี้มาช่วย blocking เพื่อให้ใช้ทรัพยากรน้อยและทำงานได้เร็ว – ทดลองเทียบกับการทำ blocking แบบใช้ Jaccard similarity แบบเต็มรูปแบบแต่เร็วและใช้ทรัพยากรน้อยกว่ามาก ถ้าดูจากภาพด้านล่างจะเห็นว่าการทำ blocking ช่วยลดการคำนวณไปได้เยอะมากๆและทำให้ระบบสามารถตรวจสอบเพลงซ้ำซ้อนในกลุ่มที่เล็กลงได้
93+ เนื่องจากระบบที่ให้มีทรัพยากรน้อย เราเลือกใช้ Locality-Sensitive Hashing (LSH) เปลี่ยนข้อมูลเป็นชุดตัวเลขเพื่อหา similarity โดยเรานำเทคนิคนี้มาช่วย blocking เพื่อให้ใช้ทรัพยากรน้อยและทำงานได้เร็ว – ทดลองเทียบกับการทำ blocking แบบใช้ Jaccard similarity แบบเต็มรูปแบบแต่เร็วและใช้ทรัพยากรน้อยกว่ามาก ถ้าดูจากภาพด้านล่างจะเห็นว่าการทำ blocking ช่วยลดการคำนวณไปได้เยอะมากๆและทำให้ระบบสามารถตรวจสอบเพลงซ้ำซ้อนในกลุ่มที่เล็กลงได้
8694
8795<figure ><center >
8896 <img width =" 600 " src =" /images/post/dip/blocking.png " data-action =" zoom " />
8997
9098 <figcaption >
91- <a title="Reinforcement Learning Workflow ">
99+ <a title="Blocking in deduplication ">
92100 รูปที่ 3: การทำ Blocking สามารถลดความซับซ้อนการคำนวณเพลงที่มีโอกาสซ้ำซ้อนได้
93101 </a>
94102 </figcaption >
@@ -126,6 +134,6 @@ Pain Point คลาสสิกของ Search Engine ส่วนใหญ่
126134
127135## สรุป
128136
129- การพัฒนาระบบค้นหาเพลงที่แจ้งจัดเก็บค่าลิขสิทธิ์มีการออกแบบให้จัดการกับข้อมูลที่หลากหลาย ปริมาณมาก และมีข้อจำกัดด้านทรัพยากร การนำการประมวลผลทางภาษาที่ไม่จำเป็นต้องแฟนซี เช่น fuzzy matching, deduplication, และ search engine ทำให้ระบบสามารถทำงานได้อย่างมีประสิทธิภาพและตอบโจทย์ได้
137+ การพัฒนาระบบค้นหาเพลงที่แจ้งจัดเก็บค่าลิขสิทธิ์มีการออกแบบให้จัดการกับข้อมูลที่หลากหลาย ปริมาณมาก และมีข้อจำกัดด้านทรัพยากร การนำการประมวลผลทางภาษาที่ไม่จำเป็นต้องแฟนซี เช่น fuzzy matching, deduplication, และ search engine ทำให้ระบบสามารถทำงานได้อย่างมีประสิทธิภาพและตอบโจทย์จริงได้
130138
131139ระบบนี้ไม่เพียงช่วยให้ประชาชนทั่วไปสามารถค้นหาและซื้อลิขสิทธิ์เพลงได้อย่างถูกต้องตามกฎหมาย และอาจจะเป็นส่วนช่วยให้ศิลปินและผู้สร้างสรรค์งานเพลงได้รับค่าตอบแทนที่ควรจะได้อย่างเป็นธรรมผ่านการค้นหาที่สะดวกมากขึ้น ถึงแม้ว่ายังมีอีกหลายปัญหาที่เราต้องพัฒนาและแก้ต่อไป ทีมของผมก็หวังว่าเครื่องมือนี้จะเป็นส่วนนึงในการสนับสนุนอุตสาหกรรมเพลงไทยในอนาคตครับ
0 commit comments