En parlant de cela, j'ai participé au Jubatus Hackathon # 1 en octobre dernier.
http://connpass.com/event/8233/
Les diapositives au moment de l'annonce sont soigneusement résumées ici, veuillez donc vous y référer.
http://blog.jubat.us/2014/10/jubatus.html
Même si je l'ai fait passer de la planification à la mise en œuvre en une journée, je regrette que ce soit beaucoup de travail. J'ajouterai donc un peu.
Peu de temps avant le hackathon, je suis allé à l'un des plus grands événements publicitaires au Japon. Inspiré par cela, faisons une publicité! Quand j'ai dit à un junior de la même équipe, j'ai obtenu un OK, alors j'ai réussi.
Les spécifications et hypothèses spécifiques sont les suivantes:
――J'ai ce que l'on appelle des médias (article) et je souhaite afficher des publicités qui y correspondent. ――La correspondance signifie que le contenu de l'article et le contenu de la publicité sont similaires.
L'état du fond est particulièrement important, qui a un poids très important.
Si vous donnez une petite raison sérieuse, il y a une auto-admonition pour rendre la structure aussi simple que possible si vous vous perdez. En effet, les systèmes complexes augmentent les coûts de maintenance. Surtout lors de l'utilisation de l'apprentissage automatique, s'il y a un bogue (ou un comportement désagréable) dans le système
--Bogue du middleware --Correct comportement par algorithme
Il y a beaucoup de choses à considérer, par exemple, je ne veux plus travailler (sérieusement). En gros, les ingénieurs font de l'automatisation pour faciliter les choses, donc si le nombre d'emplois augmente, ce sera écrasant (?).
Au fait, le code ne fonctionnera probablement pas tel quel, mais il est sur github.
https://github.com/chase0213/jubatus-hackathon-01
Voici la diapositive au moment de l'annonce.
http://www.slideshare.net/chisatohasegawa370/jubatus-hackathon-1hiyoshi
Comme vous l'avez peut-être remarqué sur github, nous essayions initialement d'obtenir une configuration à 3 serveurs de Rails + Elasticsearch + Jubatus. Cependant, la partie Elasticsearch n'était pas essentielle et a été rejetée. Je voulais l'utiliser. .. ..
Le déroulement de la demande est le suivant.
Donc après tout, vous ne faites que creuser dans le recommandateur.
Ensuite, le lieu pour juger de la similitude entre l'article et l'annonce est conservé en tant que quantité de caractéristiques en utilisant le convertisseur vectoriel de Jubatus, qui est l'analyse morphologique utilisant mecab + ipadic.
http://jubat.us/ja/fv_convert.html
Ce convertisseur est si bon qu'il ne fait pas grand-chose pour pétrir les fonctionnalités. C'est donc couvert de bruit et ce n'est pas très précis, mais j'en parlerai plus tard.
Je l'ai déployé sur AWS et l'ai démontré. Je viens d'utiliser une machine avec des spécifications raisonnables, je l'ai donc arrêtée maintenant (pour des raisons financières). Si vous manipulez correctement le code, il fonctionnera localement, alors veuillez le modifier.
La partie apprentissage de l'apprentissage consistait à ajouter des publicités de manière dynamique, et le goût du dispositif d'apprentissage n'était pas si bon. Habituellement, beaucoup de gens imaginent que l'apprentissage automatique devient plus intelligent à chaque fois qu'il est utilisé, alors je vais brièvement commenter cette partie (je n'écrirai pas de code, pas mal).
Tout d'abord, quand il s'agit d'utiliser un apprenant dans un système publicitaire, je pense qu'il s'agit de faire une différence dans le taux d'impression entre ce qui a été réellement cliqué et ce qui ne l'a pas été. En d'autres termes, pour une combinaison d'articles et d'annonces sur lesquels on clique souvent, nous aurons plus d'impressions, et pour celles qui ne le sont pas, nous les afficherons occasionnellement sur un coup de tête.
Je ne l'ai pas vraiment fait, mais je pense que cela peut être fait en utilisant un classificateur. Plus précisément, prenez l'union du contenu de l'article réduit par le système de recherche et le contenu de la publicité cliquée, et plongez-la dans le classificateur avec l'étiquette sur laquelle il a été cliqué. De même, si vous ne cliquez pas, vous enregistrerez l'article et l'annonce UNION avec le libellé sur lequel il n'a pas été cliqué, mais une chose à noter ici.
Même si un lien n'est pas cliqué, il est prématuré de déterminer que l'utilisateur n'est pas intéressé par celui-ci.
Parce que, dans de nombreux cas, les utilisateurs se voient proposer de nombreuses autres options,
Cela n'indiquait pas activement qu'il n'était pas intéressé par le lien.
Je l'ai fait ressembler à une citation, mais c'est mon opinion personnelle. D'un autre côté, les informations cliquées doivent être traitées plus fortement que les informations non cliquées.
Donc, si vous réglez bien cette zone statistiquement et plongez dans classfier pour la classification binaire, vous pouvez prédire si l'utilisateur est susceptible de cliquer sur cette combinaison. Si vous renvoyez la valeur à la ligne supérieure (recommandation) et la reflétez correctement en tant que coefficient, plus de combinaisons sur lesquelles on clique beaucoup seront affichées.
Le dernier paragraphe est une théorie de bureau, donc je pense que les pièges sont éparpillés partout. Ensuite, je l'ai décrit comme "bruyant" au sommet, mais cela devrait être toléré dans une certaine mesure. En effet, les publicités sans bruit peuvent être ennuyeuses pour les utilisateurs (les publicités ne sont pas professionnelles et ne doivent pas être mentionnées trop profondément).
Recommended Posts