ลองจินตนาการถึงการรวบรวมข้อมูลรูปภาพนับแสนถึงล้านภาพโดยไม่มีข้อมูลเมตาใด ๆ ที่อธิบายเนื้อหาของแต่ละภาพ เราจะสร้างระบบที่สามารถค้นหาชุดย่อยของรูปภาพที่ตอบคำถามค้นหาของผู้ใช้ได้ดีที่สุดได้อย่างไร
โดยพื้นฐานแล้วเราต้องการคือเสิร์ชเอ็นจิ้นที่สามารถจัดอันดับผลลัพธ์รูปภาพ โดยพิจารณาว่าผลลัพธ์นั้นสอดคล้องกับคำค้นหาได้ดีเพียงใด ซึ่งสามารถแสดงเป็นภาษาธรรมชาติหรือด้วยรูปภาพที่ใช้ค้นหาอื่นก็ได้
วิธีที่เราจะแก้ปัญหาในโพสต์นี้คือการฝึกอบรมโมเดลระบบประสาทเชิงลึกที่เรียนรู้การแสดงความยาวคงที่ (หรือการฝัง) ของรูปภาพและข้อความอินพุตใด ๆ และทำให้การแสดงเหล่านั้นอยู่ใกล้กันในปริภูมิยุคลิดหากข้อความคู่ - รูปภาพหรือรูปภาพ-รูปภาพมีความ “คล้ายกัน”
ฉันไม่พบชุดข้อมูลของการจัดอันดับผลการค้นหาที่ใหญ่พอ แต่ฉันสามารถรับชุดข้อมูลนี้ได้: http://jmcauley.ucsd.edu/data/amazon/ ซึ่งเชื่อมโยงรูปภาพรายการอีคอมเมิร์ซเข้ากับพวกเขา ชื่อและคำอธิบาย เราจะใช้ข้อมูลเมตานี้เป็นแหล่งข้อมูลการควบคุมดูแลเพื่อเรียนรู้การแสดงข้อความและรูปภาพที่มีความหมายร่วมกัน การทดลองจำกัดเฉพาะสินค้าแฟชั่น (เสื้อผ้า รองเท้า และเครื่องประดับ) และรูปภาพ 500,000 ภาพ เพื่อจัดการต้นทุนการคำนวณและการจัดเก็บ
ชุดข้อมูลที่เรามีลิงก์แต่ละภาพพร้อมคำอธิบายที่เขียนด้วยภาษาธรรมชาติ ดังนั้นเราจึงกำหนดงานที่เราต้องการเรียนรู้การแสดงภาพและข้อความที่มีความยาวคงที่ร่วมกัน เพื่อให้การแสดงภาพแต่ละภาพใกล้เคียงกับการแสดงคำอธิบาย
โมเดลรับอินพุต 3 รายการ: รูปภาพ (ซึ่งเป็นจุดยึด) ชื่อรูปภาพ+คำอธิบาย (ตัวอย่างเชิงบวก) และอินพุตที่สามคือข้อความตัวอย่างแบบสุ่ม (ตัวอย่างเชิงลบ)
จากนั้นเรากำหนดสองรุ่นย่อย:
โมเดลย่อยของรูปภาพจะสร้างการฝังสำหรับ Anchor **E_a **และโมเดลย่อยของข้อความจะแสดงผลลัพธ์ของการฝังสำหรับชื่อเชิงบวก+คำอธิบาย E_p และการฝังสำหรับข้อความเชิงลบ E_n
จากนั้นเราฝึกโดยปรับการสูญเสียแฝดต่อไปนี้ให้เหมาะสม:
L = สูงสุด( d(E_a, E_p)-d(E_a, E_n)+อัลฟา, 0)
โดยที่ d คือระยะห่างแบบยุคลิด และอัลฟาคือพารามิเตอร์ไฮเปอร์เท่ากับ 0.4 ในการทดลองนี้
โดยพื้นฐานแล้วสิ่งที่การสูญเสียนี้สามารถทำได้คือทำให้ **d(E_a, E_p) เล็กและทำให้ d(E_a, E_n) **ใหญ่ เพื่อให้แต่ละภาพที่ฝังอยู่ใกล้กับการฝังคำอธิบายและห่างไกลจากการฝัง ข้อความสุ่ม
เมื่อเราเรียนรู้โมเดลการฝังรูปภาพและโมเดลการฝังข้อความแล้ว เราก็สามารถเห็นภาพพวกมันได้โดยการฉายภาพออกเป็นสองมิติโดยใช้ tsne (https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html )
รูปภาพทดสอบและคำอธิบายข้อความที่เกี่ยวข้องจะเชื่อมโยงกันด้วยเส้นสีเขียว
เราเห็นได้จากโครงเรื่องว่าโดยทั่วไปในพื้นที่ฝัง รูปภาพและคำอธิบายที่เกี่ยวข้องจะอยู่ใกล้กัน ซึ่งเป็นสิ่งที่เราคาดหวังได้จากการสูญเสียการฝึกซ้อมที่ใช้ไป
ที่นี่เราใช้ตัวอย่างข้อความค้นหาเพื่อค้นหารายการที่ตรงกันที่สุดในชุดรูปภาพจำนวน 70,000 ภาพ เราคำนวณการฝังข้อความสำหรับการสืบค้น จากนั้นจึงคำนวณการฝังสำหรับแต่ละภาพในคอลเลกชัน ในที่สุดเราก็เลือกรูปภาพ 9 อันดับแรกที่ใกล้เคียงที่สุดกับข้อความค้นหาในพื้นที่ฝัง
ตัวอย่างเหล่านี้แสดงให้เห็นว่าโมเดลการฝังสามารถเรียนรู้การนำเสนอรูปภาพและการฝังองค์ประกอบคำอย่างง่ายที่เป็นประโยชน์
ที่นี่เราจะใช้รูปภาพเป็นแบบสอบถาม จากนั้นค้นหาในฐานข้อมูลจำนวน 70,000 รูปภาพเพื่อหาตัวอย่างที่คล้ายกันมากที่สุด การจัดอันดับจะพิจารณาจากระยะห่างระหว่างรูปภาพแต่ละคู่ในพื้นที่ฝังโดยใช้ระยะห่างแบบยุคลิด
ผลลัพธ์แสดงให้เห็นว่าการฝังที่สร้างขึ้นนั้นเป็นการนำเสนอรูปภาพในระดับสูงที่จับลักษณะที่สำคัญที่สุดของวัตถุที่แสดงโดยไม่ได้รับอิทธิพลมากเกินไปจากการวางแนว แสง หรือรายละเอียดเล็กๆ น้อยๆ ในท้องถิ่น โดยไม่ได้รับการฝึกอบรมอย่างชัดเจนให้ทำเช่นนั้น
ในโปรเจ็กต์นี้ เราได้ทำงานกับบล็อกการเรียนรู้ของเครื่องซึ่งช่วยให้เราสร้างเครื่องมือค้นหาตามคำสำคัญและรูปภาพที่นำไปใช้กับคอลเลกชันรูปภาพได้ แนวคิดพื้นฐานคือการเรียนรู้ฟังก์ชันการฝังที่มีความหมายและเข้าร่วมสำหรับข้อความและรูปภาพ จากนั้นใช้ระยะห่างระหว่างรายการต่างๆ ในพื้นที่การฝังเพื่อจัดอันดับผลการค้นหา
อ้างอิง :