본문 바로가기
ML & DL/책 & 강의

[나는 리뷰어다] 인사이드 머신러닝 인터뷰

by 공부하는 무니 2024. 4. 28.
반응형

인사이드 머신러닝 인터뷰 표지

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

이 책을
저의 학습 데이터셋에 바칩니다.
데이터셋이 없었다면
아무것도 알 수 없었을 것입니다.

첫 페이지에 보이는 글입니다. 이것만 봐도 저자가 '찐' 이라는 것이 느껴졌습니다. 

제목에서 보이다시피 면접대비를 위한 책이지만, 면접을 준비하는 사람 뿐 아니라 머신러닝을 현업으로 하고 있는 모든 분들께도 분명 도움이 되는 내용들이 많습니다. ML 기본 지식, 시스템 설계, 인프라 설계 등 실무를 한다면 한번쯤 겪게 되는 문제들이 예상질문으로 나와있습니다.

ML 분야의 면접은 특히 자료가 많이 없어서 준비할 때 막연했던 느낌이 듭니다. 정보의 불균형이 심해서 여러 커뮤니티에서 질문들을 하며 스스로 정리를 잘 했어야 했는데요. 이 책이 더 일찍 나왔다면 제가 준비할 때 더 수월했겠다는 생각도 들었습니다.

아래 각 챕터에서 인상깊었던 내용과 194가지의 문제를 적어두었습니다. 각 문제에 대해 저자가 쉽게 정리한 답을 보고 싶으시다면 책에서 확인해보시면 되겠습니다.

막연해보이는 ML 전 범위를 잘 구조화시켜서 독자로 하여금 소화하기 편하게 해주는 책인 것 같습니다. 

CHAPTER 1. ML면접에 임하기

ML 관련 직무 평가 요소
- ML 기본 지식
- 소프트웨어 엔지니어링 기술
- ML 시스템 설계
위 3가지 중 하나라도 뚜렷한 약점이 없어야 하고, 하나 이상의 영역에서 뛰어나다면 베스트.

 

CHAPTER 2. ML 기본 지식

ML 기본 지식 면접
- 지원자의 ML지식의 폭과 넓이 평가
- 폭: 일반적인 ML 문제에 대해 다양한 해결 방법 제시
- 깊이: 각 접근 방식을 자세히 설명하는 역량

질문들

1. 학습 데이터셋을 어떻게 준비하나요?

2. 학습 데이터를 수집할 때 어떤 문제가 발생할 수 있나요?

3. 수집한 데이터가 모델링에 적합한지 어떻게 판단하나요?

4. 데이터셋의 레이블 불균형을 어떻게 처리하나요?

5. 누락된 레이블을 어떻게 처리하나요?

6. 다양한 입력 피쳐 유형과 각각의 유효성을 설명하세요.

7. 피쳐 선택과 중요도를 설명하세요.

8. 피쳐 선택을 어떻게 수행하나요?

9. 누락된 피쳐값을 어떻게 처리하나요?

10. 일반적인 모델링 알고리즘에는 어떤 것이 있나요?

11. 로지스틱 회귀를 설명하세요.

12. 그래디언트 부스팅 결정 트리 중 XGBoost를 설명하세요.

13. 심층 신경망을 설명하세요.

14. 로지스틱 회귀는 어떻게 작동하나요?

15. 로지스틱 회귀는 어떤 손실 함수를 쓰며 어떻게 최적화하나요?

17. 더 빠르게 최적화하는 방법이 있나요? 장단점은 무엇인가요?

18. 경사하강법을 어떻게 최적화하나요?

19. 하이퍼파라미터 튜닝 기법에는 어떤 것이 있나요?

20. 과적합이 무엇이며 모델이 과적합했는지 어떻게 알 수 있나요?

21. 과적합에 어떻게 대처하나요?

22. 정규화가 무엇인가요? 두 가지 접근 방식을 설명하고 비교하세요.

23. 선형 회귀와 로지스틱 회귀의 차이점은 무엇인가요?

24. 신경망의 활성화 함수 몇 가지를 설명하시오.

25. 세 알고리즘의 차이점은 무엇인가요?

26. 부스팅과 배깅의 차이점은 무엇인가요?

27. 비지도 학습에는 어떤 것이 있으며 각각 어떻게 작동하나요?

28. k-평균이 무엇이며 어떻게 작동하나요?

29. 준지도 학습 기법에는 어떤 것이 있으며 각각 어떻게 작동하나요?

30. 일반적으로 사용하는 손실 함수에는 어떤 것이 있나요? 비교해서 설명하세요.

31. 손실 함수가 아래로 볼록한지 어떻게 확인하나요?

32. 분류 모델 성능을 어떤 지표로 평가하나요?

CHAPTER 3. ML 코딩

ML 코딩 면접 유형

- 일반적인 ML 알고리즘을 구현하기

- 확률 또는 통계 문제를 푸는 코드를 작성하기

- 전통적인 소프트웨어 엔지니어링 코딩 테스트 질문(ML과 직접적인 관련은 없음)

 

면접관이 중요하게 생각하는 요소

- 코드가 주어진 문제를 해결하는가

- 합리적인 데이터 구조와 알고리즘을 사용하는가

- 코드가 깔끔한가

- 커뮤니케이션 기술

- 테스트

 

36. k-평균이 무엇인가요?

37. k-평균을 어떻게 초기화하나요?

38. 학습 종료 기준은 무엇인가요?

39. k-평균 알고리즘을 구현하세요.

40. k-최근접 이웃이 무엇인가요?

41. k-최근접 이웃에 어떤 거리 척도를 사용할 수 있나요?

42. k-최근접 알고리즘을 구현하세요.

43. 의사 결정 트리가 무엇인가요?

44. 의사 결정 트리는 어떻게 분기하나요?

45. 학습 종료 기준은 무엇인가요?

46. 정보 이득을 코드로 작성하세요.

47. 선형 회귀를 처음부터 구현하세요.

48. 평가 지표 nDCG를 코딩하세요.

49. 저수지 샘플링(reservoir sampling)이 무엇인가요?

50. 위 코드를 좀 더 최적화하세요.

51. 가중 저수지 샘플링을 하려면 어떻게 변경하면 되나요? 

52. 로또 공을 복원 추출합니다. 각 공에는 1과 N사이 값이 있습니다. 값이 V 이상인 공이 나올 때까지 계속 뽑습니다. 마지막으로 뽑은 값이 U 이하일 확률은 얼마인가요?

53. NxN 체스판의 초기 위치 (i, j)에 기사가 있습니다. 기사는 최대 k번 이동할 수 있고 체스판 밖으로 나가면 다시 들어올 수 없습니다. k번 이동한 후에도 기사가 체스판에 남아 있을 확률은 얼마인가요?

54. 텍스트 말뭉치에 W 크기의 창을 적용해 동시 발생 행렬을 만드세요.

55. 텍스트 말뭉치에서 tf-idf 데이터셋을 생성하세요. 

56. 무향 그래프의 노드 포인터 하나를 받아서 그래프 전체를 복사하세요.

57. 유향 그래프의 루트 노드에 대한 포인트를 받아서 그래프에 사이클이 포함되어 있는지 판단하세요.

58. 키워드 리스트를 받아서 모든 키워드를 포함하는 가장 짧은 부분 문자열을 찾으세요.

59. 중복되는 단어가 없는 가장 긴 부분 문자열을 찾으세요.

60. 두 문자열 s와 t를 받아서 s가 t의 부분 문자열인지 확인하세요. 예를 들어 s="abc"이고 t="a1b2c3"이면 True입니다.

61. 문자열을 받아서 모든 부분 문자열 s를 t로 바꿉니다.

62. 값이 0과 1인 2차원 배열을 받아서 섬의 개수를 구하세요. 섬이란 연결된 1 (위, 아래, 왼쪽, 오른쪽)의 그룹을 뜻합니다.

63. 값이 0과 1인 2차원 배열을 받아서 확장하는 함수를 작성하세요.

64. 정수 배열을 받아서 다수 요소가 있는지 확인하세요.

65. 정수 배열을 받아서 합이 0이 되는 세 정수가 있는지 확인하세요.

CHAPTER 4. ML 시스템 설계  1 - 추천 시스템

ML 실무 워크플로 전체를 포괄하는 하나의 엔드투엔드 응용 ML모델링 문제

설계 프레임워크

- 문제를 명확히 하기

- 개략적 설계

- 데이터 수집과 처리

- 피처 엔지니어링

- 모델링과 평가

- 배포와 서빙

 

66. 사용자에게 콘텐츠를 추천하는 목적이 무엇인가요?

67. 추천 시스템에서는 어떤 지표를 개선해야 하나요?

68. 어떤 종류의 콘텐츠를 추천해야 하나요?

69. 다양한 유형의 콘텐츠를 어떻게 혼합하나요?

70. 추천 시스템의 운영 매개변수에는 어떤 것이 있나요?

71. 추천 시스템의 고수준 설계를 설명하세요.

72. 신규 사용자 및 아이템에 대한 추천을 어떻게 생성하나요?

73. 추천 시스템을 구축하려면 어떤 데이터셋을 수집해야 하나요?

74. 학습 데이터셋을 어떻게 수집하나요?

75. 추천 후보 생성 단계에서 사용하는 데이터 수집 기술을 설명하세요. 

76. 사전 랭킹 단계에서 사용하는 데이터 수집 기술을 설명하세요. 

77. 랭킹 단계에서 사용하는 데이터 수집 기술을 설명하세요.

78. 데이터셋에서 어떤 편향이 발견될 수 있나요?

79. 서빙 시의 편향을 어떻게 완화하나요?

80. 위치 편향을 어떻게 완화하나요?

81. 추천 후보는 어디에서 얻나요? 잠재적인 출처를 나열하세요.

82. 각 출처의 장단점은 무엇인가요?

83. 추천 후보를 어떻게 생성하는지 개략적으로 설명하세요.

84. 추천 후보를 생성하는 알고리즘에는 어떤 것이 있나요?

85. 임베딩 기술을 추천 후보 생성에 어떻게 사용하나요?

86. 행렬 분해를 설명하세요.

87. 심층 신경망을 설명하세요.

88. 그래프 임베딩을 설명하세요.

89. 규모가 매우 커지면 추천 후보 생성을 위해 모든 잠재 후보를 실시간으로 평가할 수는 없습니다. 이 문제를 어떻게 해결하나요?

90. 새로 생성된 콘텐츠를 어떻게 색인화하나요?

91. 랭킹 단계로 넘길 추천 후보의 수가 제한되어 있다고 합시다. 서로 다른 알고리즘이 생성한 후보들을 어떻게 병합하고 추려내나요?

92. 후보 생성기를 사용해 순위를 매겨 추려낼 수도 있나요?

93. 사전 랭킹 모델은 무엇을 하나요?

94. 사전 랭킹 모델을 무엇을 학습해야 하나요? 

95. 사전 랭킹 모델을 어떤 지표로 평가하나요?

96. 사전 랭킹 모델에 적합한 알고리즘은 무엇인가요?

97. 휴리스틱에서 로지스틱 회귀로 발전해간 과정을 설명하세요.

98. 로지스틱 회귀에서 투 타워로 발전해간 과정을 설명하세요.

99. 투 타워에서 경량 DNN으로 발전해간 과정을 설명하세요.

100. 많은 후보를 사전 랭킹해야 한다면 모델을 어떻게 최적화하나요?

101. 어떤 피처를 사용해야 하며 그 이유는 무엇인가요?

102. 대상 피처를 설명하세요.

103. 후보 피처를 설명하세요.

104. 교차 피처를 설명하세요.

105. 텍스트 또는 ID 기반 피처를 어떻게 사용하나요?

106. 횟수 기반 피처를 어떻게 사용하며 어떤 문제가 있을 수 있나요?

107. 해비 랭킹 모델은 무엇을 학습해야 하나요?

108. 해비 랭킹 모델에 적합한 알고리즘은 무엇인가요?

109. 모델 아키텍처가 어떤 모습일지 설명하세요.

110. 모델 예측값을 보정해야 한다면 어떻게 하나요?

111. 랭킹 모델을 어떤 지표로 평가하나요?

112. 포인트별 지표를 설명하세요.

113. 랭킹 지표를 설명하세요.

114. 인프라 지표를 설명하세요.

115. 제품 지표(A/B 테스트를 통해 수집)를 설명하세요.

116. 목표가 여러 가지(예: 좋아요와 구독)이면 모델을 어떻게 구축해야 하나요?

117. 하나의 다중 작업 모델을 구축해야 좋을까요, 아니면 개별 모델 여러 개를 결합해야 좋을까요?

118. 실시간 요청을 처리하려면 모델을 어떻게 만들어야 하나요?

119. 서빙 시스템에서 무엇을 어디에 캐시할 수 있나요?

120. 모델을 얼마나 자주 업데이트하나요?

121. 온라인 실험(A/B테스트)은 어떻게 진행되나요?

122. 모델을 서버에 로드하는 방법은 무엇인가요?

123. 모델 실험에 관한 아이디어 몇 가지를 설명하세요.

124. 어떤 오프라인 평가 지표가 온라인 지표(예: 참여도)를 향상할지 어떻게 예측하나요?

125. 시간에 따라 온라인 실험 결과가 나빠진다면 어떻게 디버깅하나요?

CHAPTER 5. ML 시스템 설계 2 - 응용

126. 재무 보고서(예: 총 현금 및 현금 등가물Total Cash and Equivalents 및 해당 금액)에서 정보를 추출하는 ML 시스템을 개발합니다.

127. 주어진 텍스트가 긍정적인지 혹은 부정적인지 판단하는 ML시스템을 설계합니다.

128. 뉴스 기사에 어떤 토픽이 들어 있는지 식별하는 ML 시스템을 구축합니다. 토픽 모델링 기법에는 어떤 것이 있나요?

129. 단어 기반 기술을 설명하세요.

130. 행렬 분해를 설명하세요.

131. 확률적 토픽 모델링을 설명하세요.

132. 신경망 토픽 모델을 설명하세요.

133. 텍스트를 단일 단락으로 압축하는 ML 시스템을 설계합니다. 문서 요약 기법에는 어떤 것이 있나요?

134. 추출적 요약을 설명하세요.

135. 추상적 요약을 설명하세요.

136. 자연어 명령(예: "비틀즈의 인기 곡을 틀어줘")을 이해하는 ML 시스템을 개발합니다. 

137. 모델 학습에 사용하는 레이블에는 무엇이 있나요?

138. 로깅된 레이블이 무엇이며 사용 시 어떤 문제가 있나요?

139. 휴먼 레이블이 무엇이며 사용 시 어떤 문제가 있나요?

140. 클러스터링 알고리즘을 위한 데이터는 어떻게 준비하나요?

141. 범주형 피처를 설명하세요.

142. 연속값 피처를 설명하세요.

143. 누락된 피처를 설명하세요.

144. 분류 또는 회귀 지도 학습을 위한 피처 엔지니어링은 어떻게 하나요?

145. 엔터티의 피처를 설명하세요.

146. 맥락척 피처를 설명하세요.

147. 순차 피처를 설명하세요.

148. 교차 피처를 설명하세요.

149. 파생 피처를 설명하세요.

150. 생성 모델에서 사용하는 피처에는 어떤 것이 있나요?

151. 재무 보고서 등에서 정보를 추출하는 모델을 구축합니다. 어던 기법이 있나요?

152. 정보 추출을 어떤 지표로 평가하나요?

153. 감성 분석 등을 위해 분류를 수행하는 모델을 구축합니다. 어떤 기법이 있나요?

154. 수요 예측 등을 위해 회귀를 수행하는 모델을 구축합니다. 어떤 기법이 있나요?

155. 식별된 토픽을 분류 체계에 할당하는 기술에는 어떤 것이 있나요?

156. 토픽 모델링 알고리즘의 성능을 어떤 지표로 평가하나요?

157. 유사한 뉴스 기사를 그룹화하는 등 클러스터링을 수행하는 모델을 구축합니다. 어떤 기법이 있나요?

158. 문서 표현을 설명하세요. 

159. 클러스터 할당을 설명하세요. 

160. 클러스터링 알고리즘의 성능은 어떤 지표로 평가하나요?

161. 문서를 요약 등을 위해 텍스트를 생성하는 모델을 구축합니다. 어떤 기법이 있나요?

162. 추출적 문서 요약을 설명하세요.

163. 추상적 문서 요약을 설명하세요.

164. 생성 작업의 품질은 어떤 지표로 평가하나요?

165. 예측을 서빙하기 위해 모델을 준비하는 단계를 설명하세요. 

166. 텍스트 모음에서 토픽을 추론하는 등의 오프라인 예측을 어떻게 수행하나요?

167. 일괄 예측 사용 사례를 설명하세요.

168. 일괄 예측 단계를 설명하세요.

CHAPTER 6. ML 인프라 설계

실무 문제에 ML을 적용할 때 고려해야할 점

- 대량의 데이터 및 트래픽 처리

- 정확성과 성능 간의 균형

- 학습 및 서빙 프로세스 최적화

- 피처 및 모델 관리를 위한 탄력적인 시스템 구축

 

169. 모델 개발 프로세스를 가속화하는 방법에는 무엇이 있나요?

170. 단일 인스턴스에서 모델 학습 속도를 높이는 방법에는 무엇이 있나요?

171. 분산 인스턴스에서 모델을 학습시키는 방법에는 무엇이 있나요?

172. 데이터 병렬 처리를 설명하세요.

173. 모델 병렬 처리를 설명하세요.

174. 데이터 병렬 처리를 어떻게 구현하나요?

175. 모델 학습 파이프라인(오케스트레이션)을 평가할 때 주요 기준은 무엇인가요?

176. 학습 중에 하나 이상의 인스턴스에서 오류가 나면 어떻게 되나요?

177. 모델을 최신 상태로 유지하기 위한 기법에는 무엇이 있나요?

178. 매우 짧은 지연 시간을 갖도록 학습한 모델을 최적화하는 방법에는 무엇이 있나요?

179. 모델 서빙 시스템의 구성 요소에는 무엇이 있나요?

180. 무엇이 고장 날 수 있으며, 모델 서버의 당번(on-call)이라면 무엇을 확인해야 하나요?

181. 서빙 타임에 피처 수화 및 처리 속도를 높이는 방법에는 무엇이 있나요?

182. 서빙 지연 시간을 개선하는 방법에는 무엇이 있나요?

183. 서버가 많은 요청을 처리하도록 하려면 어떻게 하나요?

184. 모델 서버에서 모델을 업데이트하는 과정을 설명하세요.

185. 모델을 어떻게 배포하고 롤백하나요?

186. 서버에서는 어떤 지표를 모니터링해야 하나요?

187. 온라인 모델 성능이 오프라인 지표에 비해 떨어지는 경우에 어떻게 해결하나요?

CHAPTER 7. 고급 ML 문제

어려운 ML 문제를 해결하는 데 유용한 지침   

- 이용 가능한 것에 집중합니다

- 더 나은 신호를 얻기 위해 데이터를 재구성합니다

- 예측 작업을 수학적으로 정의합니다

- 올바른 목적 함수를 선택합니다

- 목적 함수를 최적화합니다

 

188. 지연된 레이블은 모델의 학습 데이터 품질에 어떤 영향을 주나요?

189. 지연된 양성 레이블을 사용해 모델을 학습시키고 업데이트하려면 어떻게 해야 하나요?

190. 애플의 레이블 제한으로 인해 발생하는 주요 과제는 무엇인가요?

191. 대부분의 사용자 수준 레이블이 누락된 경우 예측 모델을 어떻게 학습하나요?

192. 이상적인 가격을 알 수 없으면 가격을 어떻게 최적화하나요?

193. 최적의 가격을 제안하는 모델을 어떻게 만드나요?

194. 위 모델을 오프라인에서 평가하려면 어떻게 해야 하나요?

 

반응형

댓글