การตั้งค่า Amazon Personalize ด้วย AWS Glue

โหนดต้นทาง: 748151

สามารถใช้ข้อมูลได้หลายวิธีเพื่อตอบสนองความต้องการของหน่วยธุรกิจต่างๆ เช่น การตลาด การขาย หรือผลิตภัณฑ์ ในโพสต์นี้ เรามุ่งเน้นที่การใช้ข้อมูลเพื่อสร้างคำแนะนำส่วนบุคคลเพื่อปรับปรุงการมีส่วนร่วมของผู้ใช้ปลายทาง แอปพลิเคชันอีคอมเมิร์ซส่วนใหญ่ใช้ข้อมูลลูกค้าจำนวนมากซึ่งสามารถนำมาใช้เพื่อให้คำแนะนำส่วนบุคคลได้ อย่างไรก็ตาม ข้อมูลนั้นอาจไม่ได้รับการล้างหรืออยู่ในรูปแบบที่ถูกต้องเพื่อให้ข้อมูลเชิงลึกอันมีค่าเหล่านั้น

เป้าหมายของโพสต์นี้คือสาธิตวิธีการใช้งาน AWS กาว เพื่อแยก แปลง และโหลดข้อมูล JSON ของคุณให้อยู่ในรูปแบบ CSV ที่สะอาดหมดจด จากนั้นเราจะแสดงวิธีเรียกใช้เครื่องมือแนะนำที่ขับเคลื่อนโดย ปรับแต่ง Amazon เกี่ยวกับข้อมูลการโต้ตอบกับผู้ใช้ของคุณเพื่อมอบประสบการณ์ที่ปรับให้เหมาะกับลูกค้าของคุณ ผลลัพธ์ที่ได้จาก Amazon Personalize คือคำแนะนำที่คุณสามารถสร้างได้จาก API

กรณีใช้งานทั่วไปคือแพลตฟอร์มอีคอมเมิร์ซที่รวบรวมข้อมูลการโต้ตอบระหว่างผู้ใช้กับรายการ และแนะนำผลิตภัณฑ์หรือผลิตภัณฑ์ที่คล้ายคลึงกันที่ลูกค้าอาจชอบ ในตอนท้ายของโพสต์นี้ คุณจะสามารถนำข้อมูล JSON ที่ไม่สะอาดของคุณ และสร้างคำแนะนำส่วนบุคคลตามผลิตภัณฑ์ต่างๆ ที่ผู้ใช้แต่ละคนโต้ตอบด้วย สร้างประสบการณ์ที่ดีขึ้นสำหรับผู้ใช้ปลายทางของคุณ สำหรับจุดประสงค์ของโพสต์นี้ โปรดดูที่ ชุดข้อมูลการโต้ตอบกับผู้ใช้รายการ เพื่อสร้างโซลูชันนี้

ทรัพยากรของโซลูชันนี้อาจมีค่าใช้จ่ายในบัญชี AWS ของคุณ ดูข้อมูลราคาได้ที่ ราคากาว AWS และ Amazon กำหนดราคาในแบบของคุณ.

ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมโซลูชันของเรา

เบื้องต้น

สำหรับโพสต์นี้ คุณต้องมีสิ่งต่อไปนี้:

สำหรับคำแนะนำในการสร้างที่เก็บข้อมูล โปรดดูที่ ขั้นตอนที่ 1: สร้างที่เก็บข้อมูล S3 แรกของคุณ. ตรวจสอบให้แน่ใจว่า แนบนโยบายการเข้าถึง Amazon Personalize.

นโยบายเหล่านี้เป็นนโยบายที่อนุญาตอย่างมาก ในทางปฏิบัติ เป็นการดีที่สุดที่จะใช้สิทธิ์น้อยที่สุดและให้สิทธิ์การเข้าถึงเมื่อจำเป็นเท่านั้น สำหรับคำแนะนำในการสร้างบทบาท โปรดดูที่ ขั้นตอนที่ 2: สร้างบทบาท IAM สำหรับ AWS Glue.

การรวบรวมข้อมูลของคุณด้วย AWS Glue

เราใช้ AWS Glue เพื่อรวบรวมข้อมูลผ่านไฟล์ JSON เพื่อกำหนดสคีมาของข้อมูลของคุณและสร้างตารางข้อมูลเมตาใน AWS Glue Data Catalog ของคุณ แค็ตตาล็อกข้อมูลมีการอ้างอิงถึงข้อมูลที่ใช้เป็นแหล่งที่มาและเป้าหมายของงาน ETL ของคุณใน AWS Glue AWS Glue เป็นบริการจัดเตรียมข้อมูลแบบไร้เซิร์ฟเวอร์ที่ทำให้ง่ายต่อการแยก ล้าง เพิ่มคุณภาพ ทำให้เป็นมาตรฐาน และโหลดข้อมูล ช่วยเตรียมข้อมูลของคุณสำหรับการวิเคราะห์หรือการเรียนรู้ของเครื่อง (ML) ในส่วนนี้ เราจะอธิบายวิธีเตรียมข้อมูล JSON ของคุณให้พร้อมสำหรับ Amazon Personalize ซึ่งต้องใช้ไฟล์ CSV

ข้อมูลของคุณอาจมีคอลัมน์ต่างๆ ที่คุณอาจไม่ต้องการหรือจำเป็นต้องเรียกใช้ผ่าน Amazon Personalize ในโพสต์นี้เราใช้ user-item-interaction.json ไฟล์และล้างข้อมูลนั้นโดยใช้ AWS Glue เพื่อรวมเฉพาะคอลัมน์ user_id, item_idและ timestampในขณะที่ยังแปลงเป็นรูปแบบ CSV คุณสามารถใช้โปรแกรมรวบรวมข้อมูลเพื่อเข้าถึงที่เก็บข้อมูลของคุณ แยกข้อมูลเมตา และสร้างคำจำกัดความของตารางใน Data Catalog โดยจะค้นหาข้อมูลใหม่และแยกคำจำกัดความของสคีมาโดยอัตโนมัติ ข้อมูลนี้สามารถช่วยให้คุณเข้าใจข้อมูลและสิ่งที่คุณต้องการรวมได้ดีขึ้นในขณะฝึกแบบจำลองของคุณ

พื้นที่ user-item-interaction ข้อมูล JSON คืออาร์เรย์ของระเบียน โปรแกรมรวบรวมข้อมูลถือว่าข้อมูลเป็นวัตถุเดียว: แค่อาร์เรย์ เราสร้าง ลักษณนามที่กำหนดเอง เพื่อสร้างสคีมาที่ยึดตามแต่ละเร็กคอร์ดในอาร์เรย์ JSON คุณสามารถข้ามขั้นตอนนี้ได้หากข้อมูลของคุณไม่ใช่อาร์เรย์ของระเบียน

  1. บนคอนโซล AWS Glue ภายใต้ โปรแกรมรวบรวมข้อมูลเลือก ลักษณนาม.
  2. Choose เพิ่มตัวแยกประเภท.
  3. สำหรับ ชื่อลักษณนามเข้าสู่ json_classifier.
  4. สำหรับ ประเภทลักษณนามให้เลือก JSON.
  5. สำหรับ เส้นทาง JSONป้อน $[*].
  6. Choose สร้างบัญชีตัวแทน.

เลือกสร้าง

  1. เกี่ยวกับ หน้าโปรแกรมรวบรวมข้อมูลเลือก เพิ่มโปรแกรมรวบรวมข้อมูล.
  2. สำหรับ ชื่อโปรแกรมรวบรวมข้อมูลป้อน json_crawler.
  3. สำหรับ ตัวแยกประเภทที่กำหนดเองเพิ่มตัวแยกประเภทที่คุณสร้างขึ้น

สำหรับตัวแยกประเภทที่กำหนดเอง ให้เพิ่มตัวแยกประเภทที่คุณสร้างขึ้น

  1. Choose ถัดไป.
  2. สำหรับ ประเภทแหล่งที่มาของโปรแกรมรวบรวมข้อมูลเลือก ที่เก็บข้อมูล.
  3. ปล่อยให้ทุกอย่างเป็นค่าเริ่มต้นและเลือก ถัดไป.
  4. สำหรับ เลือกที่เก็บข้อมูลป้อนเส้นทาง Amazon S3 ไปยังไฟล์ข้อมูล JSON ของคุณ
  5. Choose ถัดไป.

เลือกถัดไป

  1. ข้ามส่วน เพิ่มที่เก็บข้อมูลอื่น.
  2. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร เลือกบทบาท IAM เลือก เลือกบทบาท IAM ที่มีอยู่.
  3. สำหรับ บทบาท IAM, เลือกบทบาทที่คุณสร้างไว้ก่อนหน้านี้ (AWSGlueServiceRole-xxx).
  4. Choose ถัดไป.

เลือกถัดไป

  1. ปล่อยให้ความถี่เป็น รันออนดีมานด์.
  2. เกี่ยวกับ เอาท์พุต หน้าให้เลือก เพิ่มฐานข้อมูล.
  3. สำหรับ ชื่อฐานข้อมูลป้อน json_data.
  4. Choose เสร็จสิ้น.
  5. Choose เรียกใช้ตอนนี้. 

คุณยังสามารถเรียกใช้โปรแกรมรวบรวมข้อมูลได้โดยไปที่ โปรแกรมรวบรวมข้อมูล หน้า การเลือกโปรแกรมรวบรวมข้อมูลของคุณ และเลือก เรียกใช้โปรแกรมรวบรวมข้อมูล.

ใช้ AWS Glue เพื่อแปลงไฟล์ของคุณจาก CSV เป็น JSON

หลังจากที่โปรแกรมรวบรวมข้อมูลของคุณทำงานเสร็จแล้ว ให้ไปที่ ตาราง หน้าบนคอนโซล AWS Glue ไปที่ตารางที่โปรแกรมรวบรวมข้อมูลของคุณสร้างขึ้น คุณสามารถดูสคีมาของข้อมูลได้ที่นี่ จดฟิลด์ที่คุณต้องการใช้กับข้อมูล Amazon Personalize ของคุณ สำหรับโพสต์นี้ เราขอเก็บ user_id, item_idและคอลัมน์ประทับเวลาสำหรับ Amazon Personalize

สำหรับโพสต์นี้ เราต้องการเก็บคอลัมน์ user_id, item_id และการประทับเวลาสำหรับ Amazon Personalize

ณ จุดนี้ คุณได้ตั้งค่าฐานข้อมูลของคุณแล้ว Amazon Personalize ต้องใช้ไฟล์ CSV ดังนั้นคุณต้องแปลงข้อมูลจากรูปแบบ JSON เป็นไฟล์ CSV ที่ล้างแล้วสามไฟล์ที่มีเฉพาะข้อมูลที่คุณต้องการใน Amazon Personalize ตารางต่อไปนี้แสดงตัวอย่างไฟล์ CSV สามไฟล์ที่คุณสามารถรวมไว้ใน Amazon Personalize สิ่งสำคัญคือต้องสังเกตว่า ปฏิสัมพันธ์ จำเป็นต้องมีข้อมูลในขณะที่ ผู้ใช้งาน และ ชิ้น ข้อมูลเมตาของข้อมูลเป็นทางเลือก

ประเภทชุดข้อมูล ช่องที่ต้องเติม คีย์เวิร์ดที่สงวนไว้
ผู้ใช้

USER_ID (สตริง)

1 ฟิลด์ข้อมูลเมตา

รายการ

ITEM_ID (สตริง)

1 ฟิลด์ข้อมูลเมตา

CREATION_TIMESTAMP(ยาว)
ปฏิสัมพันธ์

USER_ID (สตริง)

ITEM_ID (สตริง)

TIMESTAMP (ยาว)

EVENT_TYPE (สตริง)

IMPRESSION (สตริง)

EVENT_VALUE (ลอย,โมฆะ)

สิ่งสำคัญคือต้องแน่ใจว่าคุณมีปฏิสัมพันธ์ทางประวัติศาสตร์และเหตุการณ์รวมกันอย่างน้อย 1,000 ครั้งเพื่อฝึกโมเดล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโควต้า โปรดดูที่ โควต้าใน Amazon Personalize.

ในการบันทึกข้อมูลเป็น CSV คุณต้องเรียกใช้งาน AWS Glue กับข้อมูล งานคือตรรกะทางธุรกิจที่ทำงาน ETL ใน AWS Glue งานเปลี่ยนรูปแบบจาก JSON เป็น CSV สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดรูปแบบข้อมูล โปรดดูที่ การจัดรูปแบบข้อมูลที่ป้อนของคุณ.

  1. เกี่ยวกับ แดชบอร์ดกาว AWSเลือก AWS กาวสตูดิโอ.

AWS กาวสตูดิโอ เป็นอินเทอร์เฟซแบบกราฟิกที่ใช้งานง่ายสำหรับการสร้าง รัน และตรวจสอบงาน AWS Glue ETL

  1. Choose สร้างและจัดการงาน.
  2. เลือก เพิ่มแหล่งที่มาและเป้าหมายลงในกราฟ
  3. สำหรับ แหล่งเลือก S3.
  4. สำหรับ เป้าเลือก S3.
  5. Choose สร้างบัญชีตัวแทน.

เลือกสร้าง

  1. เลือกที่เก็บข้อมูล S3 ของแหล่งข้อมูล
  2. เกี่ยวกับ คุณสมบัติแหล่งข้อมูล – S3 แท็บ เพิ่มฐานข้อมูลและตารางที่เราสร้างไว้ก่อนหน้านี้

บนแท็บ คุณสมบัติแหล่งข้อมูล – แท็บ S3 เพิ่มฐานข้อมูลและตารางที่เราสร้างไว้ก่อนหน้านี้

  1. เกี่ยวกับ แปลง แท็บ เลือกกล่องที่จะปล่อย user_login และ location.

ในโพสต์นี้ เราไม่ใช้ข้อมูลเมตาเพิ่มเติมเพื่อเรียกใช้อัลกอริธึมการปรับเปลี่ยนในแบบของคุณ

ในโพสต์นี้ เราไม่ใช้ข้อมูลเมตาเพิ่มเติมเพื่อเรียกใช้อัลกอริธึมการปรับเปลี่ยนในแบบของคุณ

  1. เลือกบัคเก็ต S3 เป้าหมายข้อมูล
  2. เกี่ยวกับ คุณสมบัติเป้าหมายข้อมูล – S3 แท็บสำหรับ รูปแบบเลือก CSV.
  3. สำหรับ ตำแหน่งเป้าหมาย S3ป้อนเส้นทาง S3 สำหรับเป้าหมายของคุณ 

สำหรับโพสต์นี้ เราใช้ถังเดียวกันกับที่ใช้กับไฟล์ JSON

สำหรับโพสต์นี้ เราใช้ถังเดียวกันกับที่ใช้กับไฟล์ JSON

  1. เกี่ยวกับ รายละเอียดงาน หน้าสำหรับ Name, ป้อนชื่องานของคุณ (สำหรับโพสต์นี้ json_to_csv).
  2. สำหรับ บทบาท IAMเลือกบทบาทที่คุณสร้างไว้ก่อนหน้านี้

คุณควรรวม AmazonS3FullAccess นโยบายก่อนหน้านี้

  1. ปล่อยให้ฟิลด์ที่เหลือเป็นการตั้งค่าเริ่มต้น

ปล่อยให้ฟิลด์ที่เหลือเป็นการตั้งค่าเริ่มต้น

  1. Choose ลด.
  2. Choose วิ่ง.

อาจใช้เวลาสองสามนาทีในการทำงาน

ในบัคเก็ต Amazon S3 ของคุณ คุณควรเห็นไฟล์ CSV ที่คุณใช้ในส่วนถัดไป

การตั้งค่า Amazon Personalize

ณ จุดนี้ คุณมีรูปแบบข้อมูลของคุณในประเภทไฟล์ที่ Amazon Personalize สามารถใช้ได้ Amazon Personalize เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งใช้ ML และประสบการณ์แนะนำมากกว่า 20 ปีใน Amazon.com เพื่อให้คุณปรับปรุงการมีส่วนร่วมของผู้ใช้ปลายทางได้ด้วยการเพิ่มประสิทธิภาพคำแนะนำผลิตภัณฑ์และเนื้อหาส่วนบุคคลแบบเรียลไทม์ และโปรโมชันการตลาดแบบกำหนดเป้าหมาย ในส่วนนี้ เราจะอธิบายวิธีการสร้างโซลูชัน Amazon Personalize เพื่อใช้ข้อมูลของคุณเพื่อสร้างประสบการณ์ที่ปรับให้เป็นส่วนตัว

  1. บนคอนโซล Amazon Personalize ภายใต้ กลุ่มชุดข้อมูลใหม่เลือก สมัครที่นี่.
  2. ป้อนชื่อสำหรับกลุ่มชุดข้อมูลของคุณ

กลุ่มชุดข้อมูลประกอบด้วยชุดข้อมูล โซลูชัน และ API การนำเข้าเหตุการณ์

  1. ป้อนชื่อชุดข้อมูล และป้อนรายละเอียดสคีมาตามข้อมูลของคุณ

สำหรับชุดข้อมูลนี้ เราใช้สคีมาต่อไปนี้ คุณสามารถเปลี่ยนสคีมาตามค่าในชุดข้อมูลของคุณได้

{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } 

  1. Choose ถัดไป.
  2. ป้อนชื่องานนำเข้าชุดข้อมูลของคุณเพื่อนำเข้าข้อมูลจาก Amazon S3

ตรวจสอบให้แน่ใจว่าบทบาทบริการ IAM ของคุณมีสิทธิ์เข้าถึง Amazon S3 และ Amazon Personalize และบัคเก็ตของคุณมีความถูกต้อง นโยบายถัง.

  1. ป้อนเส้นทางไปยังข้อมูลของคุณ (บัคเก็ต Amazon S3 จากส่วนก่อนหน้า)
  2. เกี่ยวกับ Dashboard หน้าสำหรับกลุ่มชุดข้อมูลของคุณ ภายใต้ อัปโหลดชุดข้อมูล, นำเข้า user-item-interactions ข้อมูล (ข้อมูลผู้ใช้และข้อมูลรายการเป็นทางเลือก แต่สามารถปรับปรุงโซลูชันได้)

ในหน้าแดชบอร์ดสำหรับกลุ่มชุดข้อมูลของคุณ ในส่วนอัปโหลดชุดข้อมูล

เรารวมตัวอย่าง item.csv แฟ้มใน repo GitHub. ภาพหน้าจอต่อไปนี้แสดงตัวอย่างข้อมูลรายการ

ภาพหน้าจอต่อไปนี้แสดงตัวอย่างข้อมูลรายการ

  1. ภายใต้ สร้างโซลูชั่นสำหรับ การฝึกอบรมการแก้ปัญหาเลือก เริ่มต้น.

โซลูชันคือรูปแบบการฝึกอบรมของข้อมูลที่คุณให้ไว้กับอัลกอริทึมหรือสูตรที่คุณเลือก

  1. สำหรับ ชื่อโซลูชันป้อน aws-user-personalization.
  2. Choose ถัดไป.
  3. ตรวจสอบและเลือก เสร็จสิ้น.
  4. บนแดชบอร์ด ภายใต้ เปิดตัวแคมเปญสำหรับ การสร้างแคมเปญเลือก เริ่มต้น.

แคมเปญช่วยให้แอปพลิเคชันของคุณได้รับคำแนะนำจากเวอร์ชันโซลูชันของคุณ

  1. สำหรับ ชื่อแคมเปญ, ป้อนชื่อ
  2. เลือกโซลูชันที่คุณสร้างขึ้น
  3. Choose สร้างแคมเปญ.

ตอนนี้คุณใช้ข้อมูลจาก Data Lake ของคุณสำเร็จแล้ว และสร้างแบบจำลองคำแนะนำที่สามารถใช้เพื่อรับคำแนะนำต่างๆ ได้ ด้วยชุดข้อมูลนี้ คุณจะได้รับคำแนะนำส่วนบุคคลสำหรับผลิตภัณฑ์ในครัวเรือนโดยอิงจากการโต้ตอบของผู้ใช้กับผลิตภัณฑ์อื่นๆ ในชุดข้อมูล

ใช้ Amazon Personalize เพื่อรับคำแนะนำของคุณ

หากต้องการทดสอบโซลูชันของคุณ ให้ไปที่แคมเปญที่คุณสร้างขึ้น ใน ทดสอบผลแคมเปญ ส่วนใต้ รหัสผู้ใช้ป้อน ID เพื่อรับคำแนะนำ รายการรหัสจะปรากฏขึ้นพร้อมกับคะแนนสัมพัทธ์ รหัสรายการสัมพันธ์กับผลิตภัณฑ์เฉพาะที่แนะนำ

ภาพหน้าจอต่อไปนี้แสดงการค้นหา ID ผู้ใช้ 1. พวกเขาได้รับ ID รายการแนะนำ 59ซึ่งสัมพันธ์กับกรอบรูปไม้ คะแนนที่อยู่ถัดจากรายการจะช่วยให้คุณคาดการณ์ความเกี่ยวข้องของแต่ละรายการกับผู้ใช้ของคุณ

ภาพหน้าจอต่อไปนี้แสดงการค้นหา ID ผู้ใช้ 1

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคะแนน Amazon Personalize โปรดดูที่ ขอแนะนำคะแนนการแนะนำใน Amazon Personalize.

หากต้องการสร้างคำแนะนำ คุณสามารถโทรหา GetRecommendations or GetPersonalizedRanking API โดยใช้ อินเทอร์เฟซบรรทัดคำสั่ง AWS AWS (AWS CLI) หรือ SDK เฉพาะภาษา ด้วย Amazon Personalize คำแนะนำของคุณสามารถเปลี่ยนแปลงได้เมื่อผู้ใช้คลิกที่รายการสำหรับกรณีการใช้งานแบบเรียลไทม์มากขึ้น ดูข้อมูลเพิ่มเติมได้ที่ รับคำแนะนำแบบเรียลไทม์.

สรุป

AWS นำเสนอ . ที่หลากหลาย AI / ML และ การวิเคราะห์ บริการที่คุณสามารถใช้เพื่อรับข้อมูลเชิงลึกและเป็นแนวทางในการตัดสินใจทางธุรกิจที่ดีขึ้น ในโพสต์นี้ คุณใช้ชุดข้อมูล JSON ที่รวมคอลัมน์ข้อมูลเพิ่มเติม และล้างและแปลงข้อมูลนั้นโดยใช้ AWS Glue นอกจากนี้ คุณได้สร้างโมเดลแบบกำหนดเองโดยใช้ Amazon Personalize เพื่อให้คำแนะนำแก่ลูกค้าของคุณ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Amazon Personalize โปรดดูที่ คู่มือนักพัฒนา. ลองใช้วิธีแก้ปัญหานี้และแจ้งให้เราทราบหากคุณมีคำถามใดๆ ในความคิดเห็น


เกี่ยวกับผู้เขียน

โซอิช พิทวาฟาโซอิช ปิธาวาลา เป็นสถาปนิก Startup Solutions ที่ Amazon Web Services ซึ่งตั้งอยู่ในซานฟรานซิสโก เธอทำงานกับลูกค้าเริ่มต้นเป็นหลักเพื่อช่วยสร้างโซลูชันที่ปลอดภัยและปรับขนาดได้บน AWS

แซม ทรานแซม ทราน เป็นสถาปนิก Startup Solutions ที่ Amazon Web Services ซึ่งตั้งอยู่ในซีแอตเทิล เขามุ่งเน้นที่การช่วยลูกค้าสร้างโซลูชันที่มีการออกแบบทางสถาปัตยกรรมที่ดีบน AWS

ที่มา: https://aws.amazon.com/blogs/machine-learning/setting-up-amazon-personalize-with-aws-glue/

ประทับเวลา:

เพิ่มเติมจาก บล็อก AWS Machine Learning