Bag-of-Tricks for Recommendation: Recency, Clustering 그리고 Item Shuffling

안녕하세요, 머신러닝 엔지니어 카터입니다. 추천 시스템을 프로덕트에 적용하게 되면 이전에는 볼 수 없었던 수많은 문제점들이 보이기 시작합니다. 이번 글에서는 제가 라이너 추천 시스템을 개발하며 마주했던 문제 사항들과 해당 문제들을 해결하기 위해 적용한 방법론들에 대한 이야기를 드리고자 합니다. Recency: 최신성 고려하기 첫 번째 문제는 콘텐츠의 최신성에서 시작되었습니다. 엔지니어인 저는 주로 개발 더보기…

장애물을 다루는 기술: 다국어 처리부터 웹에서 유튜브 하이라이트 기능까지

“장애물을 마주했다고 반드시 멈춰 서야 하는 건 아니다. 벽에 부딪힌다고 돌아서거나 포기하지 말라. 어떻게 벽을 오를지, 뚫고 나갈지 또는 돌아갈지 생각하라.” – 마이클 조던 – 얼마 전 베이징 동계올림픽 쇼트트랙 남자 1,000m 준결승에서 조 1위로 결승선을 통과하고도 편파 판정으로 실격을 당하고 결승에 진출하지 못했던 황대헌 선수를 기억하시나요? 해당 경기를 지켜봤던 더보기…

토픽 모델링으로 그리게 될 LINER의 미래

안녕하세요, 머신러닝 엔지니어 카터입니다. 지난 글에서는 라이너의 컨텐츠 기반 필터링 모듈 구축기에 대한 소개를 드렸습니다. 이번 글에서는 현재 라이너가 토픽 모델링을 어떻게 활용하고 있으며, 앞으로의 라이너 기술 발전 방향에 있어 토픽 모델링이 왜 중요한지에 대한 소개를 드리고자 합니다! 토픽 모델링이란 ? “라이너 ❤️ 토픽 모델링” 이야기에 앞서 토픽 모델링이란 무엇인가부터 더보기…

컨텐츠 기반 필터링 구축기: MiniLM, ScaNN 그리고 TFServing

안녕하세요, 머신러닝 엔지니어 카터입니다. 지난 번에는 외부로부터 추천 아이템이 축적되는 라이너가 컨텐츠 퀄리티 컨트롤을 위해 필터링 로직을 어떻게 가져가고 있는지에 대한 소개를 드렸습니다. 이번 글에서는 라이너가 컨텐츠 기반 필터링을 어떻게 구축하여 추천 시스템에 활용하고 있는지에 대해 소개드리고자 합니다! ANN과 ScaNN 라이너는 수백만 개 문서 중 사용자에게 추천할 만한 문서 수백 더보기…

LINER와 함께하는 쾌적한 정보 탐색 여정

안녕하세요. 프론트엔드 엔지니어로 근무 중인 제제입니다 🙂 벌써 LINER와 함께한지 1년이 지났다는게 감개무량하네요. 그동안 가입전환율 증대, SEO 프로젝트 등을 진행하며 주로 몸 담았던 웹 플랫폼을 뒤로하고, 브라우저 익스텐션에 입성한 저의 브라우저 익스텐션 데뷔글을 재밌게 읽어주시길 바랍니다! 이런 경험 없으셨나요? 구글 검색 결과에서 원하는 정보를 찾지 못해 좌절하거나, 수십개의 사이트를 방문한 더보기…

양질 중 우선시 되어야 하는 것은? Quality!

개요 안녕하세요, 머신러닝 엔지니어로 근무 중인 카터입니다! 이번 포스트에서는 세상에 존재하는 모든 텍스트 컨텐츠가 적재될 수 있는 라이너에서 사용자에게 양질의 추천을 제공하기 위해 컨텐츠 필터링을 어떤 식으로 수행하고 있는지, 그리고 앞으로 어떻게 발전시키고자 하는지에 대해 소개드리고자 합니다. 라이너는 사용자의 텍스트 하이라이트 이벤트를 추천 모델링을 위한 사용자 피드백으로 적극 활용하고 있습니다. 더보기…

SNS에 하이라이트 공유 기능 추가하기

안녕하세요? LINER 팀에서 브라우저 익스텐션 개발을 맡고 있는 마크입니다! 확장 프로그램이라고도 불리는 ‘브라우저 익스텐션’은 웹 브라우저의 기존 동작을 변경하거나 완전히 새로운 기능을 추가할 수 있는 무궁무진한 웹 브라우저용 프로그램입니다. LINER 팀의 대표적인 프로덕트도 브라우저 익스텐션이에요. 👉 브라우저 익스텐션에 대해 좀 더 알고 싶다면?https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions 입사하고 한 달 정도 지날 무렵, 처음으로 더보기…

최고의 아키텍처는 무엇일까?

Silver Bullet이 있을까 설계를 하고 코드를 짜다보면 항상 드는 생각이 있다. 이 문제에 대한 최고의 답이 존재할까? 개발자로서 처음으로 일을 시작할 때에도 그리고 지금도 계속해서 하는 생각이다. 이 일을 오래하게 된다면 언젠가는 알게되지 않을까 어렴풋이 생각했던 것 같다. 코드 한줄의 레벨에서도 무엇이 정답일지 고민했고 설계 레벨에서도 마찬가지의 고민을 이어갔다. 그렇게 더보기…

라이너 홈의 모바일에 대응하는 자세

안녕하세요, LINER에서 Web Frontend를 담당하고 있는 제니🍑입니다. 이번 알파 스프린트는 유난히 힘들었는데요 LINER Web Home의 모바일 대응을 위해 이것저것 코드를 많이 뒤집어 엎었던(?) 과정을 이번에 공유해 드릴까 합니다. LINER Web Home 이제 desktop에서 뿐만 아니라 Tablet, Mobile의 창 크기에 맞는 유연한 디자인으로, 그 어떤 기기에서도 라이너가 추천해주는 맞춤형 피드들을 보고, 더보기…

컬러 라벨, 테마 백엔드 설계하기

안녕하세요, LINER에서 Web Frontend를 담당하고 있는 제니🍑입니다. 벌써 라이너라는 배에 탑승한지 3개월이 되어 가네요! 저는 눈에 보이고, 사용자의 접점에 있는 개발이 좋아서 Client 개발자가 되어야겠다는 결심을 했었는데요, 그럼에도 Full stack에 대한 선망은 항상 마음 속 깊이 존재했던 것 같아요. 그런데 이번 알파 스프린트에서는 운이 좋게도 (?) 기존에 하던 프론트엔드 개발과 더보기…