Etapa 0: Início do Caminho
Nas realidades do mundo moderno, quando a onipresente digitalização e acumulação de dados sobre tudo e todos são conduzidas, surge uma pergunta razoável, mas como usar esses dados? Muitos, com certeza, já ouviram falar sobre sistemas de recomendação nas áreas de entretenimento e vendas. As empresas de investimento não se afastam das tendências atuais no campo da ciência de dados e dos sistemas de recomendação em particular. Então, vejamos quais recursos e os estágios que uma grande empresa de investimento teve que passar para desenvolver seu próprio sistema de recomendação para aumentar a eficácia da venda cruzada e o que aconteceu no final.

Etapa 1: Negação
Qual é a diferença entre o processo de vendas em uma empresa de investimento e o processo semelhante em outras empresas? Vamos ver o que está em comum.
.
: , . , , , . - ( , ).
2:
-, , . , : , , , , -, , ( ). 100 , . , , .
7070 , ( ) . Pandas NumPy Python. 31, , , - . Python , . .
, , () :
3:
, ? – , .
, , . , , .
, . «» . :
- , .
- « », .. , , , .
- .
, « » , .. . , , , «» :
, . .
, , ?

«». , , . : , , , .
. 0 1, 0 – . , ...
4:
, Python « », :
dist_cosini = scipy.spatial.distance.cosine(user_one, user_two)
- , Python «», 30000 31- , . .
, , , «l1-» ( — ), «l2-» ( ).
manhattan = round(numpy.linalg.norm(user_one - user_two, ord = 1), 4)
euclidean = round(numpy.linalg.norm(user_one - user_two, ord = 2), 4)
. , . , , . , «l1-» - , «l2-» — . , , …
. , «» , . - .
?
.
, ?
...
. :
- ( — ).
- .
- - , .. , .
- : 0 1, .
:

, ( B). , :
import numpy as np
CosD = round(1 - (np.sum((user_one * user_two)) / (np.sqrt(np.sum(user_one**2)) * np.sqrt(np.sum(user_two**2)))), 4)
, «l-», .
GIL (Global Interpreter Lock) . , «» GIL, «». , — . , ? Numba.
Python, Numba - . - Python , - . Numba - Python LLVM ( Python).
, :
import numpy as np
from numba import njit
@njit
def dist_cosini(user_one, all_user):
user_point = []
for q in range(len(all_user)):
user_two = all_user[q]
CosD = round(1 - (np.sum((user_one * user_two)) / np.sqrt(np.sum(user_one**2)) / np.sqrt(np.sum(user_two**2))), 4)
user_point.append(CosD)
return user_point
, Numba «» GIL . 60 .

5:
"" ( 13 ). .
, — . .
, «» . .
, , , .
. -. , CRM. « » .
:
Para esse fim, o trabalho já começou a modificar o sistema em um dos tipos de sistema de recomendação híbrido. Também estão em andamento trabalhos para aprofundar o trabalho do sistema de recomendação com produtos complexos.