精华内容
下载资源
问答
  • 用户用标签来描述物品的看法,所以用户生成标签(UGC)是联系用户和物品的纽带,也是反应用户兴趣的重要数据源 一个用户标签行为的数据集一般由一个三元组(用户,物品,标签)的集合表示,其中一条记录(u,i,b...

    基于 UGC 的推荐

    用户用标签来描述对物品的看法,所以用户生成标签(UGC)是联系用户和物品的纽带,也是反应用户兴趣的重要数据源

    一个用户标签行为的数据集一般由一个三元组(用户,物品,标签)的集合表示,其中一条记录(u,i,b)表示用户 u 给物品 i 打上了标签 b

    一个最简单的算法

    • 统计每个用户最常用的标签
    • 对于每个标签,统计被打过这个标签次数最多的物品
    • 对于一个用户,首先找到他常用的标签,然后找到具有这些标签的最热门的物品,推荐给他
    • 所以用户 u 对物品 i 的兴趣公式为
      在这里插入图片描述
      在这里插入图片描述
      简单算法中直接将用户打出标签的次数和物品得到的标签次数相乘,可以简单地表现出用户对物品某个特征的兴趣

    这种方法倾向于给热门标签(谁都会给的标签,如“大片”、“搞笑”等)、热门物品(打标签人数最多)比较大的权重,如果一个热门物品同时对应着热门标签,那它就会“霸榜”,推荐的个性化、新颖度就会降低

    TF-IDF

    在这里插入图片描述
    词频(Term Frequency,TF)

    指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数的归一化,以防止偏向更长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否。)
    在这里插入图片描述
    其中 TFi,j 表示词语 i 在文档 j 中出现的频率,ni,j 表示 i 在 j 中出现的次数,n*,j 表示文档 j 的总词数

    逆向文件频率(Inverse Document Frequency,IDF)

    是一个词语普遍重要性的度量,某一特定词语的 IDF,可以由总文档数目除以包含该词语之文档的数目,再将得到的商取对数得到
    在这里插入图片描述
    其中 IDFi 表示词语 i 在文档集中的逆文档频率,N 表示文档集中的文档总数,Ni 表示文档集中包含了词语 i 的文档数

    TF-IDF 对基于 UGC 推荐的改进

    为了避免热门标签和热门物品获得更多的权重,我们需要对“热门”进行惩罚

    借鉴 TF-IDF 的思想,以一个物品的所有标签作为“文档”,标签作为“词语”,从而计算标签的“词频”(在物品所有标签中的频率)和“逆文档频率”(在其它物品标签中普遍出现的频率)

    由于“物品 i 的所有标签”n*,i 应该对标签权重没有影响,而“所有标签总数”N 对于所有标签是一定的,所以这两项可以略去。在简单算法的基础上,直接加入对热门标签和热门物品的惩罚项:
    在这里插入图片描述
    在这里插入图片描述

    TF-IDF算法代码实现

    # TF-IDF算法示例
    ### 0.引入依赖
    import numpy as np
    import pandas as pd
    
    ### 1.定义数据和预处理
    docA = "The cat sat on my bed , on my bed"
    docB = "The dog sat on my kness , on my kness"
    
    bowA = docA.split(" ")
    bowB = docB.split(" ")
    
    #构建词库
    wordSet = set(bowA).union(set(bowB))
    
    
    ### 2.进行词数统计
    # 用统计字典来保存词出现的次数
    wordDictA = dict.fromkeys( wordSet, 0)
    wordDictB = dict.fromkeys( wordSet, 0)
    
    # 遍历文档,统计词数
    for word in bowA:
        wordDictA[word] += 1
    for word in bowB:
        wordDictB[word] += 1
        
    pd.DataFrame([wordDictA, wordDictB])
    

    在这里插入图片描述

    ### 3.计算词频TF
    def computeTF(wordDict, bow):
        # 用一个字典对象记录tf,把所有的词对应在bow文档里的tf都算出来
        tfDict = {}
        nbowCount = len(bow)
        
        for word, count in wordDict.items():
            tfDict[word] = count / nbowCount
            
        return tfDict
    
    tfA = computeTF(wordDictA, bowA)
    tfB = computeTF(wordDictB, bowB)
    
    
    ### 4.计算逆文档频率IDF
    def computeIDF(wordDictList):
        #用一个字典对象保存idf结果,每个词作为key,初始值为0
        idfDict = dict.fromkeys(wordDictList[0], 0)
        N = len(wordDictList)
        import math
        
        for wordDict in wordDictList:
            # 遍历字典中的每个词汇,统计Ni
            for word, count in wordDict.items():
                if count > 0:
                    # 先把Ni增加1,保存到idfDict
                    idfDict[word] += 1
        
        # 已经得到所有词汇i对应的Ni,现在根据公式把他替换成idf值
        for word,ni in idfDict.items():
            idfDict[word] = math.log10( (N+1)/(ni+1) )
            
        return idfDict
    
    idfs = computeIDF([wordDictA, wordDictB])
    
    
    
    ### 5.计算TF-IDF
    def computeTFIDF(tf, idfs):
        tfidf = {}
        for word, tfval in tf.items():
            tfidf[word] = tfval * idfs[word]
        return tfidf
    
    tfidfA = computeTFIDF(tfA, idfs)
    tfidfB = computeTFIDF(tfB, idfs)
    
    pd.DataFrame([tfidfA, tfidfB])
    
    

    在这里插入图片描述

    展开全文
  • 网易云音乐个性化推荐算法简析

    千次阅读 2020-04-30 16:52:42
    网易云音乐的个性化推荐算法简析 本文是一个云村九级用户,根据多年的使用体验,...但是在最近阅读了一本有关数据挖掘的书籍,看到了不少数据分析实例后,我有了一些不一样的看法。先说基础的推荐算法。 1.基础算...

    本文是一个云村九级用户,根据多年的使用体验,对网易云音乐个性化推荐系统(私人FM,每日歌曲推荐,推荐歌单)运作模式的猜测分析。

    很早以前刚开始使用网易云音乐的时候,我就对其个性化推荐系统有过一些猜测,当时以为只是基于协同过滤算法做出的推荐。但是在最近阅读了一本有关数据挖掘的书籍,看到了不少数据分析实例后,我有了一些不一样的看法。先说基础的推荐算法。

    1.基础算法

    1.1协同过滤算法(Collaborative Filtering)

    一个构建个性化推荐系统的经典算法,起源于1992,被Xerox公司用于个性化定制邮件系统。其核心思想十分简洁,分为以下两点。

    • 基于用户的协同过滤

    已知用户A喜欢的产品用户B都喜欢,又知道用户A喜欢产品C,推出用户B也喜欢产品C。

    • 基于产品的协同过滤

    已知喜欢产品X的用户都喜欢产品Y,又知道用户Z喜欢X,推出用户Z也喜欢产品Y。

    以上两种协同过滤的思想都在于通过相似性来过滤产品,完成个性化推荐。网易云音乐属于典型的用户数目多于歌曲数的音乐软件,因此应当使用的是基于用户的协同过滤算法,下面以此为例,分析个性化推荐的可能实现过程。

    先对每首歌的喜欢程度进行简单的量化

    比如:单曲循环=5, 分享=4, 收藏=3, 主动播放=2 , 听完=1, 跳过=-1 , 不感兴趣=-5

    根据上面的这些操作,可以得到每个用户对每首歌的打分情况。

    这里我们选取一个较为简单的相关度计算公式——余弦相似度,其计算公式为:

    这里的AB分别指每个用户给每首歌的打分情况,由此可以知道,AE,BE,CE,DE两两用户之间的相似度(听歌品味的接近程度)。然后将相似度作为权重,求出用户E对《浮夸》这首歌的分数情况。以此类推,我们就可以知道用户E对曲库里所有歌曲的分数,将这些分数进行排名。

    实际运用中,相似度太低的用户可以舍去,不计入权重,用户对歌曲分数的缺失值也可以使用平均值来代替,看起来操作并不复杂。但是,如果使用单一的协同过滤算法会产生巨大的缺点,冷启动问题和算法模式中固有的问题:

    冷启动问题主要指新入库歌曲,在没有用户的听取记录下,无法进行有效推荐,而如果只依靠单一的资源倾斜如广告位强推发布的新专辑,不仅效率低下,还难以照顾小众音乐爱好者。

    算法固有问题主要指较大的计算量(需要为每个用户对曲库的所有歌曲进行排序)以及较稀疏的数据(大部分用户的听歌量都不大)

    这里势必要结合另一个推荐算法——因子分析法

    1.2因子分析法(Factor Analysis)

    目的是将多个变量映射到较少的变量上去,映射函数的依据就是各个变量的相关程度。

    这里,我们先对歌曲进行映射,由歌曲的节奏、节拍、速度、力度、旋律、音区、音调、旋律、歌手、发布时间等元数据metadata,进行因子分析,将相关的多个变量映射为一个变量,这一步需要数据分析师来找出每个因子的实际含义,为每个因子命名,并结合元数据的可信度,异常值和适当的旋转方法。其中后者(被映射的变量)可以用不同的tag表示,例如:伤感,小清新,电音,怀旧等等。

    接下来,选择用数字表达对不同歌曲对不同tag的包含程度。比如:《平凡之路》包含伤感的成分是0.5,小清新的成分是0.6,电音的成分是0.6,怀旧的成分是0.3等。

    由此将曲库内的所有歌曲分别映射成一个包含不同tag的二维矩阵。

    同理,根据不同用户的元数据,将较多的变量映射为同样的tag变量,也一样可以形成个性化的二维矩阵。这里有一点需要注意的是,用户的元数据来源主要应该是其操作行为,依照前文所举例:单曲循环=5, 分享=4, 收藏=3, 主动播放=2 , 听完=1, 跳过=-1 , 不感兴趣=-5 依此对用户的操作行为赋予适当的权值并反映在矩阵中。

    利用这两个矩阵,我们就可以知道每个用户对每首歌的具体喜欢程度。举例:

    用户A对《平凡之路》的喜欢程度=
    用户A对伤感的偏好×《平凡之路》包含伤感的成分
    +用户A对小清新的偏好×《平凡之路》包含小清新的成分
    +用户A对思念的偏好×《平凡之路》包含伤感的成分
    +用户A对怀旧的偏好×《平凡之路》包含伤感的成分
    ……

    很容易看出因子分析法恰当的补足了,协同过滤的新入库歌曲没办法得到有效推荐的问题。这样,协同过滤和因子分析法这两种推荐算法相结合,可以基本解决用户对歌曲评分以及喜好问题。

    2.排序

    前面的算法排序后得到的只能是初始值,真正在个性化推荐系统中的应该加入不同的变化性,例如

    2.1随机性&归一性

    用户在使用的过程中,如果只按初始算法排序,很可能出现推荐榜单某个歌手或者某个类别的歌曲,显然,这种单一类歌曲不是我们想看到的,这里就需要对初始榜单上歌曲的顺序进行调整,这样随机算法是必不可少的。同时,也需要对较为相似的歌曲进行统一归类,根据初始榜单按一定比例重排不同类型的歌曲,完善个性化推荐的多样性。

    2.2实时性&新颖性

    考虑到听歌品味的改变,用户越早以前对歌曲的有效操作,对其现在的排序影响效果应越小,当然,挑选部分歌曲适时的重新加入推荐系统,引起用户的怀旧感也不失为一个好选择。

    再则,保证歌单的按时更新,如每日歌曲推荐榜单,无论前一天是否对其进行过有效操作,第二天也要对推荐结果有所改变。或者如私人FM,也可以根据相应时间穿插符合情景的歌曲。

    2.3小众性&兴奋性

    回顾网易云音乐的建立过程,其瞄准的目标用户群一开始就是小众音乐爱好者,因此可以过滤部分热门歌曲,对小众音乐参与排序赋予一定的权值加成。

    再则,一个好的产品就是应该超出用户期望的,对于歌曲个性推荐的这个过程,我更偏向于:如果猜对了用户会兴奋,猜错了用户也不会太沮丧。大胆的在排行榜单上引入小众音乐,让用户“发现”新歌声,推荐甚至连用户自己没想到过却真正感兴趣的歌曲

    总而言之,推荐算法是基础,后续的排序则是改进,两者结合确定的综合值,才是良好的个性化推荐排名。

    3.冷启动问题

    3.1新用户的冷启动

    • 基于用户信息的推荐

    社交账号的辅助登陆,好友通讯录的导入,个人资料的完善等等操作可以得到一个较为基础的用户画像,进行初步的推荐过程。

    • 尽快让用户表达兴趣

    选择自己感兴趣的标签(tag),根据标签属性来推荐。大概来说,满足覆盖口味广、稍微热门的歌曲都可以有效的提高新用户的满意度。

    3.2新歌曲的冷启动

    • 归一替换

    根据上文的因子分析法,对新入库的歌曲先进行因子分析,然后利用归一性去替代各项成分都接近的旧歌曲,依此进入第一批用户的个性化推荐榜单中。

    • 资源位倾斜

    诸如开屏广告位、首页横幅位、新歌速递榜等资源位,都可以有效的增强新歌曲或新专辑的曝光率

    4.榜单

    一个好的推荐系统,必然是由官方第三方用户自身共同维护参与协作的。

    • 官方构建的各种趋势榜单,分类有按国家,流派,歌手。
    • 第三方机构或者运营者,构建出按品味分类的专业榜单,如“空灵女声”、“极致的电子舞曲”,“适合延时摄影的BGM”等各种推荐。
    • 用户自身则可以点击,收藏,自建榜单。

    多样的榜单系统,无论是在开始的冷启动问题上,还是维持用户粘度上,都起到了至关重要的作用。由此,形成了一个以官方个性化推荐系统为主,榜单协作为辅的音乐生态圈。而健康的社区氛围和评论环境,更好的推进了UGC的发展,进入良性循环。

    展开全文
  • google youtube 电影推荐算法

    千次阅读 2013-10-14 14:42:21
    在面试实习生的时候,我有个习惯,就是面试快结束的时候,会像聊天一样和面试的学生聊一下他们某个技术方向的看法。很多时候不是期望他们能提供什么灵感,也不期望能聊出太多结果,更多的是想通过这些沟通,看一下...

    google youtube 电影推荐算法

    在面试实习生的时候,我有个习惯,就是面试快结束的时候,会像聊天一样和面试的学生聊一下他们对某个技术方向的看法。很多时候不是期望他们能提供什么灵感,也不期望能聊出太多结果,更多的是想通过这些沟通,看一下现在学生对这些问题的看法达到什么程度,而且这些沟通很能反映一个面试者的个性。 比如有些人对问题比较坚持, 或者叫做偏执,或者叫做执着,都能够反映出来。

    前几天面试的时候到了最后环节的时候,忘了是说什么问题了,面试的实习生提到一般工业界使用的推荐算法都是比较简单的,不会去尝试复杂的算法。 我问他为什么,他说觉得工业界不会投入太多人力; 后来我告诉他还需要考虑处理的数据量和可维护性等因素。 当然他说的这个现象的确比较普遍: 工业界一般都倾向于使简单粗暴有效的算法,只有这些方法都搞不定时,才会尝试更复杂的潜在算法。

    两个例子: 一个是 youtube 使用的电影推荐算法(参见论文: The Youtube Video Recommendation System);另一个例子就是Baidu关键词推荐系统中使用的级联二步图;  应该说Baidu关键词推荐系统中的级联二步图的思路是借鉴于youtube电影推荐算法并应用在关键词推荐的场景中。 下边就简单介绍下youtube Video推荐算法。

    算法的思想其实比较简单:使用关联规则找到有关联的电影,计算权值后进行ranking推荐。其中的新意在于,这种关联关系能够进行多次传递,逐渐扩大和种子电影相关的电影集合(当然关系传递得越远,一般关联程度也会相应减弱)

    具体的推荐过程可以分为3步:

    建立video间的关系

    建立video间关系的方式比较简单,使用关联规则中的共现方式即可。此处youtube使用的是24小时内session的co-visitation。具体为:

    使用 r(vi, vj) = cij/f(vi,vj) 表示video i和video的关联程度, 其中 r为两个video/item的相关系数, ci为i,j共同出现次数, f 为 vi, vj归一化后的分母总量(最简单的方式就是ci * cj),这样就能找到相关的两个vedio

    产生特定用户的video候选

    该过程在经典信息检索中可以被理解为触发逻辑,及找到待推荐video/item的候选(触发逻辑在推荐系统中所处的位置及重要性参见另外一篇blog: 传统推荐引擎系统架构)

    定义S为特定用户的种子video集合, 例如在youtube推荐系统中可以选择用户最新观看(或者最新完整观看的video),之后的问题就是怎么找到和种子词相关的video进行推荐。我们将其分为以下3步:

    1. 定义Cn(S)为和种子集合S相关联的,通过n步扩展后的推荐候选集合。 例如 C1(S) = 所有Ri的并, 其中Ri是与S中的vi相关联的v(寻找相关联v的过程参见上述:产生特定用户的video候选)。 相当于找到所有与S中种子vi想关联的v的并集;该做法的缺点是可能范围比较小且太相似。
    2. 使用Cn(S)进行触发, 即得到C(n-1)(S)后,再找到与C(n-1)(S)中每一个vi相关联的v,之后去除种子词S,我们称Cn(S)为对S的n步扩展。
    3. 同时在C(n)(S)中保留着每一个v被找到的原因, 便于后续ranking及给出explanation。

    经过上述3步,对于特定user的候选video就触发完毕了。 该触发步骤可以说是该论文中的值得借鉴的点。 组里之前一位工程架构策略都很牛的同学指导实习生实现了一个通用的级联二步图算法框架, 该算法框架能够将有关联的节点的关系进行传递:

     

    级联而不图

     

     

    例如对于关键词,我们可以使用topic 主题(由topic model产生)建立关键词之间的跳转关系, 或是关键词中的核心term(一般是归一化后的核心term)建立跳转关系。 而该框架更令人着迷的是, 二步图的左右两边可以不是同样的item, 例如左边节点是keyword而右边是user, 则可以使用topic 直接建立keyword与user的关系进行推荐。

     Ranking

    youtube 的ranking策略主要考虑以下3个因素:

    1. video质量, 这个可以通过网名对video投票打分得到。
    2. user specificity: 在触发后,可以通过使用user profile和电影的一些质量, 或是内容属性进行排序
    3. divercification:特别是类似video这种兴趣相关的内容, divercification的引入就显得非常重要了;相反, divercification在不同的场景下可能不同,百度关键词推荐中, 根据种子词直接检索得到的结果需要考虑与种子query的强相关性, 此时divercification的引入, 或者引入的程度需要比较慎重保守。

    当然, ranking机制一般都会非常复杂, 论文中此处只是简单介绍; 例如在构造百度关键词推荐系统的过程中, 我们引入了提词率预估, 效用预估, 价值预估等模型对返回结果进行ranking。同时也需要结合user interaction的样式,算法出口等进行调整。 具体ranking机制会在后续blog中介绍。

    效果上, 级联二步图的引入,能够找到非常多靠谱的结果(当然二步图边的建立是核心,选对了边的建立方式,才会有好效果),具体效果数据就不便透露了:)   反正是基本上能够覆盖全部凤巢用户,每个客户都能推出数量惊人的关键词(当然,需要使用字面, 语义等技术进行后续filtering and ranking)

    更进一步, 级联二步图是图关系挖掘的一个简单有效的特例, 使用类似于pagerank等经典算法, 也能够很好地找出类似的关系进行推荐。

    参考来源:

    The Youtube Video Recommendation System

    Google Adwords

    百度关键词推荐工具 :http://support.baidu.com/product/fc/4.html?castk=e6f89hg77d37ada65d612


    展开全文
  • 推荐算法5—隐语义模型

    千次阅读 2018-05-30 15:44:42
     隐含语义分析技术的分类来自用户行为的统计,代表了用户物品分类的看法。隐含语义分析技术和ItemCF在物品分类方面的思想类似,如果两个物品被很多用户同时喜欢,那么这两个物品就很有可能属于同一个类。 隐含...

    LFM(latent factor model)隐语义模型的核心思想是通过隐含特征(latent factor)联系用户兴趣和物品,采取基于用户行为统计的自动聚类。

            隐含语义分析技术的分类来自对用户行为的统计,代表了用户对物品分类的看法。隐含语义分析技术和ItemCF在物品分类方面的思想类似,如果两个物品被很多用户同时喜欢,那么这两个物品就很有可能属于同一个类。
            隐含语义分析技术允许我们指定最终有多少个分类,这个数字越大,分类的粒度就会越细,反正分类粒度就越粗。
            隐含语义分析技术会计算出物品属于每个类的权重,因此每个物品都不是硬性地被分到某一个类中。
            隐含语义分析技术给出的每个分类都不是同一个维度的,它是基于用户的共同兴趣计算出来的,如果用户的共同兴趣是某一个维度,那么LFM给出的类也是相同的维度。
            隐含语义分析技术可以通过统计用户行为决定物品在每个类中的权重,如果喜欢某个类的用户都会喜欢某个物品,那么这个
    物品在这个类中的权重就可能比较高。

            LFM通过如下公式计算用户u对物品i的兴趣:


            这个公式中p(u,k)和q(i,k)是模型的参数,其中p(u,k)度量了用户u的兴趣和第k个隐类的关系,而q(i,k)度量了第k个隐类和物品i之间的关系。这两个参数是从数据集中计算出来的。要计算这两个参数,需要一个训练集,对于每个用户u,训练集里都包含了用户u喜欢的物品和不感兴趣的物品,通过学习这个数据集,就可以获得上面的模型参数。推荐系统的用户行为分为显性反馈和隐性反馈。LFM在显性反馈数据(也就是评分数据)上解决评分预测问题并达到了很好的精度。不过这里主要讨论的是隐性反馈数据集,这种数据集的特点是只有正样本(用户喜欢什么物品),而没有负样本(用户对什么物品不感兴趣)。对负样本采样时应该遵循以下原则:
           对每个用户,要保证正负样本的平衡(数目相似)。

           对每个用户采样负样本时,要选取那些很热门,而用户却没有行为的物品。

    下面的Python代码实现了负样本采样过程:

    def RandomSelectNegativeSample(self, items):
    	ret = dict()
    	for i in items.keys():
    		ret[i] = 1
    	n = 0
    	for i in range(0, len(items) * 3):
    		item = items_pool[random.randint(0, len(items_pool) - 1)]
    		if item in ret:
    			continue
    		ret[item] = 0
    		n + = 1
    		if n > len(items):
    			break
    	return ret
    

            items_pool维护了候选物品的列表,在这个列表中,物品i出现的次数和物品i的流行度成正比。items是一个dict,它维护了用户已经有过行为的物品的集合。因此,上面的代码按照物品的流行度采样出了那些热门的、但用户却没有过行为的物品。经过采样,可以得到一个用户—物品集K= {(u,i)},其中如果(u, i)是正样本,则有r(ui)=1,否则有r(ui)=0 ,r(ui,hat)是推荐系统给出的用户u对物品i的兴趣。然后。需要优化如下的损失函数来找到最合适的参数p和q:


    这里,||pu||和||qi||是用来防止过拟合的正则化项,λ可以通过实验获得。要最小化上面的损失函数,可以利用随机梯度下降法算法。

            随机梯度下降法需要首先对它们分别求偏导数,可以得到:

       

    然后,根据随机梯度下降法,需要将参数沿着最速下降方向向前推进,因此可以得到如下递推公式,其中a是学习率。

      

    def LatentFactorModel(user_items, F, N, alpha, lambda):
    	[P, Q] = InitModel(user_items, F)
    	for step in range(0,N):
    		for user, items in user_items.items():
    			samples = RandSelectNegativeSamples(items)
    			for item, rui in samples.items():
    				eui = rui - Predict(user, item)
    				for f in range(0, F):
    					P[user][f] += alpha * (eui * Q[item][f] - lambda * P[user][f])
    					Q[item][f] += alpha * (eui * P[user][f] - lambda * Q[item][f])
    		alpha *= 0.9
    
    def Recommend(user, P, Q):
    	rank = dict()
    	for f, puf in P[user].items():
    		for i, qfi in Q[f].items():
    			if i not in rank:
    				rank[i] += puf * qfi
    	return rank

            综上在LFM中,重要的参数有4个:隐特征的个数F;学习速率alpha;正则化参数lambda;负样本/正样本比例 ratio。通过实验发现,ratio参数对LFM的性能影响最大。


    还可参考http://www.cnblogs.com/pinard/p/6351319.html

    展开全文
  • 前几天,秋叶拓哉(iwi)、岩田阳一(wata)和北川宜稔(kita_masa)所著,我(watashi)、庄俊元(navi)和...这里我主要想说一下自己为什么要翻译和推荐本书,还有程序设计竞赛学习资料一些看法。也附带一些译者序和第1章
  • 每周荐书:云原生、Docker、Web算法(评论送书)

    万次阅读 热门讨论 2017-07-19 17:26:25
    每周荐书:云原生、Docker、Web算法(评论送书)感谢大家每周荐书栏目的支持,先公布下上周中奖名单 liujiding镇屌的技术之路大数据之路:阿里巴巴... 每周荐书活动规则:在文末评论里回复你本周推荐图书的看法
  • poj 2195 km算法初步

    2019-10-02 20:34:53
    题意很明显,就是指在一个地图上面有n个人,有n个房间,然后要使得这些人能够到达一个房间,并且移动的步数最短。 看这道题目的人相信应该都是正在学习km算法的人。...说说我km算法的看法吧。。 ...
  • 学习起因 ...当时也有人说:”前端需要什么数据结构与算法”,但是对于这个事情我有自己的看法。 我并不认为前端不需要算法之类的知识,在我看来前端具备坚实的计算机基础,自身发展是极其有利的。我想
  • 好吧,让我先讲讲我数据结构与算法的看法与想法吧。 宋桑没有离开公司时,强烈推荐我利用现在富裕的时间去研究一下计算机科学的四大方面。我也是在他的encourage下,首次听到数据机构与算法的。在这方面他说的...
  • 推荐系统

    2019-03-24 12:18:43
    推荐系统的组成 ...1.2 推荐结果的平均分 平均分反应了推荐结果的总体质量,也代表了大部分用户这本书 的看法。 1.3推荐理由 1.4 收集反馈信息 3.推荐算法系统: 基于内容推荐 协同过...
  •  希望大家MPL以下几点各抒己见:1. MPL到底该怎么用?用在什么地方?2. MPL里面Sequence和Algorithm和STL容器和算法比较? 3. MPL现在有多少人在用?多少项目曾经用过?4. 有没有好使
  • 用户用标签描述物品的看法,所以用户生成标签(UGC)是联系用户和物品的纽带,也是反应用户兴趣的重要数据源。 一个用户标签行为的数据集一般有一个三元组(用户,物品,标签)的集合组成,其中一条记录(a,b,c)...
  • 随着时代日新月异,推荐技术各大互联网公司都起着越来越重要作用,阿里针对大规模候选集上匹配推荐问题,自主创新提出了一套崭新、完整基于树结构匹配和推荐算法框架,希望借此赋能任意深度学习模型在...
  • 推荐系统漫谈

    2018-07-24 15:38:00
    推荐系统是一个较大系统,而我立身算法角度,谈一谈我对推荐系统中推荐算法的理解与看法推荐系统一般来讲主要分为两个部分:召回部分和排序部分。做了三年的算法后,给我感觉,大部分场景其实都可以用推荐...
  • (而两帧图像之间的变化,就是t方向的梯度值,可以...另外我这一部分附上一些个人的看法(谬误之处还望不吝指正):1.首先是假设条件:(1)亮度恒定,就是同一点随着时间的变化,其亮度不会发生改变。这是基本光流法的...
  • 推荐系统实践小结

    2014-08-24 01:02:12
    当时对推荐系统的看法是,这是一个以算法为核心的系统,一切价值体现都在算法模型上了。不过这段时间有幸参与到真实系统,稍有改观。 下最近的一些想法吧,当然作为一个系统开发人员,理论算法方面的理解可能有点...
  • 推荐系统实践小结 转

    2014-11-26 20:15:00
    当时对推荐系统的看法是,这是一个以算法为核心的系统,一切价值体现都在算法模型上了。不过这段时间有幸参与到真实系统,稍有改观。下最近的一些想法吧,当然作为一个系统开发人员,理论算法方面的理解可能有点偏颇...
  • 前几天,秋叶拓哉(iwi)、岩田阳一(wata)和北川宜稔(kita_masa)所著,我(watashi)、庄俊元(navi)和...这里我主要想说一下自己为什么要翻译和推荐本书,还有程序设计竞赛学习资料一些看法。也附带一些译者序和第1章
  • 每周荐书:机器学习、Java虚拟机、微信开发(评论送书)感谢大家每周荐书栏目的支持,先公布下上周中奖名单 微wx笑民团司令云... 每周荐书活动规则:在文末评论里回复你本周推荐图书的看法,或想要获得某本书的书
  • 程序猿中年危机

    2018-12-12 15:04:00
    程序员中年危机,老生常谈的问题,作为一只不老也不新的鸟儿,这里谈谈我这个问题的看法。 一、保持学习 作为程序猿,不管什么年龄段一定要保持学习状态,因为这不仅会激发我们程序的创造力,保持代码的热情...
  • 周末开始更新了,首先感谢各位我写东西还能保持兴趣,先回答几个留言中一个问题和我无损编码那一节一个留言一个看法,第一个是推荐算法书,首先,我不是什么高手和大牛,所以当不起“推荐”这个词。...
  • 周末开始更新了,首先感谢各位我写东西还能保持兴趣,先回答几个留言中一个问题和我无损编码那一节一个留言一个看法,第一个是推荐算法书,首先,我不是什么高手和大牛,所以当不起“推荐”这个词。...
  • 用户标签

    2015-04-24 08:58:00
    2.用户相关:用户物品的看法、任务(待读等) 算法: 1.简单算法推荐用户常用标签下的热门物品) 计算用户物品的喜好 $p(u,i)=\sum_b \frac{n_{u,b}}{log(1+n_b^{(u)})}\frac{n_{i,b}}{log(...
  • Hashtable和HashMap采用hash/rehash算法都大概一样,所以性能不会有很大差异。 15、final, finally, finalize区别。  final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 ...
  • 公众号“乱序”猜想

    2021-02-28 06:33:26
    最近在看 《内容算法》,一本有关 内容推荐的入门书,前今日头条产品经理闫泽华写的。书不厚,但干货不少,既解答了我此前对于头条号、豆瓣、知乎等内容平台部分功能设计的疑问,也给我关于公众号.
  • asp.net知识库

    2015-06-18 08:45:45
    #实现18位身份证格式验证算法 身份证15To18 的算法(C#) 一组 正则表达式 静态构造函数 忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中委托[翻译] 利用委托机制处理.NET中异常 与正则表达式相关几...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    现在软件业以及国内软件业的看法 22.谈谈java多线程 23.谈谈文件加密技术 24.软件开发生命周期 25.路由协议种类及特点 26.java的awt和swing组件的GUI设计的关键 27.对于java流的认识 28.简单描述一下awt...
  • 外包的看法 朋友被裁员之后的工行、华为外包工作经历分享 和华为的一位学长聊了很久,优秀的人果然都有过人之处 鲜衣怒马少年时,一日看尽长安花 24岁我全款买了人生的第一辆车 让你自制力提升300%的学习方法 ...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

对算法推荐的看法