본문 바로가기
회고 🤔/네부캠 AI Tech

[네부캠 AI Tech] 4주차 학습 정리 🤓

by judy@ 2023. 12. 1.

목차


    학습 정리 & 배운점

    # 231127

    학습 정리 및 배운점 📚

    - 전반적으로 개념들을 정돈할 수 있는 기회가 됨.
    - 다양성, 참신함, 새로움, 관련성 뿐만 아니라 비즈니스 측면에서 매출, CTR, PV 를 높이는 방향으로 시스템을 개발해야 한다는 것을 짚게 됨
    - 인기도 기반 추천은 단순히 평점이 높거나 view가 높은 게 아니라, 최신성과 신뢰도를 반영해야 하며, 각 기업 및 플랫폼마다 목적에 맞게 지표(formula)를 개발하여 사용한다는 것을 알았음.
    - MAP의 수식에서.. AP에서 m이 뭘까 했는데, 모든 아이템 중에서 사용자가 좋아한 아이템 수라고 한다. Average Precision을 구할 때는 Pr@1 ~ Pr@K의 산술평균(K로 나눔)이 아닌 사용자가 좋아한 아이템 수로 나누어서 계산한다. 이미 Pr에는 K로 나누는 수식이 적용되어 있으며, 유저마다 좋아한 아이템 수가 다른데, 좋아한 아이템이 많을수록 취향저격이 쉬워지므로, 아이템수로 나누어 normalize 해주는 것으로 해석했다.
    - 한번 볼만한 아티클
       - 롯데ON AB테스트
       - PAIGE 프로야구 서비스 추천알고리즘 offline AB 테스트
    - 유저가 어떤 아이템들을 지금까지 구매했는지에 대한 목록은 목적에 따라 유저 정보 또는 유저-아이템 정보로 취급 가능할 듯하다. 유저 정보로 취급하는 경우, Wide-and-deep learning과 같이 임베딩 되어 들어갈 수도 있고, 가장 최근 구매 아이템의 카테고리 등으로 변환하여 사용할 수도 있으며, 다른 유저와의 유사성을 계산하거나 다른 아이템과의 관련성을 파악할 때 사용 가능. ㅇㅇㅇ님을 위한 추천과 같은 개인화 추천 카테고리에서 유용하게 활용될 듯. 유저-아이템 정보로 사용하는 경우, sequential 모델과 같이 이전 구매 목록을 AR하게 next-item prediction할 수 있을 듯. 이러한 경우, 유저가 다음으로 볼 상품 목록을 제안하는 데에 활용.

     

    # 231128

    학습 정리 및 배운점 📚

    - 거의 하루종일 Github 특강을 들었다. 아뉘! 장고 공부할 때 보던 그 생활코딩님을 라이브로 보다니 감회가 새로웠다. 목소리가 너무 나긋나긋하셔서 처음에는 살짝 위기를 겪기도 했지만..... HEAD, branch(main, exp), commit hash, working directory, stage area 등에 대해서 ui를 통해 어떻게 동작하는지 알 수 있었고, 잘만 사용하면 눈물을 흘리지 않고 git을 쓸 수 있다는 것을...알게 되었다. 아직도 무섭긴 하지만...

    # 231129

    학습 정리 및 배운점 📚

    - 도메인 기초 이론을 듣고 있어 매우 뜬금포이지만, 피어세션 때 트랜스포머 얘기가 두세번 언급되어서 그냥 넘어가지 않고, 생각을 줄글로 쭉 적어보았다. 쓰다보니까, 어텐션에 관한 것, 배경, 학습 부분에 대해서는 어느 정도 개념이 잡혀있는 듯하나, 출력을 만들어낼 때 multi-beam search ? 를 활용한다 라는 얘기를 주워들었는데, 어디에 나오는지 까지는 잘 이해를 못한 것 같아서 공부가 필요할 듯.

    - CF에서 KNN CF는 유사도가 높은 k개의 이웃을 활용하여 평점을 예측하는데, 유사도는 다양하지만 MSD, cosine, pearson, jaccard 를 많이 사용한다고. MSD의 경우 L2 Norm의 역수이고, cosine은 벡터 크기가 아닌 방향만 보는 방법, Pearson은 평균을 빼는 표준화 수행한 뒤 방향을 보는 것으로 대체로 가장 무난한 성능을 낸다고. 그리고 자카드의 경우 벡터 아니라 집합으로 보는 방법으로 집합 원소 개수가 달라도 된다는 장점이 있다고..수식은 알았지만 의미까지는 잘 이해하지 못한 지표들에 대해 더 잘 알게 된 것 같았다..!

    - 피어세션에서 팀원이 Cross-entropy에 대해서 다루었는데, MLL로 학습하는 VAE와 같은 모델들에는 불확실성이 목적 함수에 포함되어야 해서 CE에서 prior의 불확실성을 빼주는 건가? 라는 생각이 들었다. 생각만 들고 결론은 못내서, 다시 생각해봐야겠다.

    # 231130

    학습 정리 및 배운점 📚

    - 멘토님이 신경써서 준비해주신 시간인데, 아쉽게도 시간이 안맞아 참여하지 못한 선배캠퍼와의 만남. 질문 남겨두었던 것 중 기억에 남는 내용은 프로젝트 진행 시 원하는 기업의 JD를 타겟팅하여 프로젝트를 진행해보고, 깃허브에 잘 기록해두라는 것. 대회의 경우 순위를 높이려면 앙상블을, 경험을 중요시할 거라면 왜 성능이 잘 안나왔을까? 의문을 품고 기록을 잘 남겨두라고.. (감사합니다.)

    - 점차 프로젝트 기간에 가까워져서 머리는 잘 안돌지만 뭘 할지 누구랑 해야할지 조급해지고 있다..!

    - CF2 에서 Latent Factor Model의 latent를 disentangling 하는 연구는 왜 안하지? 라는 궁금증이 있었는데, 조교님 얘기를 듣고 생각해보니 CV 외의 분야에서는 쉽지 않다고.. 생각해보니 NLP에서도 그렇긴 하네.... 이런 패턴 분석이나 매니폴드 러닝이라는 분야가 흥미롭게 느껴졌다.

    - 이전에 선형 대수 강의 들을 때는 응...그래서.. SVD로 특잇값을 분해하고, 영향력이 큰 특잇값과 잠재 요인으로 행렬을 복원할 수 있는 것 까지는 알겠는데, 이걸 어떻게 추천에 쓴다고?는 막혔었다. 이번 기회에 그렇게 복원한 행렬은 이전에 채워지지 않았던 부분이 채워지고 이를 추천에 사용할 수 있다는 것까지는 알게 되었다. 그리고 MF는 유저, 아이템의 잠재 요인을 특잇값을 분해하는 방식이 아니라, SGD 등의 최적화 방법을 사용하여 찾아낸다는 것! 도 이해하게 되었다.

    - 뿐만 아니라 MF를 implicit feedback 예측에 특화하기 위한 학습 방법 중, PQ를 번갈아 고정하여 학습하는 방법이 흥미로웠다. PQ 중 하나를 고정하면 목적함수가 P의 이차식(quadratic formula)가 되고, 이는 convex한 특성이 있어 미분 시 global minimum에 더 빨리 도달할 수 있다는 점이 매우 흥미로웠다.

    - 또 이전에 BPR 논문을 읽다가 무슨 말인지 모르겠어서 포기했었는데, implicit data로 MF를 잘 학습시키기 위하여 평가한 아이템보다 평가 안한 아이템을 더 선호한다 라는 가정으로 데이터를 재구성하였다는 점. 특히 선호 아이템과 미선호 아이템을 triples 집합으로 나타낸 점.까지는 이해하게 되었고, MAP 목적 함수 구성 부분은 다시 이해해 보아야겠다.

    # 231201

    학습 정리 및 배운점 📚

    - 오늘은 Item2Vec + cosine similarity에 관한 심화 과제를 오전에 풀어보고, 나머지 시간 동안에는 AutoRec을 From Scratch로 구현해보았다. 이전에 세미나 때 이 논문을 리뷰했었는데, 왜 이리 오래된 기법을 리뷰하느냐고 살짝 혼났던 기억이 있긴 하다... 그 때 오기로 keras로 구현해봐야지 하면서 여차저차 시도를 했었는데, 결과적으로 observed data에 대해서만 loss를 구해야 하는데, keras에서는 . 그부분을 마스킹 처리를 해줘야 했고 데이터 컨트롤이 너무 어려웠어서 결국...또르륵...끝까지 진행하지 못했다... 하지만 지금이라도 하게 된 게 어딘가? 적어도 눈곱만큼은 성장했다고... 위안을 삼아본다.

    - 오후에는 스페셜 피어세션와 피어세션, 오피스아워까지 참여하느라 숨가쁘게 달려왔다. 오피스아워 때 거의 내가 한 질문만 나왔는데, 역시나 추천 분야는 도메인과 목적에 따라 천차 만별이라 책상에 앉아서 공부하는 것보다 현업이 더 배우기 좋을 수도 있다는.. 답을 얻었다. 어디가도 공통으로, 나에게 스스로 물어봐도 그렇게 대답할 거라 앞으로 어떤 도메인에서 어떤 역할을 하고 싶은지 조금 더 구체화해보는 게 좋을 것 같다. 다만 모델의 경량화나 효율적인 서빙에 대한 부분에 대해서도 놓아버릴 수는 없을 듯하다.


    4주차 총평 🤔

    처음 네부캠 시작할 때는 음..5개월 동안 여유 좀 즐기면서 공부해야지(!) 라고 생각했는데, 4주가 지나고 보니 디게 바보 같은 생각이었다는 걸 알게 되었다. 첫주에는 첫주만 빡쎄겠지...지금까지도 수강할 양이 매우 많은 편인 거 같다. 연말에 약속도 좀 있고, 평일에도 매우 바쁜 삶을 살고 있는데, 어쩌면 회사 다니는 게 더 쉬운 것 같다는 생각도 든다... 잠을 조금 줄이더라도 열심히 재미있게 해나가야겠다.

    도메인 기초 이론 쪽으로 오니, 기본 지식들을 다루던 때보다 강의의 순간 순간이 주옥같고 하나라도 머리에 더 욱여넣고 싶은 마음이다. 내가 논문을 미리 읽었을 때 몰랐던 인사이트들을 강의에서 짚어주실 때마다 감동적이고 더더욱 이 분야를 선택하기를 잘했다라는 생각이 든다. 주말이든 평일이든 투자하는 시간을 좀 더 늘려야겠다.....ㅠㅠ

    반응형