Skip to content

Commit 0c6da0a

Browse files
authored
Update writing DIP Song
1 parent 1f1e9fa commit 0c6da0a

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

_posts/2025-12-04-making-of-dip-copyright-songs.md

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6568
1. **ข้อมูลที่หลากหลายและไม่เป็นมาตรฐาน**
69+
6670
ข้อมูลเพลงที่ได้รับจากแหล่งต่างๆ มักมาในรูปแบบที่แตกต่างกัน บางครั้งชื่อเพลงเขียนเป็นภาษาไทย บางครั้งเป็นภาษาอังกฤษ หรือผสมกัน ชื่อศิลปินอาจสะกดต่างกันไป และโครงสร้างไฟล์ CSV หรือ Excel ที่ได้รับมามักมี column ที่ไม่ตรงกัน ดังนั้นการทำให้ format ของการเก็บเหมือนกันทั้งหมดและรองรับไฟล์หลายประเภทตอนนำเข้าจึงเป็นโจทย์แรกที่เราทำ เพื่อให้ระบบใช้งานได้ง่าย
71+
6772
2. **ข้อมูลเพลงซ้ำซ้อนที่ต้องตรวจสอบ**
73+
6874
เพลงเดียวกันอาจถูกจัดเก็บจากหลายบริษัท บางครั้งอาจจะมีชื่อที่แตกต่างกันเล็กน้อย เช่น "รักเธอ" กับ "รัก เธอ" (เว้นวรรค) "Love Song" กับ "Love song" (ตัวใหญ่ตัวเล็ก) หรือ 1นาที กับ หนึ่งนาที การตรวจจับและจัดการข้อมูลซ้ำซ้อนจึงต้องใช้การประมวลผลภาษามาช่วยระดับนึง ระบบก่อนหน้าไม่ได้ใช้เทคนิคที่ช่วยจัดกลุ่ม และไม่ได้ทำ normalization ทำให้การตรวจไม่สมบูรณ์และเจ้าหน้าที่ต้องมาทำซ้ำอีกหลายเดือน ดังนั้นเราอยากจะทำระบบให้ทุกอย่างเกิดขึ้นอัตโนมัติและสามารถตรวจสอบเพลงซ้ำซ้อนในสเกลนี้ได้
75+
6976
3. **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

Comments
 (0)