brunch

You can make anything
by writing

C.S.Lewis

by 정채상 Oct 02. 2024

인공지능과 추천 시스템 강의 노트 - (4/16)

2024. 9. 27

들어가며

개인적인 사정으로 원격 수업을 해야 하는 상황에서의 화상 수업. 유튜버나 스트리머의 경험은 아니지만, zoom chatting 으로 질문을 하는 건 수업 전후에 손을 들어 질문하는 것보다는 장벽이 낮았는지 몇몇 질문들이 있었고, 아래에 첨부


금요일 새벽 3시부터 시작하는 건 확실히 부담이 있고, 미국에서 전후 일정이 많이 틀어지는 부작용이 있게 되어 가급적 피할 수 있으면 그리해야 할 거 같다. 


준비한 내용들

4주) 강의 update

AI 강의 - 4강, 5강 

추천시스템 - 1 

추천시스템 - 2 

바람 잘 날 없는 OpenAI

먼저 때마침 국가 주도의 몇몇 기사들이 있어 인용할 수 있었다. 비록 국적은 다른 상황이지만, 좋은 의지의 따뜻한 마음들이 모여 미래에 도움이 되었으면 하는 바램과 함께 너무나 많은 바람들로 인한 걱정도 많다 하겠다. 글로벌 인덱스에서는 생각 이상으로 싱가폴의 영향력이 이미 커 있다는 사실에 적잖이 놀랬고, 다시 여러 자료들을 들여다 보게 되었다.


기존의 상도덕을 새로 정의하게 만드는 요즘 AI 관련된 유명인들의 움직임은 여전히 감을 못 잡겠고, 내가 저런 것까지 알아야 하나 싶은 일들이 여전히 벌어지고들 있는 거 같다. 마지막 기사는 구글과 character.ai 사이의 딜을 자극적인 제목으로 만든 기사인데... 수익화에 실패한 기업의 새로운 출발이라는 면, 그게 구글의 주식으로 풀려 나가야 하는가에 대한 개인적인 불만 정도의 의견이다.


AI 강의 2부

새로운 교재로 어차피 이야기를 다시 해야 할 거 같기에 지난 주에 하던 이야기를 마무리하였다. stateofai 2024도 곧 나올 것이고, 어차피 새로운 이야기들로 한 학기 내내 이야기하게 될 것이라는 생각이고, 정책적인 담론, 의견 수립 등은 개인적으로 박태웅 선배님의 의견과 방향을 동의하고 존중하고 도울 수 있는 부분에 대해 최선을 다하겠지만, 이 수업에서 다룰 수 있는 성질의 것은 아니어서 약간은 열린 토론 정도로 놓자 싶다.


추천 시스템 강의 1, 2장

추천, 혹은 추천 시스템이라는 말이 워낙 일반적인 이야기가 되어 버려서 그 단어들을 정의하려는 노력을 교재에서 꽤 많이 하고 있다. 지금 시대에 서비스나 제품이 어디 한두개의 요소로 결정이 되겠냐마는 고전적인 의미에서 시작하는 게 일단 맞겠고, 고전적인 질문으로 검색과 추천의 차이는 무엇인가 라는 것도 좋은 시작이라 하겠다.


추천 시스템이라는 섹션에서는 하나의 end-to-end cycle 로 과제를 정의한다. 회사에서 과제로 알게 모르게 진해하는 것들이 다 이 사이클을 수행하는 것일테고 문제를 어떻게 정의하고 어떤 걸 비교할 지 등을 이야기하려 한다. 말로만 하는 이야기들일 수밖에 없고, 이 부분에 대해서는 계속 어떤 문제를 정의했는지, 어떤 방법으로 평가를 하는지, 어떻게 deploy 를 하는지 등의 이야기들을 계속 할 수밖에 없겠다 싶다. 


라이브 코딍

교재로 쓰고 있는 추천 시스템 책의 절반 이상은 다양한 추천 알고리즘을 코드로 구현해 보면서 비교해 보는 것의 연속이다. 과제를 내야 하나 라이브 코딩으로 가볍게 가야 하나 등에 대해 고민이 있었던 부분언데, 이번 학기에는 매 시간마다 최대 30분의 라이브 코딩 / 입코딩 / 따라해 보는 코딩(?) 시간을 마련해 보려 한다.


수업 시간 기준으로 2시간이 지난 9시 정각을 시작으로 해서 그 시기가 되면 준비했던 코드를 colab 에서 혹은 VsCode 에서 실행시켜 보면서 이런 저런 것들을 챙겨 보자 싶다. 이걸 직접 다룰 줄 아는 절반 정도의 학생에게는 평범한 일이겠지만, 이 기회를 통해 프로그래밍으로 입문하는 학생들이 생긴다면 그것만으로도 나름 수확이라 할 수 있겠다.


첫 시간으로는 MovieLens 에 대한 이야기들을 했다. 실제로 10'년 전에 구글에서 별점 과제를 할 때 참조했던 데이터, 참조했던 방법론들이었고, 각종 과제와 교재에서 인용이 되고 있는 내용이다. 오늘은 첫 시간에 기초적인 EDA를 하는 코드를 했다. 실제 회사에서는 이정도만 잘 해도 여러 사람들이 행복하고, 요즘에는 개인적으로는 ChatGPT 에게 일 시키는 재미가 꽤나 쏠쏠하지만, 생각해 보면 prompt 를 "### 필드 중에서 outlier 를 빼 주고, 왜 뺐는지 알려 줄래?" 등의 말을 건네며 가끔씩은 '이럴 거면 그냥 내가 하고 만다' 라는 생각이 들기도 한다.


이후에 세션들은 몇몇 방법들에 대한 이론적 혹은 실험적 접근이 될 수 있겠고, 이번 강의의 3번째 교재인 ChatGPT API 를 이용하는 제품 개발 등으로 여러 가지 일들을 해 볼 수도 있겠다 싶다. 바라건데 매 수업시간 동안 30분의 라이브 세션은 잡아 보자 싶다.



Q&A

Q. 검색 시스템이 '사용자가 미리 마음에 드는 아이템을 파악'하는 경우가 많고, 추천 시스템이 오히려 파악하지 않는 경우가 많다고 하셨는데요,  사용자가 검색을 많이 하다보면 추천시스템에서 마음에 드는 아이템을 파악하게 되지 않나요?

A. 검색을 많이 하는 건 개인화를 포함해서 서비스 업체에게 중요한 정보로 사용됩니다.

검색 쿼리 - 검색 결과 - 클릭 여부 - ( 구매 여부 ) 는 해당 사용자를 이해하는 가장 강력한 시그널입니다.

여럿을 모아 통계적인 정답, popularity를 이용하는 데 쓰기도, collaborative filtering 으로 쓰기도 합니다.


Q. 서비스를 기획하면서 대부분의 유저는 잘 모르지만 공급자 입장에서 팔고 싶은(?) 상품을 추천할 구석을 자꾸만 찾게 되는데요, 결국 mass 유저가 원하는 제품은 어느 정도 정해져있는 상황에서 상대적으로 매력이 떨어지는 상품 (하지만 팔고 싶은..)에 대한 추천 시나리오를 기획할 때는 어떻게 접근하는 것이 좋을까요?

A. 교재에도 언급이 되어 있는 내용이긴 한데요. 친절한 설명 등의 UI 로 접근하는 경우 호응이 좋았던 사례들이 몇 있습니다. 구차하다 싶을 정도로 설명을 하거나 아니면 아무 설명 없이 (쿨하게) 널 위해 준비했어. 두 사례들로 귀결이 되는데, 사용자들은 다짜고짜 널 위해서.. 라고 하면 거부감을 많이 가지는 거 같았습니다. curation / editor’s choice 등의 형태로 풀어 내는데, 사용자들이 알고도 한 번 봐 준다 정도로 접근했을 때 얻어 걸리는 경우들이 있었더랬습니다.. 


Q. 데이터 클린징 시 EDA를 활용하여 오류데이터를 효과적으로 찾아내어 수정하는 대표적인 방법론들이 어떤 것이 있는지요? 

A. 결국 다 눈으로(?) 혹은 기계로 들여다 보면서 걸러내는 것들인데, 데이터 포맷, 인코딩 등의 기계적인 오류들을 제외한다면 대부분은 outlier 들을 빼 내는 데 중점을 둡니다. 특정 row/column 을 plotting 하면 꽤 보이고, sort by 해서 아래 위 살피면 대개 보입니다. 

매거진의 이전글 인공지능과 추천 시스템 강의 노트 - (3/16)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari